1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
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)
|