mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Fix fields to be lowercase in web gui (server now returns them lowercase). Fix ipaclient.py to refer to lowercase fields when adding a user. Fix user.getValue() to check isinstance(value,list) instead of value[0].
88 lines
3.2 KiB
Python
88 lines
3.2 KiB
Python
import turbogears
|
|
from turbogears import validators, widgets
|
|
|
|
class UserFields():
|
|
uid = widgets.TextField(name="uid", label="Login:")
|
|
userpassword = widgets.TextField(name="userpassword", label="Password:")
|
|
uidnumber = widgets.TextField(name="uidnumber", label="UID:")
|
|
gidnumber = widgets.TextField(name="gidnumber", label="GID:")
|
|
givenname = widgets.TextField(name="givenname", label="First name:")
|
|
sn = widgets.TextField(name="sn", label="Last name:")
|
|
mail = widgets.TextField(name="mail", label="E-mail address:")
|
|
telephonenumber = widgets.TextField(name="telephonenumber", label="Phone:")
|
|
|
|
uid.validator = validators.PlainText(not_empty=True)
|
|
userpassword.validator = validators.String(not_empty=True)
|
|
givenname.validator = validators.String(not_empty=True)
|
|
sn.validator = validators.String(not_empty=True)
|
|
mail.validator = validators.Email(not_empty=True)
|
|
# validators.PhoneNumber may be a bit too picky, requiring an area code
|
|
telephonenumber.validator = validators.PlainText(not_empty=True)
|
|
|
|
uid_hidden = widgets.HiddenField(name="uid")
|
|
uidnumber_hidden = widgets.HiddenField(name="uidnumber")
|
|
gidnumber_hidden = widgets.HiddenField(name="gidnumber")
|
|
|
|
user_orig = widgets.HiddenField(name="user_orig")
|
|
|
|
|
|
class UserNewForm(widgets.Form):
|
|
params = ['user']
|
|
|
|
fields = [UserFields.uid, UserFields.givenname,
|
|
UserFields.uidnumber, UserFields.gidnumber,
|
|
UserFields.sn, UserFields.mail]
|
|
|
|
def __init__(self, *args, **kw):
|
|
super(UserNewForm,self).__init__(*args, **kw)
|
|
(self.template_c, self.template) = widgets.meta.load_kid_template("ipagui.templates.usernewform")
|
|
self.user = UserFields
|
|
|
|
def update_params(self, params):
|
|
super(UserNewForm,self).update_params(params)
|
|
params['has_foo'] = self.has_foo
|
|
|
|
def has_foo(self):
|
|
return False
|
|
|
|
|
|
class UserEditForm(widgets.Form):
|
|
params = ['user']
|
|
|
|
fields = [UserFields.givenname, UserFields.sn, UserFields.mail,
|
|
UserFields.uid_hidden, UserFields.user_orig,
|
|
UserFields.uidnumber_hidden, UserFields.gidnumber_hidden,
|
|
]
|
|
|
|
def __init__(self, *args, **kw):
|
|
super(UserEditForm,self).__init__(*args, **kw)
|
|
(self.template_c, self.template) = widgets.meta.load_kid_template("ipagui.templates.usereditform")
|
|
self.user = UserFields
|
|
|
|
|
|
# TODO - add dynamic field retrieval:
|
|
# myfields=[]
|
|
# schema = ipa.rpcclient.get_add_schema ()
|
|
#
|
|
# # FIXME: What if schema is None or an error is thrown?
|
|
#
|
|
# for s in schema:
|
|
# required=False
|
|
#
|
|
# if (s['type'] == "text"):
|
|
# field = widgets.TextField(name=s['name'],label=s['label'])
|
|
# elif (s['type'] == "password"):
|
|
# field = widgets.PasswordField(name=s['name'],label=s['label'])
|
|
#
|
|
# if (s['required'] == "true"):
|
|
# required=True
|
|
#
|
|
# if (s['validator'] == "text"):
|
|
# field.validator=validators.PlainText(not_empty=required)
|
|
# elif (s['validator'] == "email"):
|
|
# field.validator=validators.Email(not_empty=required)
|
|
# elif (s['validator'] == "string"):
|
|
# field.validator=validators.String(not_empty=required)
|
|
#
|
|
# myfields.append(field)
|