X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fsystems%2Fclass_servRepository.inc;h=1fc0458ef9fd6f388c7c71077283ca5a5586f74a;hb=30827656c010419d41e5249cee16edf2d01969b9;hp=9a3114e80a317c724535f7b809264afb504bc60e;hpb=eb53040dbb682796d05050b43ca020787907bcbf;p=gosa.git diff --git a/plugins/admin/systems/class_servRepository.inc b/plugins/admin/systems/class_servRepository.inc index 9a3114e80..1fc0458ef 100644 --- a/plugins/admin/systems/class_servRepository.inc +++ b/plugins/admin/systems/class_servRepository.inc @@ -20,12 +20,26 @@ class servrepository extends plugin /* Repositories */ var $repositories = array(); - var $FAIrepository = array(); + var $FAIrepository = array(); - function servrepository ($config, $dn= NULL) + var $fai_activated = FALSE; + + function servrepository ($config, $dn= NULL, $parent= NULL) { - plugin::plugin ($config, $dn); + plugin::plugin ($config, $dn, $parent); + + /* Skip this if fai is deactivated */ + $tmp = search_config($this->config->data,"faiManagement","CLASS"); + if(!empty($tmp)){ + $this->fai_activated = TRUE; + }else{ + return; + } + $ui = get_userinfo(); + $tmp= get_permissions ($this->dn, $ui->subtreeACL); + $this->acl= get_module_permission($tmp, "FAIclass", $this->dn); + $this->repositories = array(); if(isset($this->attrs['FAIrepository'])){ for($i = 0; $i < $this->attrs['FAIrepository']['count']; $i++){ @@ -73,10 +87,21 @@ class servrepository extends plugin /* Call parent execute */ plugin::execute(); + if(!$this->fai_activated){ + $str = "

"._("You can't use this plugin until FAI is activated.")."

"; + return $str; + } + /* Fill templating stuff */ $smarty= get_smarty(); $display= ""; + $ui = get_userinfo(); + $tmp= get_permissions ($this->dn, $ui->subtreeACL); + $this->acl= get_module_permission($tmp, "FAIclass", $this->dn); + $allow_edit = !preg_match("/disabled/i",chkacl($this->acl,"FAIclass")); + + /* Smarty vars*/ $smarty->assign("infoimage", get_template_path('images/info.png')); $smarty->assign("search_image", get_template_path('images/search.png')); @@ -111,13 +136,13 @@ class servrepository extends plugin if(isset($_POST['servRepository'])){ foreach($_POST as $name => $value){ - if(preg_match("/AddRepository/",$name)){ + if(preg_match("/AddRepository/",$name) && !$once && $allow_edit){ $once = true; $this->dialog = new servRepositorySetup($this->config,$this->dn); $this->dialog->acl = $this->acl; } - if((preg_match("/^delete_/",$name))&&(!$once)){ + if((preg_match("/^delete_/",$name))&&(!$once) && $allow_edit){ $once = true; $value = preg_replace("/delete_/","",$name); $value = base64_decode(preg_replace("/_.*$/","",$value)); @@ -150,7 +175,7 @@ class servrepository extends plugin } } - if((preg_match("/^edit_/",$name))&&(!$once)){ + if((preg_match("/^edit_/",$name))&&(!$once) && $allow_edit){ $value = preg_replace("/edit_/","",$name); $value = base64_decode(preg_replace("/_.$/","",$value)); @@ -192,7 +217,7 @@ class servrepository extends plugin } } } - if((isset($_GET['act']))&&($_GET['act']=="open")&&(isset($_GET['id']))){ + if((isset($_GET['act']))&&($_GET['act']=="open")&&(isset($_GET['id'])) && $allow_edit){ $obj = $this->repositories[base64_decode($_GET['id'])]; $obj['initialy_was'] = $obj['Release']; $this->dialog = new servRepositorySetup($this->config,$this->dn,$obj); @@ -261,23 +286,32 @@ class servrepository extends plugin foreach($this->repositories as $name => $reps){ $str = " "; - if(preg_match("/".str_replace("*",".*",$this->regex)."/",$reps['Release'])){ - foreach($reps['Sections'] as $sec){ $str.=$sec." "; } - + + if($allow_edit){ + $link_str = sprintf($link,base64_encode($name),$name); + $sections = sprintf($link,base64_encode($name),_("Sections")." :".$str); + $options = preg_replace("/%s/",base64_encode($name),$edit.$delete); + }else{ + $link_str = $name; + $sections = _("Sections")." :".$str; + $options = ""; + } + + $divlist->AddEntry(array( - array("string"=>sprintf($link,base64_encode($name),$name),"attach"=>"style='width:80px;'"), - array("string"=>sprintf($link,base64_encode($name),_("Sections")." :".$str)), - array("string"=>preg_replace("/%s/",base64_encode($name),$edit.$delete),"attach"=>"style='border-right:0px;width:55px;text-align:right;'") - )); + array("string"=>$link_str,"attach"=>"style='width:80px;'"), + array("string"=>$sections), + array("string"=>$options,"attach"=>"style='border-right:0px;width:55px;text-align:right;'"))); } } $smarty -> assign("Repositories",$divlist->DrawList()); + $smarty -> assign("FAIclassACL",chkacl($this->acl,"FAIclass")); $display.= $smarty->fetch(get_template_path('servRepository.tpl', TRUE)); return($display); @@ -285,6 +319,16 @@ class servrepository extends plugin function remove_from_parent() { + + if(!$this->fai_activated) return; + + /* Skip if not allowed */ + $ui = get_userinfo(); + $tmp= get_permissions ($this->dn, $ui->subtreeACL); + $this->acl= get_module_permission($tmp, "FAIclass", $this->dn); + + if(preg_match("/disabled/",chkacl($this->acl,"FAIclass"))) return; + plugin::remove_from_parent(); $ldap= $this->config->get_ldap_link(); $ldap->cd ($this->config->current['BASE']); @@ -324,6 +368,14 @@ class servrepository extends plugin /* Save to LDAP */ function save() { + if(!$this->fai_activated) return; + + /* Skip if not allowed */ + $ui = get_userinfo(); + $tmp= get_permissions ($this->dn, $ui->subtreeACL); + $this->acl= get_module_permission($tmp, "FAIclass", $this->dn); + + if(preg_match("/disabled/",chkacl($this->acl,"FAIclass"))) return; plugin::save(); $arr = array();