summaryrefslogtreecommitdiffstats
path: root/nova/auth
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@gmail.com>2010-08-10 18:04:23 -0700
committerVishvananda Ishaya <vishvananda@gmail.com>2010-08-10 18:04:23 -0700
commitcff3cccc342c7d09cd2ec6c95431e1b373eba620 (patch)
treeb0826071da09eed60c57041c62d54aeff8343d3a /nova/auth
parent19b9164c4eaae0c2c9144f9e839fbafcac7c3ed3 (diff)
downloadnova-cff3cccc342c7d09cd2ec6c95431e1b373eba620.tar.gz
nova-cff3cccc342c7d09cd2ec6c95431e1b373eba620.tar.xz
nova-cff3cccc342c7d09cd2ec6c95431e1b373eba620.zip
change get_roles to have a flag for project_roles or not. Don't show 'projectmanager' in list of roles
Diffstat (limited to 'nova/auth')
-rw-r--r--nova/auth/manager.py15
1 files changed, 7 insertions, 8 deletions
diff --git a/nova/auth/manager.py b/nova/auth/manager.py
index e338dfc83..064fd78bc 100644
--- a/nova/auth/manager.py
+++ b/nova/auth/manager.py
@@ -463,19 +463,18 @@ class AuthManager(object):
with self.driver() as drv:
drv.remove_role(User.safe_id(user), role, Project.safe_id(project))
- def get_roles(self):
+ def get_roles(self, project_roles=True):
"""Get list of allowed roles"""
- return FLAGS.allowed_roles
+ if project_roles:
+ return list(set(FLAGS.allowed_roles) - set(FLAGS.global_roles))
+ else:
+ return FLAGS.allowed_roles
def get_user_roles(self, user, project=None):
"""Get user global or per-project roles"""
- roles = []
with self.driver() as drv:
- roles = drv.get_user_roles(User.safe_id(user),
- Project.safe_id(project))
- if project is not None and self.is_project_manager(user, project):
- roles.append('projectmanager')
- return roles
+ return drv.get_user_roles(User.safe_id(user),
+ Project.safe_id(project))
def get_project(self, pid):
"""Get project object by id"""