From 2ecdf8cdd81df36ef34fc7522aae3f5f1b217d81 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Wed, 28 Jul 2010 10:47:53 -0700 Subject: Specify a filter by user for get projects --- nova/auth/ldapdriver.py | 7 +++++-- nova/auth/manager.py | 6 +++--- 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'nova/auth') diff --git a/nova/auth/ldapdriver.py b/nova/auth/ldapdriver.py index 1591c88e9..055e8332b 100644 --- a/nova/auth/ldapdriver.py +++ b/nova/auth/ldapdriver.py @@ -120,10 +120,13 @@ class LdapDriver(object): '(objectclass=novaKeyPair)') return [self.__to_key_pair(uid, attr) for attr in attrs] - def get_projects(self): + def get_projects(self, uid=None): """Retrieve list of projects""" + filter = '(objectclass=novaProject)' + if uid: + filter = "(&%s(member=%s))" % (filter, self.__uid_to_dn(uid)) attrs = self.__find_objects(FLAGS.ldap_project_subtree, - '(objectclass=novaProject)') + filter) return [self.__to_project(attr) for attr in attrs] def create_user(self, name, access_key, secret_key, is_admin): diff --git a/nova/auth/manager.py b/nova/auth/manager.py index 66027f6c2..7307f673b 100644 --- a/nova/auth/manager.py +++ b/nova/auth/manager.py @@ -547,10 +547,10 @@ class AuthManager(object): if project_dict: return Project(**project_dict) - def get_projects(self): - """Retrieves list of all projects""" + def get_projects(self, user=None): + """Retrieves list of projects, optionally filtered by user""" with self.driver() as drv: - project_list = drv.get_projects() + project_list = drv.get_projects(User.safe_id(user)) if not project_list: return [] return [Project(**project_dict) for project_dict in project_list] -- cgit