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.interfaces import IResource, IView, INode, ITypeConcept
from loops.organize.tracking import access
from loops.organize.util import getRolesForPrincipal
from loops.resource import Resource
from loops.security.common import checkPermission
from loops.security.common import canAccessObject, canListObject, canWriteObject
@ -772,7 +773,16 @@ class BaseView(GenericView, I18NView):
@Lazy
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):
if name in ('create_resource',):