summaryrefslogtreecommitdiffstats
path: root/ipalib/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'ipalib/plugins')
-rw-r--r--ipalib/plugins/permission.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/ipalib/plugins/permission.py b/ipalib/plugins/permission.py
index 4ad53c749..18dd577e7 100644
--- a/ipalib/plugins/permission.py
+++ b/ipalib/plugins/permission.py
@@ -220,13 +220,16 @@ class permission_mod(LDAPUpdate):
msg_summary = _('Modified permission "%(value)s"')
def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options):
- (dn, attrs) = ldap.get_entry(
- dn, attrs_list, normalize=self.obj.normalize_dn
- )
+ try:
+ (dn, attrs) = ldap.get_entry(
+ dn, attrs_list, normalize=self.obj.normalize_dn
+ )
+ except errors.NotFound:
+ self.obj.handle_not_found(*keys)
opts = copy.copy(options)
if 'description' in opts:
del opts['description']
- for o in self.obj.aci_attributes + ['all', 'raw', 'rights']:
+ for o in ['all', 'raw', 'rights', 'description']:
if o in opts:
del opts[o]
setattr(context, 'aciupdate', False)
@@ -249,8 +252,8 @@ class permission_mod(LDAPUpdate):
pass
if 'description' in options:
- (dn, attrs) = ldap.get_entry(dn, ['description'])
- self.api.Command.aci_rename(attrs['description'][0], newname=options['description'])
+ if attrs['description'][0] != options['description']:
+ self.api.Command.aci_rename(attrs['description'][0], newname=options['description'])
return dn
@@ -265,7 +268,7 @@ class permission_mod(LDAPUpdate):
except:
pass
- if len(opts) > 0:
+ if len(opts) > 0 and not aciupdate:
raise exc
else:
raise exc