Roles plugin¶
The
IRolesPlugin
plugins determine the global roles for a principal. Like the
other interfaces the
IRolesPlugin
interface contains only a single method:
def getRolesForPrincipal( principal, request=None ):
""" principal -> ( role_1, ... role_N )
o Return a sequence of role names which the principal has.
o May assign roles based on values in the REQUEST object, if present.
"""
Here is a simple example:
def getRolesForPrincipal(self, principal, request=None):
# Only act on the current user
if getSecurityManager().getUser().getId()!=principal:
return ()
# Only act if the request originates from the local host
if request is not None:
ip=request.get("HTTP_X_FORWARDED_FOR", request.get("REMOTE_ADDR", ""))
if ip!="127.0.0.1":
return ()
return ("Manager",)
This gives the current user in Manager role if the site is being accessed from the Zope server itself.