diff options
| author | Jenkins <jenkins@review.openstack.org> | 2013-02-08 20:01:55 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-02-08 20:01:55 +0000 |
| commit | b67afa9d61ec968145699eaee4a162ad25e1a587 (patch) | |
| tree | 9076110db808a1934727351670d14aa5e07705f3 | |
| parent | e0f8a1bbac91c69923875704a23e8bee630498da (diff) | |
| parent | 46246384a7c6e984c633656b29e174a6b3321921 (diff) | |
Merge "UserApi.update not to require all fields in arg"
| -rw-r--r-- | keystone/identity/backends/ldap/core.py | 21 |
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: |
