summaryrefslogtreecommitdiffstats
path: root/ipa-server/ipa-gui/ipagui/subcontrollers/ipapolicy.py
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2007-11-12 14:19:05 -0500
committerRob Crittenden <rcritten@redhat.com>2007-11-12 14:19:05 -0500
commite1ca8c235c5bdd9001c2bbabaded1f1773196eca (patch)
tree8da019a74f190391e4513a7590318c43c0abcd07 /ipa-server/ipa-gui/ipagui/subcontrollers/ipapolicy.py
parente9dfbfa773149c57544e5c8e4d87a00fc9960bf1 (diff)
downloadfreeipa.git-e1ca8c235c5bdd9001c2bbabaded1f1773196eca.tar.gz
freeipa.git-e1ca8c235c5bdd9001c2bbabaded1f1773196eca.tar.xz
freeipa.git-e1ca8c235c5bdd9001c2bbabaded1f1773196eca.zip
Initial support for policy editing
More work is needed as the values are currently hardcoded and not saved
Diffstat (limited to 'ipa-server/ipa-gui/ipagui/subcontrollers/ipapolicy.py')
-rw-r--r--ipa-server/ipa-gui/ipagui/subcontrollers/ipapolicy.py96
1 files changed, 96 insertions, 0 deletions
diff --git a/ipa-server/ipa-gui/ipagui/subcontrollers/ipapolicy.py b/ipa-server/ipa-gui/ipagui/subcontrollers/ipapolicy.py
new file mode 100644
index 00000000..bbef9458
--- /dev/null
+++ b/ipa-server/ipa-gui/ipagui/subcontrollers/ipapolicy.py
@@ -0,0 +1,96 @@
+import os
+from pickle import dumps, loads
+from base64 import b64encode, b64decode
+import copy
+import logging
+
+import cherrypy
+import turbogears
+from turbogears import controllers, expose, flash
+from turbogears import validators, validate
+from turbogears import widgets, paginate
+from turbogears import error_handler
+from turbogears import identity
+
+from ipacontroller import IPAController
+from ipa.entity import utf8_encode_values
+from ipa import ipaerror
+import ipagui.forms.ipapolicy
+
+import ldap.dn
+
+log = logging.getLogger(__name__)
+
+ipapolicy_edit_form = ipagui.forms.ipapolicy.IPAPolicyForm()
+
+class IPAPolicyController(IPAController):
+
+ @expose()
+ def index(self):
+ raise turbogears.redirect("/ipapolicy/show")
+
+ @expose("ipagui.templates.ipapolicyshow")
+ @identity.require(identity.not_anonymous())
+ def show(self, tg_errors=None):
+ """Displays the one policy page"""
+
+ # TODO: Get this dict from LDAP
+ ipapolicy = {}
+ ipapolicy['searchlimit'] = 2
+ ipapolicy['maxuidlength'] = 3
+ ipapolicy['passwordnotif'] = 4
+ return dict(ipapolicy=ipapolicy,fields=ipagui.forms.ipapolicy.IPAPolicyFields())
+
+ @expose("ipagui.templates.ipapolicyedit")
+ @identity.require(identity.not_anonymous())
+ def edit(self, tg_errors=None):
+ """Displays the edit IPA policy form"""
+ if tg_errors:
+ turbogears.flash("There were validation errors.<br/>" +
+ "Please see the messages below for details.")
+
+ try:
+ # TODO: Get this dict from LDAP
+ ipapolicy_dict = {}
+ ipapolicy_dict['searchlimit'] = 2
+ ipapolicy_dict['maxuidlength'] = 3
+ ipapolicy_dict['passwordnotif'] = 4
+ return dict(form=ipapolicy_edit_form, ipapolicy=ipapolicy_dict)
+ except ipaerror.IPAError, e:
+ turbogears.flash("IPA Policy edit failed: " + str(e) + "<br/>" + str(e.detail))
+ raise turbogears.redirect('/group/show', uid=cn)
+
+
+ @expose()
+ @identity.require(identity.not_anonymous())
+ def update(self, **kw):
+ """Display delegate page"""
+ self.restrict_post()
+ client = self.get_ipaclient()
+
+ if kw.get('submit', '').startswith('Cancel'):
+ turbogears.flash("Edit policy cancelled")
+ raise turbogears.redirect('/ipapolicy/show')
+
+ tg_errors, kw = self.ipapolicyupdatevalidate(**kw)
+ if tg_errors:
+ turbogears.flash("There were validation errors.<br/>" +
+ "Please see the messages below for details.")
+ return dict(form=ipapolicy_edit_form, ipapolicy=kw,
+ tg_template='ipagui.templates.ipapolicyedit')
+
+ try:
+
+ # TODO: Actually save the data
+
+ turbogears.flash("IPA Policy updated")
+ raise turbogears.redirect('/ipapolicy/show')
+ except (SyntaxError, ipaerror.IPAError), e:
+ turbogears.flash("Policy update failed: " + str(e))
+ return dict(form=policy_form, policy=kw,
+ tg_template='ipagui.templates.policyindex')
+
+ @validate(form=ipapolicy_edit_form)
+ @identity.require(identity.not_anonymous())
+ def ipapolicyupdatevalidate(self, tg_errors=None, **kw):
+ return tg_errors, kw