allow hiding of object actions: restrict via permissions

This commit is contained in:
Helmut Merz 2013-12-09 08:46:59 +01:00
parent 047d601043
commit e78a5f4fc3

View file

@ -68,6 +68,7 @@ from loops.config.base import DummyOptions
from loops.i18n.browser import I18NView from loops.i18n.browser import I18NView
from loops.interfaces import IResource, IView, INode, ITypeConcept from loops.interfaces import IResource, IView, INode, ITypeConcept
from loops.organize.tracking import access from loops.organize.tracking import access
from loops.organize.util import getRolesForPrincipal
from loops.resource import Resource from loops.resource import Resource
from loops.security.common import checkPermission from loops.security.common import checkPermission
from loops.security.common import canAccessObject, canListObject, canWriteObject from loops.security.common import canAccessObject, canListObject, canWriteObject
@ -772,7 +773,16 @@ class BaseView(GenericView, I18NView):
@Lazy @Lazy
def showObjectActions(self): def showObjectActions(self):
return not IUnauthenticatedPrincipal.providedBy(self.request.principal) principal = self.request.principal
if IUnauthenticatedPrincipal.providedBy(principal):
return False
perms = self.globalOptions('action.object.permissions')
if perms:
for p in perms:
if checkPermission(p, self.context):
return True
return False
return True
def checkAction(self, name, category, target): def checkAction(self, name, category, target):
if name in ('create_resource',): if name in ('create_resource',):