* refactors sharing user setting by introducing share_with(user) and share_with_list(user_list) for BaseObject for a more self-explanatory sharing
This commit is contained in:
2021-11-11 15:09:03 +01:00
parent a5e816c67b
commit 6c35fc59af
15 changed files with 58 additions and 36 deletions

View File

@@ -255,7 +255,7 @@ class NewInterventionForm(BaseForm):
intervention.log.add(action)
# Add the performing user as the first user having access to the data
intervention.users.add(user)
intervention.share_with(user)
return intervention

View File

@@ -99,7 +99,7 @@ class ShareInterventionModalForm(BaseModalForm):
accessing_users = User.objects.filter(
id__in=self.cleaned_data["users"]
)
self.instance.users.set(accessing_users)
self.instance.share_with_list(accessing_users)
class NewRevocationModalForm(BaseModalForm):

View File

@@ -323,7 +323,6 @@ class Intervention(BaseObject, ShareableObject, RecordableObject, CheckableObjec
comp.log.add(log_entry)
class InterventionDocument(AbstractDocument):
"""
Specializes document upload for an intervention with certain path

View File

@@ -116,7 +116,7 @@ class InterventionViewTestCase(BaseViewTestCase):
# Add user to default group
default_group = Group.objects.get(name=DEFAULT_GROUP)
self.superuser.groups.set([default_group])
self.intervention.users.set([self.superuser])
self.intervention.share_with_list([self.superuser])
success_urls = [
self.index_url,
@@ -156,7 +156,7 @@ class InterventionViewTestCase(BaseViewTestCase):
# Add user to default group
default_group = Group.objects.get(name=DEFAULT_GROUP)
self.superuser.groups.set([default_group])
self.intervention.users.set([])
self.intervention.share_with_list([])
success_urls = [
self.index_url,
@@ -196,7 +196,7 @@ class InterventionViewTestCase(BaseViewTestCase):
# Add user to zb group
zb_group = self.groups.get(name=ZB_GROUP)
self.superuser.groups.set([zb_group])
self.intervention.users.set([self.superuser])
self.intervention.share_with_list([self.superuser])
success_urls = [
self.index_url,
@@ -236,7 +236,7 @@ class InterventionViewTestCase(BaseViewTestCase):
# Add user to zb group
zb_group = self.groups.get(name=ZB_GROUP)
self.superuser.groups.set([zb_group])
self.intervention.users.set([])
self.intervention.share_with_list([])
success_urls = [
self.index_url,
@@ -276,7 +276,7 @@ class InterventionViewTestCase(BaseViewTestCase):
# Add user to ets group
ets_group = Group.objects.get(name=ETS_GROUP)
self.superuser.groups.set([ets_group])
self.intervention.users.set([self.superuser])
self.intervention.share_with_list([self.superuser])
success_urls = [
self.index_url,
@@ -316,7 +316,7 @@ class InterventionViewTestCase(BaseViewTestCase):
# Add user to default group
ets_group = Group.objects.get(name=ETS_GROUP)
self.superuser.groups.set([ets_group])
self.intervention.users.set([])
self.intervention.share_with_list([])
success_urls = [
self.index_url,

View File

@@ -26,8 +26,7 @@ class InterventionWorkflowTestCase(BaseWorkflowTestCase):
def setUpTestData(cls):
super().setUpTestData()
# Give the user shared access to the dummy intervention
cls.intervention.users.add(cls.superuser)
cls.intervention.share_with(cls.superuser)
def test_new(self):
"""
@@ -312,7 +311,7 @@ class InterventionWorkflowTestCase(BaseWorkflowTestCase):
# Now restore the deductable surface to a valid size back again but remove the user from the shared list
self.eco_account.deductable_surface = test_surface + 100.00
self.eco_account.users.set([])
self.eco_account.share_with_list([])
self.eco_account.save()
# Now perform the (expected) failing request (again)
@@ -323,7 +322,7 @@ class InterventionWorkflowTestCase(BaseWorkflowTestCase):
self.assertEqual(num_deductions_total, EcoAccountDeduction.objects.count())
# Restore the sharing but remove the recording state
self.eco_account.users.set([self.superuser])
self.eco_account.share_with_list([self.superuser])
self.eco_account.recorded.delete()
self.eco_account.refresh_from_db()
self.eco_account.save()
@@ -354,7 +353,7 @@ class InterventionWorkflowTestCase(BaseWorkflowTestCase):
action=UserAction.RECORDED
)
self.eco_account.recorded = rec_action
self.eco_account.users.set([self.superuser])
self.eco_account.share_with_list([self.superuser])
self.eco_account.save()
# Run the request

View File

@@ -378,7 +378,7 @@ def share_view(request: HttpRequest, id: str, token: str):
request,
_("{} has been shared with you").format(intervention.identifier)
)
intervention.users.add(user)
intervention.share_with(user)
return redirect("intervention:detail", id=id)
else:
messages.error(