Files
freeipa/ipa-server/ipa-gui/ipagui/forms/user.py
T
2007-08-12 04:53:18 -07:00

68 lines
2.7 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)
class UserFormWidget(widgets.Form):
params = ['user']
# fields = [UserFields.uid, UserFields.userPassword, UserFields.givenName,
# UserFields.sn, UserFields.mail]
fields = [UserFields.uid, UserFields.givenName,
UserFields.uidNumber, UserFields.gidNumber,
UserFields.sn, UserFields.mail]
def __init__(self, *args, **kw):
super(UserFormWidget,self).__init__(*args, **kw)
(self.template_c, self.template) = widgets.meta.load_kid_template("ipagui.templates.userform")
self.user = UserFields
def update_params(self, params):
super(UserFormWidget,self).update_params(params)
params['has_foo'] = self.has_foo
def has_foo(self):
return False
# 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)