From: hickert Date: Thu, 7 Sep 2006 06:39:19 +0000 (+0000) Subject: Initial application acl checkin X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=414d0a092cbfd071d4e2bb9bd8c16cd135ca1766;p=gosa.git Initial application acl checkin git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@4613 594d385d-05f5-0310-b6e9-bd551577e9d8 --- diff --git a/plugins/admin/applications/class_applicationManagement.inc b/plugins/admin/applications/class_applicationManagement.inc index 6c35f6526..6029010c1 100644 --- a/plugins/admin/applications/class_applicationManagement.inc +++ b/plugins/admin/applications/class_applicationManagement.inc @@ -31,7 +31,6 @@ class applicationManagement extends plugin var $CopyPasteHandler = NULL; var $DivListApplication = NULL; var $applications = array(); - var $acl = ""; var $enableReleaseManagement = false; function IsReleaseManagementActivated() @@ -171,9 +170,8 @@ class applicationManagement extends plugin $this->dn= "new"; /* Create new usertab object */ - $this->apptabs= new apptabs($this->config, - $this->config->data['TABS']['APPSTABS'], $this->dn); - $this->apptabs->set_acl(array(':all')); + $this->apptabs= new apptabs($this->config,$this->config->data['TABS']['APPSTABS'], $this->dn,"application"); + $this->apptabs->set_acl_base($this->dn); } @@ -250,13 +248,9 @@ class applicationManagement extends plugin above dialog */ add_lock ($this->dn, $this->ui->dn); - /* Set up the users ACL's for this 'dn' */ - $acl= get_permissions ($this->dn, $this->ui->subtreeACL); - /* Register apptabs to trigger edit dialog */ - $this->apptabs= new apptabs($this->config, - $this->config->data['TABS']['APPSTABS'], $this->dn); - $this->apptabs->set_acl($acl); + $this->apptabs= new apptabs($this->config,$this->config->data['TABS']['APPSTABS'], $this->dn,"application"); + $this->apptabs->set_acl_base($this->dn); $_SESSION['objectinfo']= $this->dn; } @@ -273,10 +267,10 @@ class applicationManagement extends plugin /* Load permissions for selected 'dn' and check if we're allowed to remove this 'dn' */ - $acl= get_permissions ($this->dn, $this->ui->subtreeACL); - $this->acl= get_module_permission($acl, "application", $this->dn); - if (chkacl($this->acl, "delete") == ""){ + $ui = get_userinfo(); + $acl = $ui->get_permissions($this->dn ,"application/application"); + if(preg_match("/d/",$acl)){ /* Check locking, save current plugin in 'back_plugin', so the dialog knows where to return. */ if (($user= get_lock($this->dn)) != ""){ @@ -306,12 +300,14 @@ class applicationManagement extends plugin /* Some nice guy may send this as POST, so we've to check for the permissions again. */ - if (chkacl($this->acl, "delete") == ""){ + $ui = get_userinfo(); + $acl = $ui->get_permissions($this->dn ,"application/application"); + + if(preg_match("/d/",$acl)){ /* Delete request is permitted, perform LDAP action */ - $this->apptabs= new apptabs($this->config, - $this->config->data['TABS']['APPSTABS'], $this->dn); - $this->apptabs->set_acl(array($this->acl)); + $this->apptabs= new apptabs($this->config, $this->config->data['TABS']['APPSTABS'], $this->dn,"application"); + $this->apptabs->set_acl_base($this->dn); $this->apptabs->delete (); gosa_log ("Application object'".$this->dn."' has been removed"); unset ($this->apptabs); diff --git a/plugins/admin/applications/class_divListApplication.inc b/plugins/admin/applications/class_divListApplication.inc index f1bf26342..204a9a7dd 100755 --- a/plugins/admin/applications/class_divListApplication.inc +++ b/plugins/admin/applications/class_divListApplication.inc @@ -94,6 +94,8 @@ class divListApplication extends MultiSelectWindow /* Create listhead, it will be shown on top of the divlist. * It provides general navigation and object creation */ + $ui = get_userinfo(); + $acl = $ui->get_permissions("cn=dummy,".$this->selectedBase,"application/application"); $listhead = "
". "  ". @@ -105,9 +107,13 @@ class divListApplication extends MultiSelectWindow "title='"._("Reload list")."' name='submit_department' alt='"._("Submit")."'> ". "  "; $listhead .= $this->get_snapshot_header($this->selectedBase); - $listhead .= "  ". - $Copy_Paste. + + if(preg_match("/c/",$acl)){ + $listhead .= "  "; + } + + $listhead.= $Copy_Paste. "  ". _("Base")." ". " $val){ + $acl = $ui->get_permissions($val['dn'],"application/application"); + /* Create action icons */ $actions= ""; + + + /* Add Copy & Paste icon */ if($this->parent->CopyPasteHandler){ - $actions.= " "; + + /* Only add cut icon, if we are allowed to move this user */ + if(preg_match("/m/",$acl)){ + $actions.= " "; + }else{ + $actions.= " "; + } + + /* Copy is allowed everytime */ $actions.= " "; } + + /* Add edit icon */ $actions.= ""; $actions.= $this->GetSnapShotActions($val['dn']); - $actions.= ""; + + /* If we are allowed to remove the application account, display remove icon */ + if(preg_match("/d/",$acl)){ + $actions.= ""; + }else{ + $actions.= " "; + } $title = "title='".preg_replace('/ /', ' ', @LDAP::fix($val['dn']))."'";