summaryrefslogtreecommitdiffstats
path: root/ipa-server/ipa-gui/ipagui/forms/delegate.py
diff options
context:
space:
mode:
authorKevin McCarthy <kmccarth@redhat.com>2007-10-12 15:11:55 -0700
committerKevin McCarthy <kmccarth@redhat.com>2007-10-12 15:11:55 -0700
commit63f7cdf7f7e1c39b791dad6951fa39d9a6d58c9d (patch)
tree72f1bd539e6fcbbce99a31f4b6695c149e828c2a /ipa-server/ipa-gui/ipagui/forms/delegate.py
parentaf0a1d989b1eb483ae3e76fa5a3008fda3fafb5e (diff)
downloadfreeipa-63f7cdf7f7e1c39b791dad6951fa39d9a6d58c9d.tar.gz
freeipa-63f7cdf7f7e1c39b791dad6951fa39d9a6d58c9d.tar.xz
freeipa-63f7cdf7f7e1c39b791dad6951fa39d9a6d58c9d.zip
Adds delegation listing and creation to the GUI.
Diffstat (limited to 'ipa-server/ipa-gui/ipagui/forms/delegate.py')
-rw-r--r--ipa-server/ipa-gui/ipagui/forms/delegate.py86
1 files changed, 86 insertions, 0 deletions
diff --git a/ipa-server/ipa-gui/ipagui/forms/delegate.py b/ipa-server/ipa-gui/ipagui/forms/delegate.py
new file mode 100644
index 000000000..3b4967d6c
--- /dev/null
+++ b/ipa-server/ipa-gui/ipagui/forms/delegate.py
@@ -0,0 +1,86 @@
+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]
+
+class DelegateFields():
+ name = widgets.TextField(name="name", label="ACI 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")
+
+ attrs = widgets.CheckBoxList(name="attrs", label="Can Modify",
+ options=aci_checkbox_attrs, validator=validators.NotEmpty)
+
+class DelegateNewValidator(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 DelegateNewForm(widgets.Form):
+ params = ['delegate', 'attr_list']
+
+ hidden_fields = [
+ DelegateFields.source_group_dn,
+ DelegateFields.dest_group_dn,
+ DelegateFields.source_group_cn,
+ DelegateFields.dest_group_cn,
+ ]
+
+ validator = DelegateNewValidator()
+
+ def __init__(self, *args, **kw):
+ super(DelegateNewForm,self).__init__(*args, **kw)
+ (self.template_c, self.template) = widgets.meta.load_kid_template(
+ "ipagui.templates.delegatenewform")
+ self.delegate = DelegateFields
+
+ def update_params(self, params):
+ super(DelegateNewForm,self).update_params(params)