From 3db0f99977deae9be43c239f89bfa348b8b3bafe Mon Sep 17 00:00:00 2001 From: Kevin McCarthy Date: Tue, 16 Oct 2007 10:01:30 -0700 Subject: Adds deletion for delegations. The deletion is only triggered via javascript, so they must hit confirm. --- ipa-server/ipa-gui/ipagui/static/css/style.css | 4 +++ .../ipa-gui/ipagui/subcontrollers/delegation.py | 36 ++++++++++++++++++++++ .../ipa-gui/ipagui/templates/delegateform.kid | 28 +++++++++++++++++ 3 files changed, 68 insertions(+) diff --git a/ipa-server/ipa-gui/ipagui/static/css/style.css b/ipa-server/ipa-gui/ipagui/static/css/style.css index fb97a67a..ff92c5a8 100644 --- a/ipa-server/ipa-gui/ipagui/static/css/style.css +++ b/ipa-server/ipa-gui/ipagui/static/css/style.css @@ -206,6 +206,10 @@ body { background: #eee; } +.deletebutton { + background: #ee2222; +} + /* * Used for checkboxlist of aci attributes */ diff --git a/ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py b/ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py index 3f975234..c732e8f8 100644 --- a/ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py +++ b/ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py @@ -196,6 +196,42 @@ class DelegationController(IPAController): return dict(aci_list=aci_list, group_dn_to_cn=group_dn_to_cn, fields=ipagui.forms.delegate.DelegateFields()) + @expose() + @identity.require(identity.not_anonymous()) + 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:
" + + "The delegation you were attempting to delete has been " + + "concurrently modified.") + raise turbogears.redirect('/delegate/list') + + 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) + + turbogears.flash("delegate deleted") + raise turbogears.redirect('/delegate/list') + except (SyntaxError, ipaerror.IPAError), e: + turbogears.flash("Delegation deletion failed: " + str(e)) + raise turbogears.redirect('/delegate/list') + @expose("ipagui.templates.delegategroupsearch") @identity.require(identity.not_anonymous()) def group_search(self, **kw): diff --git a/ipa-server/ipa-gui/ipagui/templates/delegateform.kid b/ipa-server/ipa-gui/ipagui/templates/delegateform.kid index e414e444..26d13653 100644 --- a/ipa-server/ipa-gui/ipagui/templates/delegateform.kid +++ b/ipa-server/ipa-gui/ipagui/templates/delegateform.kid @@ -43,8 +43,20 @@ new Effect.Fade($(which_group + '_searcharea'), {duration: 0.25}); new Effect.Appear($(which_group + '_change_link'), {duration: 0.25}); } + + function confirmDelete() { + if (confirm("Are you sure you want to delete this delegation?")) { + $('deleteform').submit(); + } + return false; + } + +
@@ -59,6 +71,14 @@ value="Cancel ${actionname}"/>

+
+           + +

+
@@ -159,6 +179,14 @@ + +
+           + + -- cgit