diff options
author | Rob Crittenden <rcritten@redhat.com> | 2009-01-29 16:29:11 -0500 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2009-02-03 15:28:31 -0500 |
commit | e0d428f97aad1f9e9c3faedeaddbcade22927d37 (patch) | |
tree | 3a21754e5f4c8283530e2619c32ace2ded324564 /ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py | |
parent | e30cd6ba42c256d2016db45146d616f329455e86 (diff) | |
download | freeipa.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.py | 415 |
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 |