Files
freeipa/ipa-server/ipa-gui/ipagui/forms/delegate.py
T
Rob Crittenden 705d68ddcb Require uniqueness in the name/comment field of delegations
Fix error reporting in the UI to include the detailed message
Sort delegations by name when displaying them
Update the name field from "Name" to "Delegation Name"
2007-11-09 13:58:36 -05:00

92 lines
2.7 KiB
Python

import turbogears
from turbogears import validators, widgets
from ipagui.forms.user import UserFields
# TODO - get from config or somewhere
aci_attrs = [
UserFields.givenname,
UserFields.sn,
UserFields.cn,
UserFields.title,
UserFields.displayname,
UserFields.initials,
UserFields.uid,
UserFields.userpassword,
UserFields.uidnumber,
UserFields.gidnumber,
UserFields.homedirectory,
UserFields.loginshell,
UserFields.gecos,
UserFields.mail,
UserFields.telephonenumber,
UserFields.facsimiletelephonenumber,
UserFields.mobile,
UserFields.pager,
UserFields.homephone,
UserFields.street,
UserFields.l,
UserFields.st,
UserFields.postalcode,
UserFields.ou,
UserFields.businesscategory,
UserFields.description,
UserFields.employeetype,
UserFields.manager,
UserFields.roomnumber,
UserFields.secretary,
UserFields.carlicense,
UserFields.labeleduri,
]
aci_checkbox_attrs = [(field.name, field.label) for field in aci_attrs]
aci_name_to_label = dict(aci_checkbox_attrs)
class DelegateFields():
name = widgets.TextField(name="name", label="Delegation Name")
source_group_dn = widgets.HiddenField(name="source_group_dn")
dest_group_dn = widgets.HiddenField(name="dest_group_dn")
source_group_cn = widgets.HiddenField(name="source_group_cn",
label="People in Group")
dest_group_cn = widgets.HiddenField(name="dest_group_cn",
label="For People in Group")
orig_acistr = widgets.HiddenField(name="orig_acistr")
attrs = widgets.CheckBoxList(name="attrs", label="Can Modify",
options=aci_checkbox_attrs, validator=validators.NotEmpty)
class DelegateValidator(validators.Schema):
name = validators.String(not_empty=True)
source_group_dn = validators.String(not_empty=True,
messages = { 'empty': _("Please choose a group"), })
dest_group_dn = validators.String(not_empty=True,
messages = { 'empty': _("Please choose a group"), })
attrs = validators.NotEmpty(
messages = { 'empty': _("Please select at least one value"), })
class DelegateForm(widgets.Form):
params = ['delegate_fields', 'attr_list']
hidden_fields = [
DelegateFields.source_group_dn,
DelegateFields.dest_group_dn,
DelegateFields.source_group_cn,
DelegateFields.dest_group_cn,
DelegateFields.orig_acistr,
]
validator = DelegateValidator()
def __init__(self, *args, **kw):
super(DelegateForm,self).__init__(*args, **kw)
(self.template_c, self.template) = widgets.meta.load_kid_template(
"ipagui.templates.delegateform")
self.delegate_fields = DelegateFields
def update_params(self, params):
super(DelegateForm,self).update_params(params)