diff --git a/src/pfwbged/policy/browser/guards.py b/src/pfwbged/policy/browser/guards.py index d3f7736..ceac13b 100644 --- a/src/pfwbged/policy/browser/guards.py +++ b/src/pfwbged/policy/browser/guards.py @@ -1,3 +1,5 @@ +# -*- coding: utf8 -*- + from zope.component import getUtility from zope.intid.interfaces import IIntIds from zc.relation.interfaces import ICatalog @@ -123,3 +125,24 @@ class CanBeTrashedDmsAppendixFile(grok.View): def render(self): return api.content.get_state(self.context) == 'published' + + +class CanReturnToRegistering(grok.View): + """""" + grok.name('can_return_to_registering') + grok.context(IDmsIncomingMail) + grok.require('zope2.View') + + def render(self): + # accept any of these roles + allowed_roles = {'Reviewer', 'Manager', 'Greffier'} + user_roles = api.user.get_roles(obj=self.context) + if allowed_roles.intersection(user_roles): + return True + + # or this user group + for group in api.group.get_groups(): + if group.id == 'Gestion-secretariat-general': + return True + + return False diff --git a/src/pfwbged/policy/profiles/default/workflows/incomingapfmail_workflow/definition.xml b/src/pfwbged/policy/profiles/default/workflows/incomingapfmail_workflow/definition.xml index 6042a50..548b7bd 100644 --- a/src/pfwbged/policy/profiles/default/workflows/incomingapfmail_workflow/definition.xml +++ b/src/pfwbged/policy/profiles/default/workflows/incomingapfmail_workflow/definition.xml @@ -204,10 +204,7 @@ Back to registering - Reviewer - Manager - Greffier - SecretariatGeneralApf + here/@@can_return_to_registering diff --git a/src/pfwbged/policy/profiles/default/workflows/incomingmail_workflow/definition.xml b/src/pfwbged/policy/profiles/default/workflows/incomingmail_workflow/definition.xml index a94939b..f4b166b 100644 --- a/src/pfwbged/policy/profiles/default/workflows/incomingmail_workflow/definition.xml +++ b/src/pfwbged/policy/profiles/default/workflows/incomingmail_workflow/definition.xml @@ -205,10 +205,7 @@ Back to registering - Reviewer - Manager - Greffier - SecretariatGeneralAPF + here/@@can_return_to_registering