def test_closing_does_not_revoke_roles_on_proposal_if_revoke_permission_is_false(self, browser):
        self.login(self.dossier_responsible, browser=browser)
        self.task.revoke_permissions = False

        intids = getUtility(IIntIds)
        relation = RelationValue(intids.getId(self.proposaldocument))
        ITask(self.task).relatedItems.append(relation)
        notify(ObjectModifiedEvent(self.task))

        expected_assignments = [{'cause': ASSIGNMENT_VIA_TASK,
                                 'roles': ['Reader', 'Editor'],
                                 'reference': Oguid.for_object(self.task),
                                 'principal': self.regular_user.id},
                                {'cause': ASSIGNMENT_VIA_TASK_AGENCY,
                                 'roles': ['Reader', 'Editor'],
                                 'reference': Oguid.for_object(self.task),
                                 'principal': u'fa_inbox_users'}]

        document_storage = RoleAssignmentManager(self.proposaldocument).storage
        self.assertEqual(expected_assignments, document_storage._storage())

        proposal_storage = RoleAssignmentManager(self.proposal).storage
        self.assertEqual(expected_assignments, proposal_storage._storage())

        self.set_workflow_state('task-state-tested-and-closed', self.subtask)
        self.set_workflow_state('task-state-resolved', self.task)
        notify(ObjectModifiedEvent(self.task))

        browser.open(self.task, view='tabbedview_view-overview')
        browser.click_on('task-transition-resolved-tested-and-closed')
        browser.click_on('Save')

        self.assertEqual(expected_assignments, proposal_storage._storage())
        self.assertEqual(expected_assignments, document_storage._storage())
Exemple #2
0
    def test_revokes_permissions_on_proposal(self):
        self.login(self.dossier_responsible)

        intids = getUtility(IIntIds)
        relation = RelationValue(intids.getId(self.proposaldocument))
        ITask(self.subtask).relatedItems.append(relation)
        notify(ObjectModifiedEvent(self.subtask))

        self.set_workflow_state('task-state-tested-and-closed', self.subtask)

        expected_assignments = [{
            'cause': ASSIGNMENT_VIA_TASK,
            'roles': ['Reader', 'Editor'],
            'reference': Oguid.for_object(self.subtask),
            'principal': self.regular_user.id
        }, {
            'cause': ASSIGNMENT_VIA_TASK_AGENCY,
            'roles': ['Reader', 'Editor'],
            'reference': Oguid.for_object(self.subtask),
            'principal': u'fa_inbox_users'
        }]

        document_storage = RoleAssignmentManager(self.proposaldocument).storage
        self.assertEqual(expected_assignments, document_storage._storage())

        proposal_storage = RoleAssignmentManager(self.proposal).storage
        self.assertEqual(expected_assignments, proposal_storage._storage())

        RevokePermissions(self.subtask, self.request)()
        self.assertEqual([], proposal_storage._storage())
        self.assertEqual([], document_storage._storage())
 def test_closing_a_task_revokes_responsible_roles_on_related_documents(self, browser):
     self.login(self.dossier_responsible, browser=browser)
     self.set_workflow_state('task-state-tested-and-closed', self.subtask)
     self.set_workflow_state('task-state-resolved', self.task)
     storage = RoleAssignmentManager(self.document).storage
     expected_oguids = [
         Oguid.for_object(task).id
         for task in (
             self.task, self.task, self.subtask, self.subtask,
             self.info_task, self.info_task, self.private_task,
             self.inbox_task)
     ]
     self.assertEqual(
         expected_oguids,
         [item.get('reference') for item in storage._storage()],
     )
     # close
     browser.open(self.task, view='tabbedview_view-overview')
     browser.click_on('task-transition-resolved-tested-and-closed')
     browser.fill({'Response': 'Done!'})
     browser.click_on('Save')
     expected_oguids = [
         Oguid.for_object(task).id
         for task in (self.subtask, self.subtask, self.info_task,
                      self.info_task, self.private_task, self.inbox_task)
     ]
     self.assertEqual(
         expected_oguids,
         [item.get('reference') for item in storage._storage()],
     )
Exemple #4
0
    def test_skip_task_does_not_revoke_roles_if_revoke_permission_is_false(
            self, browser):
        self.login(self.secretariat_user, browser=browser)
        self.seq_subtask_2.revoke_permissions = False

        storage = RoleAssignmentManager(self.seq_subtask_2).storage
        self.assertEqual([{
            'cause': ASSIGNMENT_VIA_TASK,
            'roles': ['Editor'],
            'reference': Oguid.for_object(self.seq_subtask_2),
            'principal': 'kathi.barfuss'
        }, {
            'cause': ASSIGNMENT_VIA_TASK_AGENCY,
            'roles': ['Editor'],
            'reference': Oguid.for_object(self.seq_subtask_2),
            'principal': 'fa_inbox_users'
        }], storage._storage())

        # skip
        browser.open(self.seq_subtask_2, view='tabbedview_view-overview')
        browser.click_on('task-transition-planned-skipped')
        browser.click_on('Save')

        self.assertEqual([{
            'cause': ASSIGNMENT_VIA_TASK,
            'roles': ['Editor'],
            'reference': Oguid.for_object(self.seq_subtask_2),
            'principal': 'kathi.barfuss'
        }, {
            'cause': ASSIGNMENT_VIA_TASK_AGENCY,
            'roles': ['Editor'],
            'reference': Oguid.for_object(self.seq_subtask_2),
            'principal': 'fa_inbox_users'
        }], storage._storage())
Exemple #5
0
    def test_closing_does_not_revoke_roles_on_related_documents_if_revoke_permission_is_false(
            self, browser):
        self.login(self.dossier_responsible, browser=browser)
        self.set_workflow_state('task-state-tested-and-closed', self.subtask)
        self.set_workflow_state('task-state-resolved', self.task)
        self.task.revoke_permissions = False

        storage = RoleAssignmentManager(self.document).storage
        expected_oguids = [
            Oguid.for_object(task).id
            for task in (self.task, self.task, self.subtask, self.subtask,
                         self.info_task, self.info_task, self.private_task,
                         self.inbox_task)
        ]
        self.assertEqual(
            expected_oguids,
            [item.get('reference') for item in storage._storage()])

        # close
        browser.open(self.task, view='tabbedview_view-overview')
        browser.click_on('task-transition-resolved-tested-and-closed')
        browser.fill({'Response': 'Done!'})
        browser.click_on('Save')

        self.assertEqual(
            expected_oguids,
            [item.get('reference') for item in storage._storage()])
    def test_skip_task_does_not_revoke_roles_if_revoke_permission_is_false(self, browser):
        self.login(self.secretariat_user, browser=browser)
        self.seq_subtask_2.revoke_permissions = False

        storage = RoleAssignmentManager(self.seq_subtask_2).storage
        self.assertEqual(
            [{'cause': ASSIGNMENT_VIA_TASK,
              'roles': ['Editor'],
              'reference': Oguid.for_object(self.seq_subtask_2),
              'principal': 'kathi.barfuss'},
             {'cause': ASSIGNMENT_VIA_TASK_AGENCY,
              'roles': ['Editor'],
              'reference': Oguid.for_object(self.seq_subtask_2),
              'principal': 'fa_inbox_users'}], storage._storage())

        # skip
        browser.open(self.seq_subtask_2, view='tabbedview_view-overview')
        browser.click_on('task-transition-planned-skipped')
        browser.click_on('Save')

        self.assertEqual(
            [{'cause': ASSIGNMENT_VIA_TASK,
              'roles': ['Editor'],
              'reference': Oguid.for_object(self.seq_subtask_2),
              'principal': 'kathi.barfuss'},
             {'cause': ASSIGNMENT_VIA_TASK_AGENCY,
              'roles': ['Editor'],
              'reference': Oguid.for_object(self.seq_subtask_2),
              'principal': 'fa_inbox_users'}], storage._storage())
    def test_closing_does_not_revoke_roles_on_task_if_revoke_permission_is_false(self, browser):
        self.login(self.dossier_responsible, browser=browser)
        self.set_workflow_state('task-state-tested-and-closed', self.subtask)
        self.set_workflow_state('task-state-resolved', self.task)
        self.task.revoke_permissions = False

        storage = RoleAssignmentManager(self.task).storage
        self.assertEqual(
            [{'cause': ASSIGNMENT_VIA_TASK,
              'roles': ['Editor'],
              'reference': Oguid.for_object(self.task),
              'principal': 'kathi.barfuss'},
             {'cause': ASSIGNMENT_VIA_TASK_AGENCY,
              'roles': ['Editor'],
              'reference': Oguid.for_object(self.task),
              'principal': 'fa_inbox_users'}], storage._storage())

        # close
        browser.open(self.task, view='tabbedview_view-overview')
        browser.click_on('task-transition-resolved-tested-and-closed')
        browser.fill({'Response': 'Done!'})
        browser.click_on('Save')

        self.assertEqual(
            [{'cause': ASSIGNMENT_VIA_TASK,
              'roles': ['Editor'],
              'reference': Oguid.for_object(self.task),
              'principal': 'kathi.barfuss'},
             {'cause': ASSIGNMENT_VIA_TASK_AGENCY,
              'roles': ['Editor'],
              'reference': Oguid.for_object(self.task),
              'principal': 'fa_inbox_users'}], storage._storage())
Exemple #8
0
    def test_closing_a_task_revokes_responsible_roles_on_task(self, browser):
        self.login(self.dossier_responsible, browser=browser)
        self.set_workflow_state('task-state-tested-and-closed', self.subtask)
        self.set_workflow_state('task-state-resolved', self.task)

        storage = RoleAssignmentManager(self.task).storage
        self.assertEqual([{
            'cause': ASSIGNMENT_VIA_TASK,
            'roles': ['Editor'],
            'reference': Oguid.for_object(self.task),
            'principal': 'kathi.barfuss'
        }, {
            'cause': ASSIGNMENT_VIA_TASK_AGENCY,
            'roles': ['Editor'],
            'reference': Oguid.for_object(self.task),
            'principal': 'fa_inbox_users'
        }], storage._storage())

        # close
        browser.open(self.task, view='tabbedview_view-overview')
        browser.click_on('task-transition-resolved-tested-and-closed')
        browser.fill({'Response': 'Done!'})
        browser.click_on('Save')

        self.assertEqual([], storage._storage())
Exemple #9
0
    def test_closing_does_not_revoke_roles_on_distinct_parent_if_revoke_permission_is_false(
            self, browser):
        self.login(self.dossier_responsible, browser=browser)
        self.set_workflow_state('task-state-resolved', self.meeting_task)
        self.meeting_task.revoke_permissions = False

        self.assertEqual((('fa_inbox_users', ('Contributor', )),
                          ('franzi.muller', ('Owner', )), ('robert.ziegler',
                                                           ('Contributor', ))),
                         self.meeting_dossier.get_local_roles())

        storage = RoleAssignmentManager(self.meeting_dossier).storage
        self.assertEqual([{
            'cause': ASSIGNMENT_VIA_TASK,
            'roles': ['Contributor'],
            'reference': Oguid.for_object(self.meeting_task),
            'principal': self.dossier_responsible.id
        }, {
            'cause': ASSIGNMENT_VIA_TASK_AGENCY,
            'roles': ['Contributor'],
            'reference': Oguid.for_object(self.meeting_task),
            'principal': 'fa_inbox_users'
        }, {
            'cause': ASSIGNMENT_VIA_TASK,
            'roles': ['Contributor'],
            'reference': Oguid.for_object(self.meeting_subtask),
            'principal': self.dossier_responsible.id
        }, {
            'cause': ASSIGNMENT_VIA_TASK_AGENCY,
            'roles': ['Contributor'],
            'reference': Oguid.for_object(self.meeting_subtask),
            'principal': 'fa_inbox_users'
        }], storage._storage())

        # close subtask
        browser.open(self.meeting_subtask, view='tabbedview_view-overview')
        browser.click_on('task-transition-resolved-tested-and-closed')
        browser.click_on('Save')

        browser.open(self.meeting_task, view='tabbedview_view-overview')
        browser.click_on('task-transition-resolved-tested-and-closed')
        browser.click_on('Save')

        self.assertEqual([{
            'cause': ASSIGNMENT_VIA_TASK,
            'roles': ['Contributor'],
            'reference': Oguid.for_object(self.meeting_task),
            'principal': self.dossier_responsible.id
        }, {
            'cause': ASSIGNMENT_VIA_TASK_AGENCY,
            'roles': ['Contributor'],
            'reference': Oguid.for_object(self.meeting_task),
            'principal': 'fa_inbox_users'
        }], storage._storage())
        self.assertEqual((('fa_inbox_users', ('Contributor', )),
                          ('franzi.muller', ('Owner', )), ('robert.ziegler',
                                                           ('Contributor', ))),
                         self.meeting_dossier.get_local_roles())
    def test_closing_does_not_revoke_roles_on_distinct_parent_if_revoke_permission_is_false(self, browser):
        self.login(self.dossier_responsible, browser=browser)
        self.set_workflow_state('task-state-resolved', self.meeting_task)
        self.meeting_task.revoke_permissions = False

        self.assertEqual(
            (('fa_inbox_users', ('Contributor',)),
             ('franzi.muller', ('Owner',)),
             ('robert.ziegler', ('Contributor',))),
            self.meeting_dossier.get_local_roles())

        storage = RoleAssignmentManager(self.meeting_dossier).storage
        self.assertEqual(
            [{'cause': ASSIGNMENT_VIA_TASK,
              'roles': ['Contributor'],
              'reference': Oguid.for_object(self.meeting_task),
              'principal': self.dossier_responsible.id},
             {'cause': ASSIGNMENT_VIA_TASK_AGENCY,
              'roles': ['Contributor'],
              'reference': Oguid.for_object(self.meeting_task),
              'principal': 'fa_inbox_users'},
             {'cause': ASSIGNMENT_VIA_TASK,
              'roles': ['Contributor'],
              'reference': Oguid.for_object(self.meeting_subtask),
              'principal': self.dossier_responsible.id},
             {'cause': ASSIGNMENT_VIA_TASK_AGENCY,
              'roles': ['Contributor'],
              'reference': Oguid.for_object(self.meeting_subtask),
              'principal': 'fa_inbox_users'}],
            storage._storage())

        # close subtask
        browser.open(self.meeting_subtask, view='tabbedview_view-overview')
        browser.click_on('task-transition-resolved-tested-and-closed')
        browser.click_on('Save')

        browser.open(self.meeting_task, view='tabbedview_view-overview')
        browser.click_on('task-transition-resolved-tested-and-closed')
        browser.click_on('Save')

        self.assertEqual(
            [{'cause': ASSIGNMENT_VIA_TASK,
              'roles': ['Contributor'],
              'reference': Oguid.for_object(self.meeting_task),
              'principal': self.dossier_responsible.id},
             {'cause': ASSIGNMENT_VIA_TASK_AGENCY,
              'roles': ['Contributor'],
              'reference': Oguid.for_object(self.meeting_task),
              'principal': 'fa_inbox_users'}],
            storage._storage())
        self.assertEqual(
            (('fa_inbox_users', ('Contributor',)),
             ('franzi.muller', ('Owner',)),
             ('robert.ziegler', ('Contributor',))),
            self.meeting_dossier.get_local_roles())
Exemple #11
0
    def test_closing_direct_execution_task_does_not_revoke_roles_if_revoke_permission_is_false(
            self, browser):
        self.login(self.regular_user, browser=browser)
        self.subtask.revoke_permissions = False
        self.subtask.task_type = 'direct-execution'
        self.subtask.sync()
        self.set_workflow_state('task-state-in-progress', self.subtask)

        # close
        browser.open(self.subtask, view='tabbedview_view-overview')
        browser.click_on('task-transition-in-progress-tested-and-closed')
        browser.click_on('Save')

        storage = RoleAssignmentManager(self.subtask).storage
        self.assertEqual([{
            'cause': ASSIGNMENT_VIA_TASK,
            'roles': ['Editor'],
            'reference': Oguid.for_object(self.subtask),
            'principal': self.regular_user.id
        }, {
            'cause': ASSIGNMENT_VIA_TASK_AGENCY,
            'roles': ['Editor'],
            'reference': Oguid.for_object(self.subtask),
            'principal': 'fa_inbox_users'
        }], storage._storage())
Exemple #12
0
    def test_revokes_permissions_on_task(self):
        self.login(self.dossier_responsible)
        self.set_workflow_state('task-state-tested-and-closed', self.subtask)

        storage = RoleAssignmentManager(self.subtask).storage
        self.assertEqual([{
            'cause': ASSIGNMENT_VIA_TASK,
            'roles': ['Editor'],
            'reference': Oguid.for_object(self.subtask),
            'principal': self.regular_user.id
        }, {
            'cause': ASSIGNMENT_VIA_TASK_AGENCY,
            'roles': ['Editor'],
            'reference': Oguid.for_object(self.subtask),
            'principal': u'fa_inbox_users'
        }], storage._storage())

        RevokePermissions(self.subtask, self.request)()
        self.assertEqual([], storage._storage())
Exemple #13
0
    def test_cancelling_a_task_revokes_roles(self, browser):
        self.login(self.dossier_responsible, browser=browser)
        self.set_workflow_state('task-state-open', self.subtask)

        # cancel
        browser.open(self.subtask, view='tabbedview_view-overview')
        browser.click_on('task-transition-open-cancelled')
        browser.click_on('Save')

        storage = RoleAssignmentManager(self.subtask).storage
        self.assertEqual([], storage._storage())
    def test_cancelling_a_task_revokes_roles(self, browser):
        self.login(self.dossier_responsible, browser=browser)
        self.set_workflow_state('task-state-open', self.subtask)

        # cancel
        browser.open(self.subtask, view='tabbedview_view-overview')
        browser.click_on('task-transition-open-cancelled')
        browser.click_on('Save')

        storage = RoleAssignmentManager(self.subtask).storage
        self.assertEqual([], storage._storage())
Exemple #15
0
    def test_revokes_permissions_on_distinct_parent(self):
        self.login(self.dossier_responsible)
        self.set_workflow_state('task-state-tested-and-closed', self.subtask)

        storage = RoleAssignmentManager(self.dossier).storage
        self.assertIn(
            {
                'cause': ASSIGNMENT_VIA_TASK,
                'roles': ['Contributor'],
                'reference': Oguid.for_object(self.subtask),
                'principal': self.regular_user.id
            }, storage._storage())

        RevokePermissions(self.subtask, self.request)()
        self.assertNotIn(
            {
                'cause': ASSIGNMENT_VIA_TASK,
                'roles': ['Contributor'],
                'reference': Oguid.for_object(self.subtask),
                'principal': self.regular_user.id
            }, storage._storage())
    def test_closing_a_direct_execution_task_revokes_roles(self, browser):
        self.login(self.regular_user, browser=browser)
        self.subtask.task_type = 'direct-execution'
        self.subtask.sync()
        self.set_workflow_state('task-state-in-progress', self.subtask)

        # close
        browser.open(self.subtask, view='tabbedview_view-overview')
        browser.click_on('task-transition-in-progress-tested-and-closed')
        browser.click_on('Save')

        storage = RoleAssignmentManager(self.subtask).storage
        self.assertEqual([], storage._storage())
Exemple #17
0
    def test_closing_a_direct_execution_task_revokes_roles(self, browser):
        self.login(self.regular_user, browser=browser)
        self.subtask.task_type = 'direct-execution'
        self.subtask.sync()
        self.set_workflow_state('task-state-in-progress', self.subtask)

        # close
        browser.open(self.subtask, view='tabbedview_view-overview')
        browser.click_on('task-transition-in-progress-tested-and-closed')
        browser.click_on('Save')

        storage = RoleAssignmentManager(self.subtask).storage
        self.assertEqual([], storage._storage())
Exemple #18
0
    def test_closing_does_not_revoke_roles_on_proposal_if_revoke_permission_is_false(
            self, browser):
        self.login(self.dossier_responsible, browser=browser)
        self.task.revoke_permissions = False

        intids = getUtility(IIntIds)
        relation = RelationValue(intids.getId(self.proposaldocument))
        ITask(self.task).relatedItems.append(relation)
        notify(ObjectModifiedEvent(self.task))

        expected_assignments = [{
            'cause': ASSIGNMENT_VIA_TASK,
            'roles': ['Reader', 'Editor'],
            'reference': Oguid.for_object(self.task),
            'principal': self.regular_user.id
        }, {
            'cause': ASSIGNMENT_VIA_TASK_AGENCY,
            'roles': ['Reader', 'Editor'],
            'reference': Oguid.for_object(self.task),
            'principal': u'fa_inbox_users'
        }]

        document_storage = RoleAssignmentManager(self.proposaldocument).storage
        self.assertEqual(expected_assignments, document_storage._storage())

        proposal_storage = RoleAssignmentManager(self.proposal).storage
        self.assertEqual(expected_assignments, proposal_storage._storage())

        self.set_workflow_state('task-state-tested-and-closed', self.subtask)
        self.set_workflow_state('task-state-resolved', self.task)
        notify(ObjectModifiedEvent(self.task))

        browser.open(self.task, view='tabbedview_view-overview')
        browser.click_on('task-transition-resolved-tested-and-closed')
        browser.click_on('Save')

        self.assertEqual(expected_assignments, proposal_storage._storage())
        self.assertEqual(expected_assignments, document_storage._storage())
Exemple #19
0
    def test_revoke_action_revokes_permissions_on_task(self, browser):
        self.login(self.dossier_responsible, browser)
        self.subtask.revoke_permissions = False
        browser.open(self.subtask, view='tabbedview_view-overview')
        browser.click_on('task-transition-resolved-tested-and-closed')
        browser.click_on('Save')

        storage = RoleAssignmentManager(self.subtask).storage
        self.assertEqual([{
            'cause': ASSIGNMENT_VIA_TASK,
            'roles': ['Editor'],
            'reference': Oguid.for_object(self.subtask),
            'principal': self.regular_user.id
        }, {
            'cause': ASSIGNMENT_VIA_TASK_AGENCY,
            'roles': ['Editor'],
            'reference': Oguid.for_object(self.subtask),
            'principal': 'fa_inbox_users'
        }], storage._storage())

        browser.open(self.subtask)
        browser.click_on("Revoke permissions")
        self.assertEqual([], storage._storage())
Exemple #20
0
    def test_revokes_permissions_on_related_items(self):
        self.login(self.dossier_responsible)
        self.set_workflow_state('task-state-tested-and-closed', self.subtask)

        storage = RoleAssignmentManager(self.document).storage
        expected_oguids = [
            Oguid.for_object(task).id
            for task in (self.task, self.task, self.subtask, self.subtask,
                         self.info_task, self.info_task, self.private_task,
                         self.inbox_task)
        ]
        self.assertEqual(
            expected_oguids,
            [item.get('reference') for item in storage._storage()])

        RevokePermissions(self.subtask, self.request)()
        expected_oguids = [
            Oguid.for_object(task).id
            for task in (self.task, self.task, self.info_task, self.info_task,
                         self.private_task, self.inbox_task)
        ]
        self.assertEqual(
            expected_oguids,
            [item.get('reference') for item in storage._storage()])
    def test_cancelling_a_task_does_not_revoke_roles_if_revoke_permission_is_false(self, browser):
        self.login(self.dossier_responsible, browser=browser)
        self.set_workflow_state('task-state-open', self.subtask)
        self.subtask.revoke_permissions = False

        # cancel
        browser.open(self.subtask, view='tabbedview_view-overview')
        browser.click_on('task-transition-open-cancelled')
        browser.click_on('Save')

        storage = RoleAssignmentManager(self.subtask).storage

        self.assertEqual(
            [{'cause': ASSIGNMENT_VIA_TASK,
              'roles': ['Editor'],
              'reference': Oguid.for_object(self.subtask),
              'principal': self.regular_user.id},
             {'cause': ASSIGNMENT_VIA_TASK_AGENCY,
              'roles': ['Editor'],
              'reference': Oguid.for_object(self.subtask),
              'principal': 'fa_inbox_users'}],
            storage._storage())
    def test_closing_direct_execution_task_does_not_revoke_roles_if_revoke_permission_is_false(self, browser):
        self.login(self.regular_user, browser=browser)
        self.subtask.revoke_permissions = False
        self.subtask.task_type = 'direct-execution'
        self.subtask.sync()
        self.set_workflow_state('task-state-in-progress', self.subtask)

        # close
        browser.open(self.subtask, view='tabbedview_view-overview')
        browser.click_on('task-transition-in-progress-tested-and-closed')
        browser.click_on('Save')

        storage = RoleAssignmentManager(self.subtask).storage
        self.assertEqual(
            [{'cause': ASSIGNMENT_VIA_TASK,
              'roles': ['Editor'],
              'reference': Oguid.for_object(self.subtask),
              'principal': self.regular_user.id},
             {'cause': ASSIGNMENT_VIA_TASK_AGENCY,
              'roles': ['Editor'],
              'reference': Oguid.for_object(self.subtask),
              'principal': 'fa_inbox_users'}],
            storage._storage())
Exemple #23
0
    def test_cancelling_a_task_does_not_revoke_roles_if_revoke_permission_is_false(
            self, browser):
        self.login(self.dossier_responsible, browser=browser)
        self.set_workflow_state('task-state-open', self.subtask)
        self.subtask.revoke_permissions = False

        # cancel
        browser.open(self.subtask, view='tabbedview_view-overview')
        browser.click_on('task-transition-open-cancelled')
        browser.click_on('Save')

        storage = RoleAssignmentManager(self.subtask).storage

        self.assertEqual([{
            'cause': ASSIGNMENT_VIA_TASK,
            'roles': ['Editor'],
            'reference': Oguid.for_object(self.subtask),
            'principal': self.regular_user.id
        }, {
            'cause': ASSIGNMENT_VIA_TASK_AGENCY,
            'roles': ['Editor'],
            'reference': Oguid.for_object(self.subtask),
            'principal': 'fa_inbox_users'
        }], storage._storage())