summaryrefslogtreecommitdiffstats
path: root/ipalib/plugins/idviews.py
diff options
context:
space:
mode:
Diffstat (limited to 'ipalib/plugins/idviews.py')
-rw-r--r--ipalib/plugins/idviews.py31
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):