diff options
author | Kevin McCarthy <kmccarth@redhat.com> | 2007-10-24 16:04:17 -0700 |
---|---|---|
committer | Kevin McCarthy <kmccarth@redhat.com> | 2007-10-24 16:04:17 -0700 |
commit | 358d279a53138220121379be2df546cc9ee82ae1 (patch) | |
tree | ab3fa58e9a395fa4659091d1bdf274a1b7f4c0c8 /ipa-server/ipa-gui/ipagui/subcontrollers | |
parent | 6e6237e54a1f7a07478ec7c592ea08f71e1b18ce (diff) | |
download | freeipa-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.py | 39 |
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 |