Commit cd61b40a authored by 's avatar

Took has_role out of 'manage_users' permission

parent e73ad8a3
......@@ -84,7 +84,7 @@
##############################################################################
"""Access control package"""
__version__='$Revision: 1.74 $'[11:-2]
__version__='$Revision: 1.75 $'[11:-2]
import Globals, App.Undo, socket, regex
from Globals import HTMLFile, MessageDialog, Persistent, PersistentMapping
......@@ -217,9 +217,20 @@ class BasicUser(Implicit):
hasRole=allowed
domains=[]
def has_role(self, roles):
def has_role(self, roles, object=None):
"""Check to see if a user has a given role or roles."""
if type(roles)==type('s'):
roles=[roles]
if object is not None:
# Check in object for local roles.
user = self.getUserName()
dict = object.__ac_local_roles__ or {}
if dict.has_key(user):
local_roles = dict[user]
for role in roles:
if role in local_roles:
return 1
# No local roles, try global roles...
user_roles=self.getRoles()
for role in roles:
if role in user_roles:
......@@ -304,7 +315,8 @@ class BasicUserFolder(Implicit, Persistent, Navigation, Tabs, RoleManager,
)
__ac_permissions__=(
('Manage users', ('manage_users','getUserNames','getUser','getUsers')),
('Manage users', ('manage_users','getUserNames','getUser','getUsers',
)),
)
# ----------------------------------
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment