From 3d2f057ca57d65d2a21753d0bb241af70ed7a521 Mon Sep 17 00:00:00 2001
From: hickert
Date: Fri, 20 Apr 2007 12:02:35 +0000
Subject: [PATCH] ACL changes: Management -> Added functionality to remove acl
roles. This is currently not working, roles can't be deleted right now.
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@6154 594d385d-05f5-0310-b6e9-bd551577e9d8
---
plugins/admin/acl/class_aclManagement.inc | 68 ++++++++++++++++++++++-
plugins/admin/acl/class_aclRole.inc | 1 +
plugins/admin/acl/remove.tpl | 6 ++
3 files changed, 74 insertions(+), 1 deletion(-)
diff --git a/plugins/admin/acl/class_aclManagement.inc b/plugins/admin/acl/class_aclManagement.inc
index 429cdeab4..7eb673fa2 100644
--- a/plugins/admin/acl/class_aclManagement.inc
+++ b/plugins/admin/acl/class_aclManagement.inc
@@ -56,7 +56,7 @@ class aclManagement extends plugin
/* Call parent execute */
plugin::execute();
- $_SESSION['LOCK_VARS_TO_USE'] = array("/^list/","/^id_/");
+ $_SESSION['LOCK_VARS_TO_USE'] = array("/^list/","/^id_/","/^list_acl_role_del/");
$smarty = get_smarty(); // Smarty instance
$s_action = ""; // Contains the action to be taken
@@ -199,6 +199,71 @@ class aclManagement extends plugin
}
+ /********************
+ Delete entry requested, display confirm dialog
+ ********************/
+
+ /* Remove acl was requested */
+ if ($s_action=="del_role"){
+
+ /* Get 'dn' from posted acl */
+ $this->dn= $this->list[trim($s_entry)]['dn'];
+
+ /* Check permissions */
+ if(preg_match("/d/",$this->ui->get_permissions($this->dn,"aclroles/aclrole"))){
+
+ /* Check locking, save current plugin in 'back_plugin', so
+ the dialog knows where to return. */
+ if (($acl= get_lock($this->dn)) != ""){
+ return(gen_locked_message ($acl, $this->dn));
+ }
+
+ /* Lock the current entry, so nobody will edit it during deletion */
+ add_lock ($this->dn, $this->ui->dn);
+ $smarty->assign("info", sprintf(_("You're about to delete the acl %s."), @LDAP::fix($this->dn)));
+ $smarty->assign("is_role",true);
+
+ return($smarty->fetch(get_template_path('remove.tpl', TRUE)));
+ } else {
+
+ /* Obviously the acl isn't allowed to delete. Show message and
+ clean session. */
+ print_red (_("You are not allowed to delete this acl!"));
+ }
+ }
+
+
+ /********************
+ Delete entry confirmed
+ ********************/
+
+ /* Confirmation for deletion has been passed. Acl should be deleted. */
+ if (isset($_POST['delete_acl_role_confirmed'])){
+
+ /* Check permissions */
+ if(preg_match("/d/",$this->ui->get_permissions($this->dn,"aclroles/aclrole"))){
+
+ /* Delete request is permitted, perform LDAP action */
+ $this->acltabs= new aclroletab($this->config, NULL,$this->dn);
+ $this->acltabs->delete();
+ gosa_log ("ACL role object '".$this->dn."' has been removed");
+ unset ($this->acltabs);
+ $this->acltabs= NULL;
+ } else {
+
+ /* Normally this shouldn't be reached, send some extra
+ logs to notify the administrator */
+ print_red (_("You are not allowed to delete this acl role!"));
+
+ if(isset($this->ui->uid)){
+ gosa_log ("Warning: '".$this->ui->uid."' tried to trick acl role deletion.");
+ }
+ }
+
+ /* Remove lock file after successfull deletion */
+ del_lock ($this->dn);
+ }
+
/********************
Delete entry requested, display confirm dialog
********************/
@@ -221,6 +286,7 @@ class aclManagement extends plugin
/* Lock the current entry, so nobody will edit it during deletion */
add_lock ($this->dn, $this->ui->dn);
$smarty->assign("info", sprintf(_("You're about to delete the acl %s."), @LDAP::fix($this->dn)));
+ $smarty->assign("is_role",false);
return($smarty->fetch(get_template_path('remove.tpl', TRUE)));
} else {
diff --git a/plugins/admin/acl/class_aclRole.inc b/plugins/admin/acl/class_aclRole.inc
index 0b318d062..76878da0c 100644
--- a/plugins/admin/acl/class_aclRole.inc
+++ b/plugins/admin/acl/class_aclRole.inc
@@ -905,6 +905,7 @@ class aclrole extends plugin
function remove_from_parent()
{
+ echo "Role should be deleted here- What happens with assigned roles ... ";
}
function save_object()
diff --git a/plugins/admin/acl/remove.tpl b/plugins/admin/acl/remove.tpl
index 047b2adc9..0b5323df4 100755
--- a/plugins/admin/acl/remove.tpl
+++ b/plugins/admin/acl/remove.tpl
@@ -11,7 +11,13 @@
+{if $is_role}
+
+
+
+{else}
+{/if}
--
2.30.2