summaryrefslogtreecommitdiffstats
path: root/ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2009-01-29 16:29:11 -0500
committerRob Crittenden <rcritten@redhat.com>2009-02-03 15:28:31 -0500
commite0d428f97aad1f9e9c3faedeaddbcade22927d37 (patch)
tree3a21754e5f4c8283530e2619c32ace2ded324564 /ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py
parente30cd6ba42c256d2016db45146d616f329455e86 (diff)
downloadfreeipa.git-e0d428f97aad1f9e9c3faedeaddbcade22927d37.tar.gz
freeipa.git-e0d428f97aad1f9e9c3faedeaddbcade22927d37.tar.xz
freeipa.git-e0d428f97aad1f9e9c3faedeaddbcade22927d37.zip
Mass file removal for IPAv2.
deleted: ipa-admintools/Makefile deleted: ipa-admintools/README deleted: ipa-admintools/ipa-adddelegation deleted: ipa-admintools/ipa-addgroup deleted: ipa-admintools/ipa-addservice deleted: ipa-admintools/ipa-adduser deleted: ipa-admintools/ipa-admintools.spec.in deleted: ipa-admintools/ipa-change-master-key deleted: ipa-admintools/ipa-defaultoptions deleted: ipa-admintools/ipa-deldelegation deleted: ipa-admintools/ipa-delgroup deleted: ipa-admintools/ipa-delservice deleted: ipa-admintools/ipa-deluser deleted: ipa-admintools/ipa-findgroup deleted: ipa-admintools/ipa-findservice deleted: ipa-admintools/ipa-finduser deleted: ipa-admintools/ipa-listdelegation deleted: ipa-admintools/ipa-lockuser deleted: ipa-admintools/ipa-moddelegation deleted: ipa-admintools/ipa-modgroup deleted: ipa-admintools/ipa-moduser deleted: ipa-admintools/ipa-passwd deleted: ipa-admintools/ipa-pwpolicy deleted: ipa-admintools/man/Makefile deleted: ipa-admintools/man/ipa-adddelegation.1 deleted: ipa-admintools/man/ipa-addgroup.1 deleted: ipa-admintools/man/ipa-addservice.1 deleted: ipa-admintools/man/ipa-adduser.1 deleted: ipa-admintools/man/ipa-defaultoptions.1 deleted: ipa-admintools/man/ipa-deldelegation.1 deleted: ipa-admintools/man/ipa-delgroup.1 deleted: ipa-admintools/man/ipa-delservice.1 deleted: ipa-admintools/man/ipa-deluser.1 deleted: ipa-admintools/man/ipa-findgroup.1 deleted: ipa-admintools/man/ipa-findservice.1 deleted: ipa-admintools/man/ipa-finduser.1 deleted: ipa-admintools/man/ipa-listdelegation.1 deleted: ipa-admintools/man/ipa-lockuser.1 deleted: ipa-admintools/man/ipa-moddelegation.1 deleted: ipa-admintools/man/ipa-modgroup.1 deleted: ipa-admintools/man/ipa-moduser.1 deleted: ipa-admintools/man/ipa-passwd.1 deleted: ipa-admintools/man/ipa-pwpolicy.1 deleted: ipa-server/AUTHORS deleted: ipa-server/Makefile.am deleted: ipa-server/NEWS deleted: ipa-server/README deleted: ipa-server/configure.ac deleted: ipa-server/ipa-gui/Makefile.am deleted: ipa-server/ipa-gui/README.i18n deleted: ipa-server/ipa-gui/README.multivalue deleted: ipa-server/ipa-gui/README.txt deleted: ipa-server/ipa-gui/dev.cfg deleted: ipa-server/ipa-gui/i18n.patch deleted: ipa-server/ipa-gui/ipa_gui.egg-info/Makefile.am deleted: ipa-server/ipa-gui/ipa_gui.egg-info/PKG-INFO deleted: ipa-server/ipa-gui/ipa_gui.egg-info/SOURCES.txt deleted: ipa-server/ipa-gui/ipa_gui.egg-info/dependency_links.txt deleted: ipa-server/ipa-gui/ipa_gui.egg-info/entry_points.txt deleted: ipa-server/ipa-gui/ipa_gui.egg-info/not-zip-safe deleted: ipa-server/ipa-gui/ipa_gui.egg-info/paster_plugins.txt deleted: ipa-server/ipa-gui/ipa_gui.egg-info/requires.txt deleted: ipa-server/ipa-gui/ipa_gui.egg-info/sqlobject.txt deleted: ipa-server/ipa-gui/ipa_gui.egg-info/top_level.txt deleted: ipa-server/ipa-gui/ipa_webgui deleted: ipa-server/ipa-gui/ipa_webgui.cfg deleted: ipa-server/ipa-gui/ipa_webgui.init deleted: ipa-server/ipa-gui/ipagui/Makefile.am deleted: ipa-server/ipa-gui/ipagui/__init__.py deleted: ipa-server/ipa-gui/ipagui/config/Makefile.am deleted: ipa-server/ipa-gui/ipagui/config/__init__.py deleted: ipa-server/ipa-gui/ipagui/config/app.cfg deleted: ipa-server/ipa-gui/ipagui/config/log.cfg deleted: ipa-server/ipa-gui/ipagui/controllers.py deleted: ipa-server/ipa-gui/ipagui/forms/Makefile.am deleted: ipa-server/ipa-gui/ipagui/forms/__init__.py deleted: ipa-server/ipa-gui/ipagui/forms/delegate.py deleted: ipa-server/ipa-gui/ipagui/forms/group.py deleted: ipa-server/ipa-gui/ipagui/forms/ipapolicy.py deleted: ipa-server/ipa-gui/ipagui/forms/principal.py deleted: ipa-server/ipa-gui/ipagui/forms/user.py deleted: ipa-server/ipa-gui/ipagui/helpers/Makefile.am deleted: ipa-server/ipa-gui/ipagui/helpers/__init__.py deleted: ipa-server/ipa-gui/ipagui/helpers/ipahelper.py deleted: ipa-server/ipa-gui/ipagui/helpers/userhelper.py deleted: ipa-server/ipa-gui/ipagui/helpers/validators.py deleted: ipa-server/ipa-gui/ipagui/json.py deleted: ipa-server/ipa-gui/ipagui/model.py deleted: ipa-server/ipa-gui/ipagui/proxyprovider.py deleted: ipa-server/ipa-gui/ipagui/proxyvisit.py deleted: ipa-server/ipa-gui/ipagui/release.py deleted: ipa-server/ipa-gui/ipagui/static/Makefile.am deleted: ipa-server/ipa-gui/ipagui/static/css/Makefile.am deleted: ipa-server/ipa-gui/ipagui/static/css/style_freeipa.css deleted: ipa-server/ipa-gui/ipagui/static/css/style_platform-objects.css deleted: ipa-server/ipa-gui/ipagui/static/css/style_platform.css deleted: ipa-server/ipa-gui/ipagui/static/images/Makefile.am deleted: ipa-server/ipa-gui/ipagui/static/images/branding/Makefile.am deleted: ipa-server/ipa-gui/ipagui/static/images/branding/logo.png deleted: ipa-server/ipa-gui/ipagui/static/images/down.gif deleted: ipa-server/ipa-gui/ipagui/static/images/favicon.ico deleted: ipa-server/ipa-gui/ipagui/static/images/header_inner.png deleted: ipa-server/ipa-gui/ipagui/static/images/info.png deleted: ipa-server/ipa-gui/ipagui/static/images/logo.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/Makefile.am deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-accesscontrol.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-channel.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-channels.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-content.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-media.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-overview.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-policy.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-system.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-user.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-usergroup.png deleted: ipa-server/ipa-gui/ipagui/static/images/objects/object-virtualsystem.png deleted: ipa-server/ipa-gui/ipagui/static/images/ok.png deleted: ipa-server/ipa-gui/ipagui/static/images/template/Makefile.am deleted: ipa-server/ipa-gui/ipagui/static/images/template/background-content.png deleted: ipa-server/ipa-gui/ipagui/static/images/template/background-navbar-active.png deleted: ipa-server/ipa-gui/ipagui/static/images/template/background-navbar-active_fullsize.png deleted: ipa-server/ipa-gui/ipagui/static/images/template/background-navbar.png deleted: ipa-server/ipa-gui/ipagui/static/images/template/background-navbar_fullsize.png deleted: ipa-server/ipa-gui/ipagui/static/images/template/background-sidebar.png deleted: ipa-server/ipa-gui/ipagui/static/images/template/background.png deleted: ipa-server/ipa-gui/ipagui/static/images/tg_under_the_hood.png deleted: ipa-server/ipa-gui/ipagui/static/images/under_the_hood_blue.png deleted: ipa-server/ipa-gui/ipagui/static/images/up.gif deleted: ipa-server/ipa-gui/ipagui/static/javascript/Makefile.am deleted: ipa-server/ipa-gui/ipagui/static/javascript/dynamicedit.js deleted: ipa-server/ipa-gui/ipagui/static/javascript/dynamicselect.js deleted: ipa-server/ipa-gui/ipagui/static/javascript/effects.js deleted: ipa-server/ipa-gui/ipagui/static/javascript/ipautil.js deleted: ipa-server/ipa-gui/ipagui/static/javascript/prototype.js deleted: ipa-server/ipa-gui/ipagui/static/javascript/scriptaculous.js deleted: ipa-server/ipa-gui/ipagui/static/javascript/tablekit.js deleted: ipa-server/ipa-gui/ipagui/subcontrollers/Makefile.am deleted: ipa-server/ipa-gui/ipagui/subcontrollers/__init__.py deleted: ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py deleted: ipa-server/ipa-gui/ipagui/subcontrollers/group.py deleted: ipa-server/ipa-gui/ipagui/subcontrollers/ipacontroller.py deleted: ipa-server/ipa-gui/ipagui/subcontrollers/ipapolicy.py deleted: ipa-server/ipa-gui/ipagui/subcontrollers/policy.py deleted: ipa-server/ipa-gui/ipagui/subcontrollers/principal.py deleted: ipa-server/ipa-gui/ipagui/subcontrollers/user.py deleted: ipa-server/ipa-gui/ipagui/templates/Makefile.am deleted: ipa-server/ipa-gui/ipagui/templates/__init__.py deleted: ipa-server/ipa-gui/ipagui/templates/delegateedit.kid deleted: ipa-server/ipa-gui/ipagui/templates/delegateform.kid deleted: ipa-server/ipa-gui/ipagui/templates/delegategroupsearch.kid deleted: ipa-server/ipa-gui/ipagui/templates/delegatelayout.kid deleted: ipa-server/ipa-gui/ipagui/templates/delegatelist.kid deleted: ipa-server/ipa-gui/ipagui/templates/delegatenew.kid deleted: ipa-server/ipa-gui/ipagui/templates/dynamiceditsearch.kid deleted: ipa-server/ipa-gui/ipagui/templates/groupedit.kid deleted: ipa-server/ipa-gui/ipagui/templates/groupeditform.kid deleted: ipa-server/ipa-gui/ipagui/templates/grouplayout.kid deleted: ipa-server/ipa-gui/ipagui/templates/grouplist.kid deleted: ipa-server/ipa-gui/ipagui/templates/groupnew.kid deleted: ipa-server/ipa-gui/ipagui/templates/groupnewform.kid deleted: ipa-server/ipa-gui/ipagui/templates/groupshow.kid deleted: ipa-server/ipa-gui/ipagui/templates/ipapolicyedit.kid deleted: ipa-server/ipa-gui/ipagui/templates/ipapolicyeditform.kid deleted: ipa-server/ipa-gui/ipagui/templates/ipapolicyshow.kid deleted: ipa-server/ipa-gui/ipagui/templates/loginfailed.kid deleted: ipa-server/ipa-gui/ipagui/templates/master.kid deleted: ipa-server/ipa-gui/ipagui/templates/not_found.kid deleted: ipa-server/ipa-gui/ipagui/templates/policyindex.kid deleted: ipa-server/ipa-gui/ipagui/templates/policylayout.kid deleted: ipa-server/ipa-gui/ipagui/templates/principallayout.kid deleted: ipa-server/ipa-gui/ipagui/templates/principallist.kid deleted: ipa-server/ipa-gui/ipagui/templates/principalnew.kid deleted: ipa-server/ipa-gui/ipagui/templates/principalnewform.kid deleted: ipa-server/ipa-gui/ipagui/templates/principalshow.kid deleted: ipa-server/ipa-gui/ipagui/templates/unhandled_exception.kid deleted: ipa-server/ipa-gui/ipagui/templates/useredit.kid deleted: ipa-server/ipa-gui/ipagui/templates/usereditform.kid deleted: ipa-server/ipa-gui/ipagui/templates/userlayout.kid deleted: ipa-server/ipa-gui/ipagui/templates/userlist.kid deleted: ipa-server/ipa-gui/ipagui/templates/usernew.kid deleted: ipa-server/ipa-gui/ipagui/templates/usernewform.kid deleted: ipa-server/ipa-gui/ipagui/templates/userselectsearch.kid deleted: ipa-server/ipa-gui/ipagui/templates/usershow.kid deleted: ipa-server/ipa-gui/ipagui/templates/welcome.kid deleted: ipa-server/ipa-gui/ipagui/tests/Makefile.am deleted: ipa-server/ipa-gui/ipagui/tests/__init__.py deleted: ipa-server/ipa-gui/ipagui/tests/test_controllers.py deleted: ipa-server/ipa-gui/ipagui/tests/test_model.py deleted: ipa-server/ipa-gui/locales/ja/LC_MESSAGES/messages.po deleted: ipa-server/ipa-gui/locales/messages.pot deleted: ipa-server/ipa-gui/sample-prod.cfg deleted: ipa-server/ipa-gui/setup.py deleted: ipa-server/ipa-gui/start-ipagui.py deleted: ipa-server/ipa-gui/test.cfg deleted: ipa-server/ipa-server.spec.in deleted: ipa-server/xmlrpc-server/Makefile.am deleted: ipa-server/xmlrpc-server/README deleted: ipa-server/xmlrpc-server/attrs.py deleted: ipa-server/xmlrpc-server/funcs.py deleted: ipa-server/xmlrpc-server/ipaxmlrpc.py deleted: ipa-server/xmlrpc-server/test/Makefile.am deleted: ipa-server/xmlrpc-server/test/README deleted: ipa-server/xmlrpc-server/test/test.py deleted: ipa-server/xmlrpc-server/test/test_methods.py deleted: ipa-server/xmlrpc-server/test/test_mod_python.py
Diffstat (limited to 'ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py')
-rw-r--r--ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py415
1 files changed, 0 insertions, 415 deletions
diff --git a/ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py b/ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py
deleted file mode 100644
index 3f80da52..00000000
--- a/ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py
+++ /dev/null
@@ -1,415 +0,0 @@
-# Copyright (C) 2007 Red Hat
-# see file 'COPYING' for use and warranty information
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; version 2 only
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-
-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.delegate
-import ipa.aci
-
-import ldap.dn
-import operator
-
-log = logging.getLogger(__name__)
-
-aci_fields = ['*', 'aci']
-
-delegate_form = ipagui.forms.delegate.DelegateForm()
-
-class DelegationController(IPAController):
-
- @expose()
- @identity.require(identity.not_anonymous())
- def index(self, tg_errors=None):
- raise turbogears.redirect("/delegate/list")
-
- @expose("ipagui.templates.delegatenew")
- @identity.require(identity.in_group("admins"))
- def new(self):
- """Display delegate page"""
- client = self.get_ipaclient()
- delegate = {}
- delegate['source_group_cn'] = "Please choose:"
- delegate['dest_group_cn'] = "Please choose:"
-
- return dict(form=delegate_form, delegate=delegate)
-
- @expose()
- @identity.require(identity.in_group("admins"))
- def create(self, **kw):
- """Creates a new delegation"""
- self.restrict_post()
- client = self.get_ipaclient()
-
- if kw.get('submit', '').startswith('Cancel'):
- turbogears.flash("Add delegation cancelled")
- raise turbogears.redirect('/delegate/list')
-
- # Try to handle the case where the user entered just some data
- # into the source/dest group name but didn't do a Find. We'll do
- # our best to see if a group by that name exists and if so, use it.
- dest_group_dn = kw.get('dest_group_dn')
- dest_group_cn = kw.get('dest_group_cn')
- if not dest_group_dn and dest_group_cn:
- try:
- group = client.get_entry_by_cn(dest_group_cn, ['dn'])
- kw['dest_group_dn'] = group.dn
- except:
- kw['dest_group_cn'] = "Please choose:"
- source_group_dn = kw.get('source_group_dn')
- source_group_cn = kw.get('source_group_cn')
- if not source_group_dn and source_group_cn:
- try:
- group = client.get_entry_by_cn(source_group_cn, ['dn'])
- kw['source_group_dn'] = group.dn
- except:
- kw['source_group_cn'] = "Please choose:"
- tg_errors, kw = self.delegatevalidate(**kw)
- if tg_errors:
- turbogears.flash("There were validation errors.<br/>" +
- "Please see the messages below for details.")
- return dict(form=delegate_form, delegate=kw,
- tg_template='ipagui.templates.delegatenew')
-
- try:
- aci_entry = client.get_aci_entry(aci_fields)
-
- new_aci = ipa.aci.ACI()
- new_aci.name = kw.get('name')
- new_aci.source_group = kw.get('source_group_dn')
- new_aci.dest_group = kw.get('dest_group_dn')
- new_aci.attrs = kw.get('attrs')
- if isinstance(new_aci.attrs, basestring):
- new_aci.attrs = [new_aci.attrs]
-
- # Look for an existing ACI of the same name
- aci_str_list = aci_entry.getValues('aci')
- if aci_str_list is None:
- aci_str_list = []
- if not(isinstance(aci_str_list,list) or isinstance(aci_str_list,tuple)):
- aci_str_list = [aci_str_list]
-
- for aci_str in aci_str_list:
- try:
- old_aci = ipa.aci.ACI(aci_str)
- if old_aci.name == new_aci.name:
- turbogears.flash("Delgate add failed: a delegation of that name already exists")
- return dict(form=delegate_form, delegate=kw,
- tg_template='ipagui.templates.delegatenew')
- except SyntaxError:
- # ignore aci_str's that ACI can't parse
- pass
-
-
- # not pulling down existing aci attributes
- aci_entry = client.get_aci_entry(['dn'])
- aci_entry.setValue('aci', new_aci.export_to_string())
-
- client.update_entry(aci_entry)
-
- # Now add to the editors group so they can make changes in the UI
- try:
- group = client.get_entry_by_cn("editors")
- client.add_group_to_group(new_aci.source_group, group.dn)
- except ipa.ipaerror.exception_for(ipa.ipaerror.LDAP_EMPTY_MODLIST):
- # This is ok, ignore it
- pass
-
- except ipaerror.IPAError, e:
- turbogears.flash("Delgate add failed: " + str(e) + "<br/>" + e.detail[0].get('desc','') + ". " + e.detail[0].get('info',''))
- return dict(form=delegate_form, delegate=kw,
- tg_template='ipagui.templates.delegatenew')
-
- turbogears.flash("delegate created")
- raise turbogears.redirect('/delegate/list')
-
- @expose("ipagui.templates.delegateedit")
- @identity.require(identity.in_group("admins"))
- def edit(self, acistr, tg_errors=None):
- """Display delegate page"""
- if tg_errors:
- turbogears.flash("There were validation errors.<br/>" +
- "Please see the messages below for details.")
-
- client = self.get_ipaclient()
-
- try:
- aci_entry = client.get_aci_entry(aci_fields)
- aci = ipa.aci.ACI(acistr)
- group_dn_to_cn = ipa.aci.extract_group_cns([aci], client)
-
- delegate = aci.to_dict()
- delegate['source_group_dn'] = delegate['source_group']
- delegate['source_group_cn'] = group_dn_to_cn[delegate['source_group_dn']]
- delegate['dest_group_dn'] = delegate['dest_group']
- delegate['dest_group_cn'] = group_dn_to_cn[delegate['dest_group_dn']]
-
- return dict(form=delegate_form, delegate=delegate)
- except (SyntaxError, ipaerror.IPAError), e:
- turbogears.flash("Delegation edit failed: " + str(e) + "<br/>" + e.detail[0].get('desc','') + ". " + e.detail[0].get('info',''))
- raise turbogears.redirect('/delegate/list')
-
-
- @expose()
- @identity.require(identity.in_group("admins"))
- def update(self, **kw):
- """Display delegate page"""
- self.restrict_post()
- client = self.get_ipaclient()
-
- if kw.get('submit', '').startswith('Cancel'):
- turbogears.flash("Edit delegation cancelled")
- raise turbogears.redirect('/delegate/list')
-
- # Try to handle the case where the user entered just some data
- # into the source/dest group name but didn't do a Find. We'll do
- # our best to see if a group by that name exists and if so, use it.
- dest_group_cn = kw.get('dest_group_cn')
- if dest_group_cn:
- try:
- group = client.get_entry_by_cn(dest_group_cn, ['dn'])
- kw['dest_group_dn'] = group.dn
- except:
- # This _notfound value is used in delegatevalidate()
- kw['dest_group_cn_notfound'] = True
- source_group_cn = kw.get('source_group_cn')
- if source_group_cn:
- try:
- group = client.get_entry_by_cn(source_group_cn, ['dn'])
- kw['source_group_dn'] = group.dn
- except:
- # This _notfound value is used in delegatevalidate()
- kw['source_group_cn_notfound'] = True
-
- tg_errors, kw = self.delegatevalidate(**kw)
- if tg_errors:
- turbogears.flash("There were validation errors.<br/>" +
- "Please see the messages below for details.")
- return dict(form=delegate_form, delegate=kw,
- tg_template='ipagui.templates.delegateedit')
-
- try:
- aci_entry = client.get_aci_entry(aci_fields)
-
- aci_str_list = aci_entry.getValues('aci')
- if aci_str_list is None:
- aci_str_list = []
- if not(isinstance(aci_str_list,list) or isinstance(aci_str_list,tuple)):
- aci_str_list = [aci_str_list]
-
- try :
- old_aci_index = aci_str_list.index(kw['orig_acistr'])
- except ValueError:
- turbogears.flash("Delegation update failed:<br />" +
- "The delegation you were attempting to update has been " +
- "concurrently modified. Please cancel the edit " +
- "and try editing the delegation again.")
- return dict(form=delegate_form, delegate=kw,
- tg_template='ipagui.templates.delegateedit')
-
- new_aci = ipa.aci.ACI()
- new_aci.name = kw.get('name')
- new_aci.source_group = kw.get('source_group_dn')
- new_aci.dest_group = kw.get('dest_group_dn')
- new_aci.attrs = kw.get('attrs')
- if isinstance(new_aci.attrs, basestring):
- new_aci.attrs = [new_aci.attrs]
- new_aci_str = new_aci.export_to_string()
-
- new_aci_str_list = copy.copy(aci_str_list)
- old_aci = ipa.aci.ACI(new_aci_str_list[old_aci_index])
- new_aci_str_list[old_aci_index] = new_aci_str
- aci_entry.setValue('aci', new_aci_str_list)
-
- client.update_entry(aci_entry)
-
- if new_aci.source_group != old_aci.source_group:
- aci_list = []
- last = True
- for aci_str in new_aci_str_list:
- try:
- aci = ipa.aci.ACI(aci_str)
- if aci.source_group == old_aci.source_group:
- last = False
- break
- except SyntaxError:
- # ignore aci_str's that ACI can't parse
- pass
- if last:
- group = client.get_entry_by_cn("editors")
- client.remove_member_from_group(old_aci.source_group, group.dn)
-
- # Now add to the editors group so they can make changes in the UI
- try:
- group = client.get_entry_by_cn("editors")
- client.add_group_to_group(new_aci.source_group, group.dn)
- except ipa.ipaerror.exception_for(ipa.ipaerror.LDAP_EMPTY_MODLIST):
- # This is ok, ignore it
- pass
-
-
- turbogears.flash("delegate updated")
- raise turbogears.redirect('/delegate/list')
- except (SyntaxError, ipaerror.IPAError), e:
- turbogears.flash("Delegation update failed: " + str(e) + "<br/>" + e.detail[0].get('desc','') + ". " + e.detail[0].get('info',''))
- return dict(form=delegate_form, delegate=kw,
- tg_template='ipagui.templates.delegateedit')
-
- @expose("ipagui.templates.delegatelist")
- @identity.require(identity.not_anonymous())
- def list(self):
- """Display delegate page"""
- client = self.get_ipaclient()
-
- try:
- aci_entry = client.get_aci_entry(aci_fields)
- except ipaerror.IPAError, e:
- turbogears.flash("Delegation list failed: " + str(e) + "<br/>" + e.detail[0].get('desc','') + ". " + e.detail[0].get('info',''))
- raise turbogears.redirect('/')
-
- aci_str_list = aci_entry.getValues('aci')
- if aci_str_list is None:
- aci_str_list = []
- if not(isinstance(aci_str_list,list) or isinstance(aci_str_list,tuple)):
- aci_str_list = [aci_str_list]
-
- aci_list = []
- for aci_str in aci_str_list:
- try:
- aci = ipa.aci.ACI(aci_str)
- aci_list.append(aci)
- except SyntaxError:
- # ignore aci_str's that ACI can't parse
- pass
- group_dn_to_cn = ipa.aci.extract_group_cns(aci_list, client)
-
- aci_list = sorted(aci_list, key=operator.itemgetter(0))
- # The list page needs to display field labels, not raw
- # LDAP attributes
- for aci in aci_list:
- aci.attrs = map(lambda name:
- ipagui.forms.delegate.aci_name_to_label.get(name, name),
- aci.attrs)
-
- return dict(aci_list=aci_list, group_dn_to_cn=group_dn_to_cn,
- fields=ipagui.forms.delegate.DelegateFields())
-
- @expose()
- @identity.require(identity.in_group("admins"))
- def delete(self, acistr):
- """Display delegate page"""
- self.restrict_post()
- client = self.get_ipaclient()
-
- try:
- aci_entry = client.get_aci_entry(aci_fields)
-
- aci_str_list = aci_entry.getValues('aci')
- if aci_str_list is None:
- aci_str_list = []
- if not(isinstance(aci_str_list,list) or isinstance(aci_str_list,tuple)):
- aci_str_list = [aci_str_list]
-
- try :
- old_aci_index = aci_str_list.index(acistr)
- except ValueError:
- turbogears.flash("Delegation deletion failed:<br />" +
- "The delegation you were attempting to delete has been " +
- "concurrently modified.")
- raise turbogears.redirect('/delegate/list')
-
- old_aci = ipa.aci.ACI(aci_str_list[old_aci_index])
- new_aci_str_list = copy.copy(aci_str_list)
- del new_aci_str_list[old_aci_index]
- aci_entry.setValue('aci', new_aci_str_list)
-
- client.update_entry(aci_entry)
-
- aci_list = []
- last = True
- for aci_str in new_aci_str_list:
- try:
- aci = ipa.aci.ACI(aci_str)
- if aci.source_group == old_aci.source_group:
- last = False
- break
- except SyntaxError:
- # ignore aci_str's that ACI can't parse
- pass
- if last:
- group = client.get_entry_by_cn("editors")
- client.remove_member_from_group(old_aci.source_group, group.dn)
-
- turbogears.flash("delegate deleted")
- raise turbogears.redirect('/delegate/list')
- except (SyntaxError, ipaerror.IPAError), e:
- turbogears.flash("Delegation deletion failed: " + str(e) + "<br/>" + e.detail[0].get('desc','') + ". " + e.detail[0].get('info',''))
- raise turbogears.redirect('/delegate/list')
-
- @expose("ipagui.templates.delegategroupsearch")
- @identity.require(identity.not_anonymous())
- def group_search(self, **kw):
- """Searches for groups and displays list of results in a table.
- This method is used for the ajax search on the delegation pages."""
- client = self.get_ipaclient()
-
- groups = []
- groups_counter = 0
- searchlimit = 100
- criteria = kw.get('criteria')
- if criteria != None and len(criteria) > 0:
- try:
- groups = client.find_groups(criteria.encode('utf-8'), None,
- searchlimit)
- groups_counter = groups[0]
- groups = groups[1:]
- except ipaerror.IPAError, e:
- turbogears.flash("search failed: " + str(e))
-
- return dict(groups=groups, criteria=criteria,
- which_group=kw.get('which_group'),
- counter=groups_counter)
-
- @validate(form=delegate_form)
- @identity.require(identity.not_anonymous())
- def delegatevalidate(self, tg_errors=None, **kw):
- # We are faking this because otherwise it shows up as one huge
- # block of color in the UI when it has a not empty validator.
- if not tg_errors:
- tg_errors = {}
- if not kw.get('attrs'):
- tg_errors['attrs'] = _("Please select at least one value")
- if kw.get('dest_group_cn_notfound'):
- tg_errors['dest_group_dn'] = _("Group not found")
- if kw.get('source_group_cn_notfound'):
- tg_errors['source_group_dn'] = _("Group not found")
- cherrypy.request.validation_errors = tg_errors
- return tg_errors, kw