summaryrefslogtreecommitdiffstats
path: root/ipa-server/ipa-gui/ipagui/subcontrollers
diff options
context:
space:
mode:
authorKevin McCarthy <kmccarth@redhat.com>2007-10-24 16:04:17 -0700
committerKevin McCarthy <kmccarth@redhat.com>2007-10-24 16:04:17 -0700
commit358d279a53138220121379be2df546cc9ee82ae1 (patch)
treeab3fa58e9a395fa4659091d1bdf274a1b7f4c0c8 /ipa-server/ipa-gui/ipagui/subcontrollers
parent6e6237e54a1f7a07478ec7c592ea08f71e1b18ce (diff)
downloadfreeipa-358d279a53138220121379be2df546cc9ee82ae1.tar.gz
freeipa-358d279a53138220121379be2df546cc9ee82ae1.tar.xz
freeipa-358d279a53138220121379be2df546cc9ee82ae1.zip
webgui side of custom fields.
Diffstat (limited to 'ipa-server/ipa-gui/ipagui/subcontrollers')
-rw-r--r--ipa-server/ipa-gui/ipagui/subcontrollers/user.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/ipa-server/ipa-gui/ipagui/subcontrollers/user.py b/ipa-server/ipa-gui/ipagui/subcontrollers/user.py
index a5f99ef0..794cfaef 100644
--- a/ipa-server/ipa-gui/ipagui/subcontrollers/user.py
+++ b/ipa-server/ipa-gui/ipagui/subcontrollers/user.py
@@ -32,6 +32,36 @@ email_domain = ipa.config.config.default_realm.lower()
class UserController(IPAController):
+ def __init__(self, *args, **kw):
+ super(UserController,self).__init__(*args, **kw)
+ self.load_custom_fields()
+
+ def load_custom_fields(self):
+ # client = self.get_ipaclient()
+ # schema = client.get_user_custom_schema()
+ schema = [
+ { 'label': 'See Also',
+ 'field': 'seeAlso',
+ 'required': 'true', } ,
+ { 'label': 'O O O',
+ 'field': 'o',
+ 'required': 'false', } ,
+ ]
+ for s in schema:
+ required=False
+ if (s['required'] == "true"):
+ required=True
+ field = widgets.TextField(name=s['field'],label=s['label'])
+ validator = validators.String(not_empty=required)
+
+ ipagui.forms.user.UserFields.custom_fields.append(field)
+ user_new_form.custom_fields.append(field)
+ user_edit_form.custom_fields.append(field)
+
+ user_new_form.validator.add_field(s['field'], validator)
+ user_edit_form.validator.add_field(s['field'], validator)
+
+
@expose()
def index(self):
raise turbogears.redirect("/user/list")
@@ -107,6 +137,10 @@ class UserController(IPAController):
if kw.get('nsAccountLock'):
new_user.setValue('nsAccountLock', 'true')
+ for custom_field in user_new_form.custom_fields:
+ new_user.setValue(custom_field.name,
+ kw.get(custom_field.name, ''))
+
rv = client.add_user(new_user)
except ipaerror.exception_for(ipaerror.LDAP_DUPLICATE):
turbogears.flash("Person with login '%s' already exists" %
@@ -320,6 +354,7 @@ class UserController(IPAController):
new_user.setValue('nsAccountLock', 'true')
else:
new_user.setValue('nsAccountLock', None)
+
if kw.get('editprotected') == 'true':
if kw.get('userpassword'):
password_change = True
@@ -327,6 +362,10 @@ class UserController(IPAController):
new_user.setValue('gidnumber', str(kw.get('gidnumber')))
new_user.setValue('homedirectory', str(kw.get('homedirectory')))
+ for custom_field in user_edit_form.custom_fields:
+ new_user.setValue(custom_field.name,
+ kw.get(custom_field.name, ''))
+
rv = client.update_user(new_user)
#
# If the user update succeeds, but below operations fail, we