def test_returns_serialized_assignments(self, browser): self.login(self.secretariat_user, browser=browser) manager = RoleAssignmentManager(self.empty_dossier) manager.add_or_update(self.regular_user.id, ['Editor'], ASSIGNMENT_VIA_TASK, reference=self.task) manager.add_or_update(self.regular_user.id, ['Reader'], ASSIGNMENT_VIA_TASK_AGENCY) browser.open(self.empty_dossier, view='@role-assignments/{}'.format(self.regular_user.id), method='Get', headers={'Accept': 'application/json'}) self.assertEquals( [{u'cause': { u'id': ASSIGNMENT_VIA_TASK, u'title': u'By task'}, u'roles': [u'Editor'], u'reference': { u'url': self.task.absolute_url(), u'title': self.task.title}, u'principal': u'kathi.barfuss'}, {u'cause': { u'id': ASSIGNMENT_VIA_TASK_AGENCY, u'title': u'By task agency'}, u'roles': [u'Reader'], u'reference': None, u'principal': u'kathi.barfuss'}], browser.json)
def test_add_register_assignment_in_the_storage(self): self.login(self.regular_user) manager = RoleAssignmentManager(self.empty_dossier) manager.add_or_update(self.secretariat_user.id, ['Editor', 'Contributor', 'Reader'], ASSIGNMENT_VIA_TASK, self.task) self.assertEquals([{ 'principal': self.secretariat_user.id, 'roles': ['Editor', 'Contributor', 'Reader'], 'cause': ASSIGNMENT_VIA_TASK, 'reference': Oguid.for_object(self.task).id }], manager.storage._storage())
def test_add_register_assignment_in_the_storage(self): self.login(self.regular_user) manager = RoleAssignmentManager(self.empty_dossier) manager.add_or_update(self.secretariat_user.id, ['Editor', 'Contributor', 'Reader'], ASSIGNMENT_VIA_TASK, self.task) self.assertEquals( [{'principal': self.secretariat_user.id, 'roles': ['Editor', 'Contributor', 'Reader'], 'cause': ASSIGNMENT_VIA_TASK, 'reference': Oguid.for_object(self.task).id}], manager.storage._storage())
def test_add_updates_when_assignment_exists(self): self.login(self.regular_user) manager = RoleAssignmentManager(self.empty_dossier) manager.add_or_update(self.secretariat_user.id, ['Editor', 'Contributor', 'Reader'], ASSIGNMENT_VIA_SHARING) # update manager.add_or_update(self.secretariat_user.id, ['Reader'], ASSIGNMENT_VIA_SHARING) self.assertEquals( [{'principal': self.secretariat_user.id, 'roles': ['Reader', ], 'cause': ASSIGNMENT_VIA_SHARING, 'reference': None}], manager.storage._storage())
def test_add_updates_when_assignment_exists(self): self.login(self.regular_user) manager = RoleAssignmentManager(self.empty_dossier) manager.add_or_update(self.secretariat_user.id, ['Editor', 'Contributor', 'Reader'], ASSIGNMENT_VIA_SHARING) # update manager.add_or_update(self.secretariat_user.id, ['Reader'], ASSIGNMENT_VIA_SHARING) self.assertEquals([{ 'principal': self.secretariat_user.id, 'roles': [ 'Reader', ], 'cause': ASSIGNMENT_VIA_SHARING, 'reference': None }], manager.storage._storage())
def test_sets_local_roles_when_adding(self): self.login(self.regular_user) manager = RoleAssignmentManager(self.empty_dossier) manager.add_or_update(self.secretariat_user.id, ['Editor', 'Contributor', 'Reader'], ASSIGNMENT_VIA_SHARING) manager.add_or_update(self.secretariat_user.id, ['Reader'], ASSIGNMENT_VIA_TASK, self.task) manager.add_or_update(self.regular_user.id, ['Publisher', 'Reviewer'], ASSIGNMENT_VIA_SHARING) self.assertEquals( (('jurgen.konig', ('Contributor', 'Editor', 'Reader')), ('kathi.barfuss', ('Publisher', 'Reviewer')), ('robert.ziegler', ('Owner', ))), self.empty_dossier.get_local_roles())
def test_sets_local_roles_when_adding(self): self.login(self.regular_user) manager = RoleAssignmentManager(self.empty_dossier) manager.add_or_update(self.secretariat_user.id, ['Editor', 'Contributor', 'Reader'], ASSIGNMENT_VIA_SHARING) manager.add_or_update(self.secretariat_user.id, ['Reader'], ASSIGNMENT_VIA_TASK, self.task) manager.add_or_update(self.regular_user.id, ['Publisher', 'Reviewer'], ASSIGNMENT_VIA_SHARING) self.assertEquals( (('jurgen.konig', ('Contributor', 'Editor', 'Reader')), ('kathi.barfuss', ('Publisher', 'Reviewer')), ('robert.ziegler', ('Owner',))), self.empty_dossier.get_local_roles())
def add_role_assignments(self, obj): storage = RoleAssignmentManager(obj).storage for principal, roles in obj.get_local_roles(): storage.add_or_update( principal, roles, ASSIGNMENT_VIA_SHARING, None)
def add_role_assignments(self, obj): storage = RoleAssignmentManager(obj).storage for principal, roles in obj.get_local_roles(): storage.add_or_update(principal, roles, ASSIGNMENT_VIA_SHARING, None)