don't show 'delegate' action for non-privileged users

git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@4190 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2011-02-15 18:07:17 +00:00
parent fdaf31bd79
commit 06c10460ad
2 changed files with 10 additions and 3 deletions

View file

@ -136,10 +136,13 @@ work item, the form will be pre-filled with some of the item's data.
>>> form.title >>> form.title
u'Install Zope' u'Install Zope'
The 'delegate' transition is omitted from the actions list because it is
only available for privileged users.
>>> form.actions >>> form.actions
[{'name': 'plan', 'title': 'plan'}, {'name': 'accept', 'title': 'accept'}, [{'name': 'plan', 'title': 'plan'}, {'name': 'accept', 'title': 'accept'},
{'name': 'start', 'title': 'start working'}, {'name': 'work', 'title': 'work'}, {'name': 'start', 'title': 'start working'}, {'name': 'work', 'title': 'work'},
{'name': 'finish', 'title': 'finish'}, {'name': 'delegate', 'title': 'delegate'}, {'name': 'finish', 'title': 'finish'},
{'name': 'cancel', 'title': 'cancel'}, {'name': 'modify', 'title': 'modify'}] {'name': 'cancel', 'title': 'cancel'}, {'name': 'modify', 'title': 'modify'}]

View file

@ -48,6 +48,7 @@ from loops.organize.tracking.browser import BaseTrackView
from loops.organize.tracking.report import TrackDetails from loops.organize.tracking.report import TrackDetails
from loops.organize.work.base import WorkItem from loops.organize.work.base import WorkItem
from loops.security.common import canAccessObject, canListObject, canWriteObject from loops.security.common import canAccessObject, canListObject, canWriteObject
from loops.security.common import checkPermission
from loops import util from loops import util
from loops.util import _ from loops.util import _
@ -333,8 +334,11 @@ class CreateWorkItemForm(ObjectForm, BaseTrackView):
@Lazy @Lazy
def actions(self): def actions(self):
return [dict(name=t.name, title=t.title) result = [dict(name=t.name, title=t.title)
for t in self.track.getAvailableTransitions()] for t in self.track.getAvailableTransitions()
if t.name != 'delegate' or
checkPermission('loops.ManageSite', self.context)]
return result
@Lazy @Lazy
def candidates(self): def candidates(self):