Commit 93155b8b authored by Enrico Zini's avatar Enrico Zini
Browse files

Do not give approve permissions on am_ok until an am is assigned

parent 12355a93
...@@ -37,9 +37,9 @@ class ProcessVisitorPermissions(bmodels.PersonVisitorPermissions): ...@@ -37,9 +37,9 @@ class ProcessVisitorPermissions(bmodels.PersonVisitorPermissions):
self.process_frozen = self.process.frozen_by is not None self.process_frozen = self.process.frozen_by is not None
self.process_approved = self.process.approved_by is not None self.process_approved = self.process.approved_by is not None
a = self.process.current_am_assignment self.current_am_assignment = self.process.current_am_assignment
if a is not None: if self.current_am_assignment is not None:
self.is_current_am = a.am.person == self.visitor self.is_current_am = self.current_am_assignment.am.person == self.visitor
else: else:
self.is_current_am = False self.is_current_am = False
...@@ -107,11 +107,11 @@ class RequirementVisitorPermissions(ProcessVisitorPermissions): ...@@ -107,11 +107,11 @@ class RequirementVisitorPermissions(ProcessVisitorPermissions):
self.add("edit_statements") self.add("edit_statements")
if self.visitor.is_dd: self.add("req_unapprove" if self.requirement.approved_by else "req_approve") if self.visitor.is_dd: self.add("req_unapprove" if self.requirement.approved_by else "req_approve")
elif self.requirement.type == "am_ok": elif self.requirement.type == "am_ok":
a = self.process.current_am_assignment if self.current_am_assignment:
if self.is_current_am: if self.is_current_am:
self.add("edit_statements") self.add("edit_statements")
elif self.visitor.is_active_am: elif self.visitor.is_active_am:
self.add("req_unapprove" if self.requirement.approved_by else "req_approve") self.add("req_unapprove" if self.requirement.approved_by else "req_approve")
class ProcessManager(models.Manager): class ProcessManager(models.Manager):
......
...@@ -27,7 +27,7 @@ class ProcExpected(object): ...@@ -27,7 +27,7 @@ class ProcExpected(object):
self.proc.set("app dd_nu dd_u activeam fd dam", "update_keycheck view_person_audit_log") self.proc.set("app dd_nu dd_u activeam fd dam", "update_keycheck view_person_audit_log")
self.proc.patch("activeam fd dam app", "+edit_bio +edit_ldap +view_mbox") self.proc.patch("activeam fd dam app", "+edit_bio +edit_ldap +view_mbox")
self.proc.patch("fd dam app", "+request_new_status") self.proc.patch("fd dam app", "+request_new_status")
self.proc.patch("fd dam", "+proc_freeze") self.proc.patch("fd dam", "+proc_freeze +fd_comments")
self.proc.patch("dc dc_ga dm dm_ga dd_nu dd_u dd_e dd_r activeam fd dam app", "+add_log") self.proc.patch("dc dc_ga dm dm_ga dd_nu dd_u dd_e dd_r activeam fd dam app", "+add_log")
self.intent.patch("fd dam app", "+edit_statements") self.intent.patch("fd dam app", "+edit_statements")
self.intent.patch("activeam fd dam dd_nu dd_u", "+req_approve") self.intent.patch("activeam fd dam dd_nu dd_u", "+req_approve")
...@@ -45,6 +45,11 @@ class ProcExpected(object): ...@@ -45,6 +45,11 @@ class ProcExpected(object):
self.advocate.patch("am", "+edit_statements +req_approve") self.advocate.patch("am", "+edit_statements +req_approve")
self.am_ok.patch("fd dam", "+edit_statements +req_approve") self.am_ok.patch("fd dam", "+edit_statements +req_approve")
def patch_generic_process_am_assigned(self):
self.proc.patch("am", "+fd_comments")
self.am_ok.patch("am", "+edit_statements")
self.am_ok.patch("activeam", "+req_approve")
def patch_generic_process_frozen(self): def patch_generic_process_frozen(self):
self.proc.patch("fd dam", "-proc_freeze +proc_unfreeze +proc_approve") self.proc.patch("fd dam", "-proc_freeze +proc_unfreeze +proc_approve")
self.proc.patch("activeam app", "-edit_bio -edit_ldap") self.proc.patch("activeam app", "-edit_bio -edit_ldap")
...@@ -266,9 +271,8 @@ class TestVisitApplicant(ProcessFixtureMixin, TestCase): ...@@ -266,9 +271,8 @@ class TestVisitApplicant(ProcessFixtureMixin, TestCase):
# Assign manager # Assign manager
self._assign_am("fd") self._assign_am("fd")
expected.patch_generic_process_am_assigned()
expected.proc.patch("am", "+edit_bio +edit_ldap") expected.proc.patch("am", "+edit_bio +edit_ldap")
expected.am_ok.patch("am", "+edit_statements")
expected.am_ok.patch("activeam", "+req_approve")
self.assertPerms(expected) self.assertPerms(expected)
# Freeze for review # Freeze for review
...@@ -308,9 +312,8 @@ class TestVisitApplicant(ProcessFixtureMixin, TestCase): ...@@ -308,9 +312,8 @@ class TestVisitApplicant(ProcessFixtureMixin, TestCase):
# Assign manager # Assign manager
self._assign_am("fd") self._assign_am("fd")
expected.patch_generic_process_am_assigned()
expected.proc.patch("am", "+edit_bio") expected.proc.patch("am", "+edit_bio")
expected.am_ok.patch("am", "+edit_statements")
expected.am_ok.patch("activeam", "+req_approve")
self.assertPerms(expected) self.assertPerms(expected)
# Freeze for review # Freeze for review
...@@ -350,9 +353,8 @@ class TestVisitApplicant(ProcessFixtureMixin, TestCase): ...@@ -350,9 +353,8 @@ class TestVisitApplicant(ProcessFixtureMixin, TestCase):
# Assign manager # Assign manager
self._assign_am("fd") self._assign_am("fd")
expected.patch_generic_process_am_assigned()
expected.proc.patch("am", "+edit_bio +edit_ldap") expected.proc.patch("am", "+edit_bio +edit_ldap")
expected.am_ok.patch("am", "+edit_statements")
expected.am_ok.patch("activeam", "+req_approve")
self.assertPerms(expected) self.assertPerms(expected)
# Freeze for review # Freeze for review
...@@ -393,9 +395,8 @@ class TestVisitApplicant(ProcessFixtureMixin, TestCase): ...@@ -393,9 +395,8 @@ class TestVisitApplicant(ProcessFixtureMixin, TestCase):
# Assign manager # Assign manager
self._assign_am("fd") self._assign_am("fd")
expected.patch_generic_process_am_assigned()
expected.proc.patch("am", "+edit_bio") expected.proc.patch("am", "+edit_bio")
expected.am_ok.patch("am", "+edit_statements")
expected.am_ok.patch("activeam", "+req_approve")
self.assertPerms(expected) self.assertPerms(expected)
# Freeze for review # Freeze for review
...@@ -437,8 +438,7 @@ class TestVisitApplicant(ProcessFixtureMixin, TestCase): ...@@ -437,8 +438,7 @@ class TestVisitApplicant(ProcessFixtureMixin, TestCase):
# Assign manager # Assign manager
self._assign_am("fd") self._assign_am("fd")
expected.proc.patch("am", "+edit_bio +edit_ldap") expected.proc.patch("am", "+edit_bio +edit_ldap")
expected.am_ok.patch("am", "+edit_statements") expected.patch_generic_process_am_assigned()
expected.am_ok.patch("activeam", "+req_approve")
self.assertPerms(expected) self.assertPerms(expected)
# Freeze for review # Freeze for review
...@@ -481,9 +481,8 @@ class TestVisitApplicant(ProcessFixtureMixin, TestCase): ...@@ -481,9 +481,8 @@ class TestVisitApplicant(ProcessFixtureMixin, TestCase):
# Assign manager # Assign manager
self._assign_am("fd") self._assign_am("fd")
expected.patch_generic_process_am_assigned()
expected.proc.patch("am", "+edit_bio") expected.proc.patch("am", "+edit_bio")
expected.am_ok.patch("am", "+edit_statements")
expected.am_ok.patch("activeam", "+req_approve")
self.assertPerms(expected) self.assertPerms(expected)
# Freeze for review # Freeze for review
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment