From 1400c85188b63d44c44fddd1e9bf68b0b7b868ba Mon Sep 17 00:00:00 2001 From: Rob Crittenden Date: Thu, 4 Mar 2010 16:20:42 -0500 Subject: Catch modifications with no updates and raise an error 569848 --- ipalib/plugins/baseldap.py | 3 +++ ipalib/plugins/pwpolicy.py | 10 ++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py index ca35000e..6e601253 100644 --- a/ipalib/plugins/baseldap.py +++ b/ipalib/plugins/baseldap.py @@ -270,6 +270,9 @@ class LDAPUpdate(LDAPQuery, crud.Update): def execute(self, *keys, **options): ldap = self.obj.backend + if len(options) == 2: # 'all' and 'raw' are always sent + raise errors.EmptyModlist() + dn = self.obj.get_dn(*keys, **options) entry_attrs = self.args_options_2_entry(**options) diff --git a/ipalib/plugins/pwpolicy.py b/ipalib/plugins/pwpolicy.py index 2d4b7048..447e1cef 100644 --- a/ipalib/plugins/pwpolicy.py +++ b/ipalib/plugins/pwpolicy.py @@ -238,14 +238,20 @@ class pwpolicy_mod(crud.Update): assert 'dn' not in options ldap = self.api.Backend.ldap2 - if not 'group' in options: + if 'group' in options: + group_cn = options['group'] + del options['group'] + else: group_cn = _global + if len(options) == 2: # 'all' and 'raw' are always sent + raise errors.EmptyModlist() + + if not 'group' in options: if 'cospriority' in options: raise errors.ValidationError(name='priority', error=_('priority cannot be set on global policy')) dn = self.api.env.container_accounts entry_attrs = self.args_options_2_entry(*args, **options) else: - group_cn = options['group'] if 'cospriority' in options: groupdn = find_group_dn(options['group']) cos_dn = 'cn="%s", cn=cosTemplates, cn=accounts, %s' % (groupdn, api.env.basedn) -- cgit