allow supervisors (except the greffier) to see subtasks (#4225)

This commit is contained in:
Frédéric Péters 2014-02-06 17:04:32 +01:00
parent 9a02158776
commit f50dfe6a0d
2 changed files with 17 additions and 0 deletions

View File

@ -14,6 +14,7 @@
<permission-role>Manager</permission-role>
<permission-role>Reviewer</permission-role>
<permission-role>Editor</permission-role>
<permission-role>Reader</permission-role>
</permission-map>
<permission-map name="Modify portal content" acquired="False">
<permission-role>Manager</permission-role>
@ -26,6 +27,7 @@
<permission-role>Manager</permission-role>
<permission-role>Reviewer</permission-role>
<permission-role>Editor</permission-role>
<permission-role>Reader</permission-role>
</permission-map>
<permission-map name="Modify portal content" acquired="False">
<permission-role>Manager</permission-role>
@ -36,6 +38,7 @@
<permission-role>Manager</permission-role>
<permission-role>Reviewer</permission-role>
<permission-role>Editor</permission-role>
<permission-role>Reader</permission-role>
</permission-map>
<permission-map name="Modify portal content" acquired="False">
<permission-role>Manager</permission-role>
@ -48,6 +51,7 @@
<permission-role>Manager</permission-role>
<permission-role>Reviewer</permission-role>
<permission-role>Editor</permission-role>
<permission-role>Reader</permission-role>
</permission-map>
<permission-map name="Modify portal content" acquired="False">
<permission-role>Manager</permission-role>
@ -60,6 +64,7 @@
<permission-role>Manager</permission-role>
<permission-role>Reviewer</permission-role>
<permission-role>Editor</permission-role>
<permission-role>Reader</permission-role>
</permission-map>
<permission-map name="Modify portal content" acquired="False">
<permission-role>Manager</permission-role>
@ -75,6 +80,7 @@
<permission-role>Manager</permission-role>
<permission-role>Reviewer</permission-role>
<permission-role>Editor</permission-role>
<permission-role>Reader</permission-role>
</permission-map>
<permission-map name="Modify portal content" acquired="False">
<permission-role>Manager</permission-role>

View File

@ -1,3 +1,4 @@
from Acquisition import aq_parent
from five import grok
from OFS.interfaces import IObjectWillBeRemovedEvent
@ -71,6 +72,16 @@ def set_enquirer(context, event):
enquirer = api.user.get_current().id
enquirer_dm = LocalRolesToPrincipalsDataManager(context, IBaseTask['enquirer'])
enquirer_dm.set((enquirer,))
parent = aq_parent(context)
if IBaseTask.providedBy(parent):
# parent is also a task, we create Reader local role value on its own
# roles, unless parent enquirer is the greffier.
if not 'Greffier' in api.user.get_roles(parent.enquirer[0]):
for user_id, roles in parent.get_local_roles():
if 'Reader' in roles or 'Reviewer' in roles:
context.manage_addLocalRoles(user_id, ['Reader'])
context.reindexObject()