예제 #1
0
    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)
예제 #2
0
    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)
예제 #3
0
    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())
예제 #6
0
    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())
예제 #7
0
    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())
예제 #9
0
 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)
예제 #10
0
 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)