summaryrefslogtreecommitdiffstats
path: root/ipa-server/ipa-gui/ipagui/forms/ipapolicy.py
blob: ec0e8c6f88e6e713c664e3f92a2b9ab8861bd0c7 (plain)
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
import turbogears
from turbogears import validators, widgets

class IPAPolicyFields():
    # From cn=ipaConfig
    ipausersearchfields =  widgets.TextField(name="ipausersearchfields", label="User Search Fields")
    ipagroupsearchfields =  widgets.TextField(name="ipagroupsearchfields", label="Group Search Fields")
    ipasearchtimelimit = widgets.TextField(name="ipasearchtimelimit", label="Search Time Limit (sec.)", attrs=dict(size=6,maxlength=6))
    ipasearchrecordslimit = widgets.TextField(name="ipasearchrecordslimit", label="Search Records Limit", attrs=dict(size=6,maxlength=6))
    ipahomesrootdir = widgets.TextField(name="ipahomesrootdir", label="Root for Home Directories")
    ipadefaultloginshell = widgets.TextField(name="ipadefaultloginshell", label="Default shell")
    ipadefaultprimarygroup = widgets.TextField(name="ipadefaultprimarygroup", label="Default Users group")
    ipamaxusernamelength = widgets.TextField(name="ipamaxusernamelength", label="Max. Username Length", attrs=dict(size=3,maxlength=3))
    ipapwdexpadvnotify = widgets.TextField(name="ipapwdexpadvnotify", label="Password Expiration Notification (days)", attrs=dict(size=3,maxlength=3))

    ipapolicy_orig = widgets.HiddenField(name="ipapolicy_orig")

    # From cn=accounts
    krbmaxpwdlife = widgets.TextField(name="krbmaxpwdlife", label="Max. Password Lifetime", attrs=dict(size=3,maxlength=3))
    krbminpwdlife = widgets.TextField(name="krbminpwdlife", label="Min. Password Lifetime", attrs=dict(size=3,maxlength=3))
    krbpwdmindiffchars = widgets.TextField(name="krbpwdmindiffchars", label="Min. number of character classes", attrs=dict(size=3,maxlength=3))
    krbpwdminlength = widgets.TextField(name="krbpwdminlength", label="Min. Length of password", attrs=dict(size=3,maxlength=3))
    krbpwdhistorylength = widgets.TextField(name="krbpwdhistorylength", label="Password History size", attrs=dict(size=3,maxlength=3))

    password_orig = widgets.HiddenField(name="password_orig")

class IPAPolicyValidator(validators.Schema):
    ipausersearchfields = validators.String(not_empty=True)
    ipagroupsearchfields = validators.String(not_empty=True)
    ipasearchtimelimit = validators.Number(not_empty=True)
    ipasearchrecordslimit = validators.Number(not_empty=True)
    ipamaxusernamelength = validators.Number(not_empty=True)
    ipapwdexpadvnotify = validators.Number(not_empty=True)
    ipahomesrootdir = validators.String(not_empty=True)
    ipadefaultloginshell = validators.String(not_empty=True)
    ipadefaultprimarygroup = validators.String(not_empty=True)
    krbmaxpwdlife = validators.Number(not_empty=True)
    krbminpwdlife = validators.Number(not_empty=True)
    krbpwdmindiffchars = validators.Number(not_empty=True)
    krbpwdminlength = validators.Number(not_empty=True)
    krbpwdhistorylength = validators.Number(not_empty=True)

class IPAPolicyForm(widgets.Form):
    params = ['ipapolicy_fields']

    hidden_fields = [
        IPAPolicyFields.ipapolicy_orig, IPAPolicyFields.password_orig
    ]

    validator = IPAPolicyValidator()

    def __init__(self, *args, **kw):
        super(IPAPolicyForm,self).__init__(*args, **kw)
        (self.template_c, self.template) = widgets.meta.load_kid_template(
                "ipagui.templates.ipapolicyeditform")
        self.ipapolicy_fields = IPAPolicyFields

    def update_params(self, params):
        super(IPAPolicyForm,self).update_params(params)