summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--install/ui/user.js11
-rw-r--r--ipalib/parameters.py4
-rw-r--r--ipalib/plugins/user.py27
-rw-r--r--ipaserver/ipaldap.py2
-rw-r--r--tests/test_xmlrpc/test_attr.py14
-rw-r--r--tests/test_xmlrpc/test_replace.py12
-rw-r--r--tests/test_xmlrpc/test_user_plugin.py22
7 files changed, 52 insertions, 40 deletions
diff --git a/install/ui/user.js b/install/ui/user.js
index 9fd14d69d..fb43916f1 100644
--- a/install/ui/user.js
+++ b/install/ui/user.js
@@ -200,9 +200,16 @@ IPA.user_status_widget = function(spec) {
if (!that.record) return;
var lock_field = 'nsaccountlock';
+ var locked_field = that.record[lock_field];
+ var locked = false;
- var locked = that.record[lock_field] &&
- that.record[lock_field][0].toLowerCase() === 'true';
+ if (typeof locked_field === 'array') locked_field = locked_field[0];
+
+ if (typeof locked_field === 'boolean') {
+ locked = locked_field;
+ } else {
+ locked = locked_field && locked_field.toLowerCase() === 'true';
+ }
var status;
var action;
diff --git a/ipalib/parameters.py b/ipalib/parameters.py
index 3d9f208d2..56ce056a6 100644
--- a/ipalib/parameters.py
+++ b/ipalib/parameters.py
@@ -903,8 +903,8 @@ class Bool(Param):
# FIXME: This my quick hack to get some UI stuff working, change these defaults
# --jderose 2009-08-28
kwargs = Param.kwargs + (
- ('truths', frozenset, frozenset([1, u'1', u'true', u'TRUE'])),
- ('falsehoods', frozenset, frozenset([0, u'0', u'false', u'FALSE'])),
+ ('truths', frozenset, frozenset([1, u'1', True, u'true', u'TRUE'])),
+ ('falsehoods', frozenset, frozenset([0, u'0', False, u'false', u'FALSE'])),
)
def _convert_scalar(self, value, index=None):
diff --git a/ipalib/plugins/user.py b/ipalib/plugins/user.py
index 1f85238da..7d67bddd5 100644
--- a/ipalib/plugins/user.py
+++ b/ipalib/plugins/user.py
@@ -69,11 +69,19 @@ NO_UPG_MAGIC = '__no_upg__'
def validate_nsaccountlock(entry_attrs):
if 'nsaccountlock' in entry_attrs:
- if not isinstance(entry_attrs['nsaccountlock'], basestring):
- raise errors.OnlyOneValueAllowed(attr='nsaccountlock')
- if entry_attrs['nsaccountlock'].lower() not in ('true','false'):
- raise errors.ValidationError(name='nsaccountlock', error='must be TRUE or FALSE')
-
+ nsaccountlock = entry_attrs['nsaccountlock']
+ if not isinstance(nsaccountlock, (bool, Bool)):
+ if not isinstance(nsaccountlock, basestring):
+ raise errors.OnlyOneValueAllowed(attr='nsaccountlock')
+ if nsaccountlock.lower() not in ('true','false'):
+ raise errors.ValidationError(name='nsaccountlock', error='must be TRUE or FALSE')
+
+def convert_nsaccountlock(entry_attrs):
+ if not 'nsaccountlock' in entry_attrs:
+ entry_attrs['nsaccountlock'] = False
+ else:
+ nsaccountlock = Bool('temp')
+ entry_attrs['nsaccountlock'] = nsaccountlock.convert(entry_attrs['nsaccountlock'][0])
class user(LDAPObject):
"""
@@ -428,8 +436,7 @@ class user_mod(LDAPUpdate):
return dn
def post_callback(self, ldap, dn, entry_attrs, *keys, **options):
- if not 'nsaccountlock' in entry_attrs:
- entry_attrs['nsaccountlock'] = [u'False']
+ convert_nsaccountlock(entry_attrs)
self.obj._convert_manager(entry_attrs, **options)
return dn
@@ -460,8 +467,7 @@ class user_find(LDAPSearch):
for entry in entries:
(dn, attrs) = entry
self.obj._convert_manager(attrs, **options)
- if not 'nsaccountlock' in attrs:
- attrs['nsaccountlock'] = [u'False']
+ convert_nsaccountlock(attrs)
msg_summary = ngettext(
'%(count)d user matched', '%(count)d users matched', 0
@@ -475,8 +481,7 @@ class user_show(LDAPRetrieve):
Display information about a user.
"""
def post_callback(self, ldap, dn, entry_attrs, *keys, **options):
- if not 'nsaccountlock' in entry_attrs:
- entry_attrs['nsaccountlock'] = [u'False']
+ convert_nsaccountlock(entry_attrs)
self.obj._convert_manager(entry_attrs, **options)
return dn
diff --git a/ipaserver/ipaldap.py b/ipaserver/ipaldap.py
index cf76d6222..77f5b289a 100644
--- a/ipaserver/ipaldap.py
+++ b/ipaserver/ipaldap.py
@@ -567,7 +567,7 @@ class IPAdmin(SimpleLDAPObject):
else:
operation = ldap.MOD_ADD
- modlist.append((operation, "nsAccountlock", "true"))
+ modlist.append((operation, "nsAccountlock", "TRUE"))
try:
if sctrl is not None:
diff --git a/tests/test_xmlrpc/test_attr.py b/tests/test_xmlrpc/test_attr.py
index 198251fcd..9f1b1c51d 100644
--- a/tests/test_xmlrpc/test_attr.py
+++ b/tests/test_xmlrpc/test_attr.py
@@ -83,7 +83,7 @@ class test_attr(Declarative):
gidnumber=[fuzzy_digits],
mail=[u'test@example.com'],
memberof_group=[u'ipausers'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
),
summary=u'Modified user "tuser1"',
value=user1,
@@ -107,7 +107,7 @@ class test_attr(Declarative):
gidnumber=[fuzzy_digits],
mail=[u'test@example.com', u'test2@example.com'],
memberof_group=[u'ipausers'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
),
summary=u'Modified user "tuser1"',
value=user1,
@@ -132,7 +132,7 @@ class test_attr(Declarative):
mail=[u'test@example.com', u'test2@example.com'],
memberof_group=[u'ipausers'],
telephonenumber=[u'410-555-1212', u'301-555-1212'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
),
summary=u'Modified user "tuser1"',
value=user1,
@@ -157,7 +157,7 @@ class test_attr(Declarative):
mail=[u'test@example.com', u'test2@example.com'],
memberof_group=[u'ipausers'],
telephonenumber=[u'301-555-1212'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
),
summary=u'Modified user "tuser1"',
value=user1,
@@ -182,7 +182,7 @@ class test_attr(Declarative):
mail=[u'test@example.com', u'test2@example.com'],
memberof_group=[u'ipausers'],
telephonenumber=[u'301-555-1212', u'202-888-9833', u'703-555-1212'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
),
summary=u'Modified user "tuser1"',
value=user1,
@@ -225,7 +225,7 @@ class test_attr(Declarative):
mail=[u'test@example.com', u'test2@example.com'],
memberof_group=[u'ipausers'],
telephonenumber=[u'301-555-1212', u'202-888-9833', u'703-555-1212'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
),
summary=u'Modified user "tuser1"',
value=user1,
@@ -250,7 +250,7 @@ class test_attr(Declarative):
mail=[u'test@example.com', u'test2@example.com'],
memberof_group=[u'ipausers'],
telephonenumber=[u'301-555-1212', u'202-888-9833', u'703-555-1212'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
),
summary=u'Modified user "tuser1"',
value=user1,
diff --git a/tests/test_xmlrpc/test_replace.py b/tests/test_xmlrpc/test_replace.py
index 931e487fa..668177844 100644
--- a/tests/test_xmlrpc/test_replace.py
+++ b/tests/test_xmlrpc/test_replace.py
@@ -89,7 +89,7 @@ class test_replace(Declarative):
gidnumber=[fuzzy_digits],
mail=[u'test1@example.com', u'test3@example.com'],
memberof_group=[u'ipausers'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
),
summary=u'Modified user "tuser1"',
value=user1,
@@ -113,7 +113,7 @@ class test_replace(Declarative):
gidnumber=[fuzzy_digits],
mail=[u'test4@example.com'],
memberof_group=[u'ipausers'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
),
summary=u'Modified user "tuser1"',
value=user1,
@@ -137,7 +137,7 @@ class test_replace(Declarative):
gidnumber=[fuzzy_digits],
mail=[u'test6@example.com', u'test7@example.com', u'test5@example.com'],
memberof_group=[u'ipausers'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
),
summary=u'Modified user "tuser1"',
value=user1,
@@ -160,7 +160,7 @@ class test_replace(Declarative):
uidnumber=[fuzzy_digits],
gidnumber=[fuzzy_digits],
memberof_group=[u'ipausers'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
),
summary=u'Modified user "tuser1"',
value=user1,
@@ -184,7 +184,7 @@ class test_replace(Declarative):
gidnumber=[fuzzy_digits],
initials=[u'ABC'],
memberof_group=[u'ipausers'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
),
summary=u'Modified user "tuser1"',
value=user1,
@@ -207,7 +207,7 @@ class test_replace(Declarative):
uidnumber=[fuzzy_digits],
gidnumber=[fuzzy_digits],
memberof_group=[u'ipausers'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
),
summary=u'Modified user "tuser1"',
value=user1,
diff --git a/tests/test_xmlrpc/test_user_plugin.py b/tests/test_xmlrpc/test_user_plugin.py
index 9ebf844d5..36e19defc 100644
--- a/tests/test_xmlrpc/test_user_plugin.py
+++ b/tests/test_xmlrpc/test_user_plugin.py
@@ -129,7 +129,7 @@ class test_user(Declarative):
uidnumber=[fuzzy_digits],
gidnumber=[fuzzy_digits],
memberof_group=[u'ipausers'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
),
value=user1,
summary=None,
@@ -161,7 +161,7 @@ class test_user(Declarative):
'ipauniqueid': [fuzzy_uuid],
'mepmanagedentry': [u'cn=%s,cn=groups,cn=accounts,%s' % (user1, api.env.basedn)],
'krbpwdpolicyreference': [u'cn=global_policy,cn=%s,cn=kerberos,%s' % (api.env.realm, api.env.basedn)],
- 'nsaccountlock': [u'False'],
+ 'nsaccountlock': False,
'displayname': [u'Test User1'],
'cn': [u'Test User1'],
'initials': [u'TU'],
@@ -187,7 +187,7 @@ class test_user(Declarative):
loginshell=[u'/bin/sh'],
sn=[u'User1'],
uid=[user1],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
uidnumber=[fuzzy_digits],
gidnumber=[fuzzy_digits],
),
@@ -212,7 +212,7 @@ class test_user(Declarative):
loginshell=[u'/bin/bash'],
sn=[u'Administrator'],
uid=[u'admin'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
uidnumber=[fuzzy_digits],
gidnumber=[fuzzy_digits],
),
@@ -223,7 +223,7 @@ class test_user(Declarative):
loginshell=[u'/bin/sh'],
sn=[u'User1'],
uid=[user1],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
uidnumber=[fuzzy_digits],
gidnumber=[fuzzy_digits],
),
@@ -248,7 +248,7 @@ class test_user(Declarative):
loginshell=[u'/bin/bash'],
sn=[u'Administrator'],
uid=[u'admin'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
uidnumber=[fuzzy_digits],
gidnumber=[fuzzy_digits],
),
@@ -301,7 +301,7 @@ class test_user(Declarative):
uidnumber=[fuzzy_digits],
gidnumber=[fuzzy_digits],
memberof_group=[u'ipausers'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
),
summary=u'Modified user "tuser1"',
value=user1,
@@ -332,7 +332,7 @@ class test_user(Declarative):
uidnumber=[fuzzy_digits],
gidnumber=[fuzzy_digits],
memberof_group=[u'ipausers'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
),
summary=None,
value=user1,
@@ -354,7 +354,7 @@ class test_user(Declarative):
uidnumber=[fuzzy_digits],
gidnumber=[fuzzy_digits],
memberof_group=[u'ipausers'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
),
summary=u'Modified user "%s"' % user1,
value=user1,
@@ -382,7 +382,7 @@ class test_user(Declarative):
uidnumber=[fuzzy_digits],
gidnumber=[fuzzy_digits],
memberof_group=[u'ipausers'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
),
summary=u'Modified user "%s"' % renameduser1,
value=renameduser1,
@@ -497,7 +497,7 @@ class test_user(Declarative):
uidnumber=[fuzzy_digits],
gidnumber=[fuzzy_digits],
memberof_group=[u'ipausers'],
- nsaccountlock=[u'False'],
+ nsaccountlock=False,
manager=[user1],
),
summary=u'Modified user "%s"' % user2,