summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-02-08 20:01:55 +0000
committerGerrit Code Review <review@openstack.org>2013-02-08 20:01:55 +0000
commitb67afa9d61ec968145699eaee4a162ad25e1a587 (patch)
tree9076110db808a1934727351670d14aa5e07705f3
parente0f8a1bbac91c69923875704a23e8bee630498da (diff)
parent46246384a7c6e984c633656b29e174a6b3321921 (diff)
Merge "UserApi.update not to require all fields in arg"
-rw-r--r--keystone/identity/backends/ldap/core.py21
1 files changed, 9 insertions, 12 deletions
diff --git a/keystone/identity/backends/ldap/core.py b/keystone/identity/backends/ldap/core.py
index ef7f0bba..b403abff 100644
--- a/keystone/identity/backends/ldap/core.py
+++ b/keystone/identity/backends/ldap/core.py
@@ -414,24 +414,21 @@ class UserApi(common_ldap.BaseLdap, ApiShimMixin):
return values
def update(self, id, values):
- if values['id'] != id:
+ if 'id' in values and values['id'] != id:
raise exception.ValidationError('Cannot change user ID')
try:
old_obj = self.get(id)
except exception.NotFound:
raise exception.UserNotFound(user_id=id)
- if old_obj.get('name') != values['name']:
+ if 'name' in values and old_obj.get('name') != values['name']:
raise exception.Conflict('Cannot change user name')
- try:
- new_project = values['tenant_id']
- except KeyError:
- pass
- else:
- if old_obj.get('tenant_id') != new_project:
- if old_obj['tenant_id']:
- self.project_api.remove_user(old_obj['tenant_id'], id)
- if new_project:
- self.project_api.add_user(new_project, id)
+
+ if 'tenant_id' in values and \
+ old_obj.get('tenant_id') != values['tenant_id']:
+ if old_obj['tenant_id']:
+ self.project_api.remove_user(old_obj['tenant_id'], id)
+ if values['tenant_id']:
+ self.project_api.add_user(values['tenant_id'], id)
values = utils.hash_ldap_user_password(values)
if self.enabled_mask: