diff options
| author | Soren Hansen <soren.hansen@rackspace.com> | 2010-09-29 13:29:45 +0200 |
|---|---|---|
| committer | Soren Hansen <soren.hansen@rackspace.com> | 2010-09-29 13:29:45 +0200 |
| commit | c43fb8325eb068e970df02ec99d02f37de38ecc4 (patch) | |
| tree | b4ecce6394cdb4ceb8fb382cb12045870177bb9b /nova/auth | |
| parent | e609dd8620796f4eadefcff6130dfeae06b97ef4 (diff) | |
| parent | 43ce84290964b433fd9d9898772d29bffc385dd8 (diff) | |
| download | nova-c43fb8325eb068e970df02ec99d02f37de38ecc4.tar.gz nova-c43fb8325eb068e970df02ec99d02f37de38ecc4.tar.xz nova-c43fb8325eb068e970df02ec99d02f37de38ecc4.zip | |
Merge trunk.
Diffstat (limited to 'nova/auth')
| -rw-r--r-- | nova/auth/ldapdriver.py | 16 | ||||
| -rw-r--r-- | nova/auth/manager.py | 6 |
2 files changed, 20 insertions, 2 deletions
diff --git a/nova/auth/ldapdriver.py b/nova/auth/ldapdriver.py index 021851ebf..640ea169e 100644 --- a/nova/auth/ldapdriver.py +++ b/nova/auth/ldapdriver.py @@ -256,8 +256,7 @@ class LdapDriver(object): if not self.__user_exists(uid): raise exception.NotFound("User %s doesn't exist" % uid) self.__remove_from_all(uid) - self.conn.delete_s('uid=%s,%s' % (uid, - FLAGS.ldap_user_subtree)) + self.conn.delete_s(self.__uid_to_dn(uid)) def delete_project(self, project_id): """Delete a project""" @@ -265,6 +264,19 @@ class LdapDriver(object): self.__delete_roles(project_dn) self.__delete_group(project_dn) + def modify_user(self, uid, access_key=None, secret_key=None, admin=None): + """Modify an existing project""" + if not access_key and not secret_key and admin is None: + return + attr = [] + if access_key: + attr.append((self.ldap.MOD_REPLACE, 'accessKey', access_key)) + if secret_key: + attr.append((self.ldap.MOD_REPLACE, 'secretKey', secret_key)) + if admin is not None: + attr.append((self.ldap.MOD_REPLACE, 'isAdmin', str(admin).upper())) + self.conn.modify_s(self.__uid_to_dn(uid), attr) + def __user_exists(self, uid): """Check if user exists""" return self.get_user(uid) != None diff --git a/nova/auth/manager.py b/nova/auth/manager.py index bea4c7933..e2e035d37 100644 --- a/nova/auth/manager.py +++ b/nova/auth/manager.py @@ -632,6 +632,12 @@ class AuthManager(object): with self.driver() as drv: drv.delete_user(uid) + def modify_user(self, user, access_key=None, secret_key=None, admin=None): + """Modify credentials for a user""" + uid = User.safe_id(user) + with self.driver() as drv: + drv.modify_user(uid, access_key, secret_key, admin) + def get_credentials(self, user, project=None): """Get credential zip for user in project""" if not isinstance(user, User): |
