diff options
author | Tomas Babej <tbabej@redhat.com> | 2014-09-17 13:04:49 +0200 |
---|---|---|
committer | Tomas Babej <tbabej@redhat.com> | 2014-09-22 12:00:06 +0200 |
commit | 0632c5fe5859e272e6a02984935a487eaace64f6 (patch) | |
tree | 34b66801fe9cc9544ff2905dc3515201051cc164 /ipalib/plugins/idviews.py | |
parent | 95deccd7a8b1f2129f6987a5a3a9e6ed57168442 (diff) | |
download | freeipa-0632c5fe5859e272e6a02984935a487eaace64f6.tar.gz freeipa-0632c5fe5859e272e6a02984935a487eaace64f6.tar.xz freeipa-0632c5fe5859e272e6a02984935a487eaace64f6.zip |
idviews: Add ipaOriginalUid
Diffstat (limited to 'ipalib/plugins/idviews.py')
-rw-r--r-- | ipalib/plugins/idviews.py | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/ipalib/plugins/idviews.py b/ipalib/plugins/idviews.py index 173e70c91..dbb6b22dd 100644 --- a/ipalib/plugins/idviews.py +++ b/ipalib/plugins/idviews.py @@ -585,14 +585,14 @@ class idoverrideuser(baseidoverride): 'ipapermright': {'read', 'search', 'compare'}, 'ipapermdefaultattr': { 'objectClass', 'ipaAnchorUUID', 'uidNumber', 'description', - 'homeDirectory', 'uid', + 'homeDirectory', 'uid', 'ipaOriginalUid', }, }, } object_class = baseidoverride.object_class + ['ipaUserOverride'] default_attributes = baseidoverride.default_attributes + [ - 'homeDirectory', 'uidNumber', 'uid', + 'homeDirectory', 'uidNumber', 'uid', 'ipaOriginalUid', ] takes_params = baseidoverride.takes_params + ( @@ -614,10 +614,20 @@ class idoverrideuser(baseidoverride): cli_name='homedir', label=_('Home directory'), ), + Str('ipaoriginaluid?', + flags=['no_option', 'no_output'] + ), ) override_object = 'user' + def update_original_uid_reference(self, entry_attrs): + anchor = entry_attrs.single_value.get('ipaanchoruuid') + original_uid = resolve_anchor_to_object_name(self.backend, + self.override_object, + anchor) + entry_attrs['ipaOriginalUid'] = original_uid + @register() class idoverridegroup(baseidoverride): @@ -671,6 +681,14 @@ class idoverrideuser_add(baseidoverride_add): __doc__ = _('Add a new User ID override.') msg_summary = _('Added User ID override "%(value)s"') + def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options): + dn = super(idoverrideuser_add, self).pre_callback(ldap, dn, + entry_attrs, attrs_list, *keys, **options) + + # Update the ipaOriginalUid + self.obj.update_original_uid_reference(entry_attrs) + return dn + @register() class idoverrideuser_del(baseidoverride_del): @@ -683,6 +701,15 @@ class idoverrideuser_mod(baseidoverride_mod): __doc__ = _('Modify an User ID override.') msg_summary = _('Modified an User ID override "%(value)s"') + def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options): + dn = super(idoverrideuser_mod, self).pre_callback(ldap, dn, + entry_attrs, attrs_list, *keys, **options) + + # Update the ipaOriginalUid + self.obj.set_anchoruuid_from_dn(dn, entry_attrs) + self.obj.update_original_uid_reference(entry_attrs) + return dn + @register() class idoverrideuser_find(baseidoverride_find): |