allow hiding of object actions: restrict via permissions
This commit is contained in:
parent
047d601043
commit
e78a5f4fc3
1 changed files with 11 additions and 1 deletions
|
@ -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',):
|
||||||
|
|
Loading…
Add table
Reference in a new issue