summaryrefslogtreecommitdiffstats
path: root/nova/auth
diff options
context:
space:
mode:
authorSoren Hansen <soren.hansen@rackspace.com>2010-09-29 13:29:45 +0200
committerSoren Hansen <soren.hansen@rackspace.com>2010-09-29 13:29:45 +0200
commitc43fb8325eb068e970df02ec99d02f37de38ecc4 (patch)
treeb4ecce6394cdb4ceb8fb382cb12045870177bb9b /nova/auth
parente609dd8620796f4eadefcff6130dfeae06b97ef4 (diff)
parent43ce84290964b433fd9d9898772d29bffc385dd8 (diff)
downloadnova-c43fb8325eb068e970df02ec99d02f37de38ecc4.tar.gz
nova-c43fb8325eb068e970df02ec99d02f37de38ecc4.tar.xz
nova-c43fb8325eb068e970df02ec99d02f37de38ecc4.zip
Merge trunk.
Diffstat (limited to 'nova/auth')
-rw-r--r--nova/auth/ldapdriver.py16
-rw-r--r--nova/auth/manager.py6
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):