From 9d74c17b534c31f4406d9c98262e8d161786aea7 Mon Sep 17 00:00:00 2001 From: hickert Date: Fri, 9 Jun 2006 09:58:06 +0000 Subject: [PATCH] Fixed repository errors git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@3749 594d385d-05f5-0310-b6e9-bd551577e9d8 --- .../admin/systems/class_servRepository.inc | 121 +++++++++--------- plugins/admin/systems/servRepository.tpl | 1 + 2 files changed, 62 insertions(+), 60 deletions(-) diff --git a/plugins/admin/systems/class_servRepository.inc b/plugins/admin/systems/class_servRepository.inc index 7dd8e9cbd..9a3114e80 100644 --- a/plugins/admin/systems/class_servRepository.inc +++ b/plugins/admin/systems/class_servRepository.inc @@ -101,66 +101,33 @@ class servrepository extends plugin _("This server has FAI repository features disabled. You can enable them by clicking below.")); return ($display); } - - /* - ADD / EDIT Repository - Dialog Handling - */ - - $once = false; - foreach($_POST as $name => $value){ - if(preg_match("/AddRepository/",$name)){ - $once = true; - $this->dialog = new servRepositorySetup($this->config,$this->dn); - $this->dialog->acl = $this->acl; - } - - if((preg_match("/^delete_/",$name))&&(!$once)){ - $once = true; - $value = preg_replace("/delete_/","",$name); - $value = base64_decode(preg_replace("/_.*$/","",$value)); + /* + ADD / EDIT Repository + Dialog Handling + */ - $url = $this->repositories[$value]['Url']; - $release = $this->repositories[$value]['Release']; + $once = false; + if(isset($_POST['servRepository'])){ + foreach($_POST as $name => $value){ - $ldap = $this->config->get_ldap_link(); - $ldap->cd ($this->config->current['BASE']); - - $ldap->search("(&(objectClass=gotoWorkstation)(objectClass=FAIobject)(FAIdebianMirror=".$url."))",array("cn","FAIclass")); - - $found = false; - $found_in = " "; - while($attrs = $ldap->fetch()){ - foreach($attrs['FAIclass'] as $class){ - if(preg_match("/".str_replace("/","\/",$release)."$/i",$class)){ - $found = true; - $found_in .= $attrs['cn'][0]." "; - } - } + if(preg_match("/AddRepository/",$name)){ + $once = true; + $this->dialog = new servRepositorySetup($this->config,$this->dn); + $this->dialog->acl = $this->acl; } - - if($found){ - print_red(sprintf(_("You can't delete this release, it is still used by these workstations [%s]. Please solve this dependencies first, to keep data base consistency."),$found_in)); - }else{ - if(isset($this->repositories[$value])){ - unset($this->repositories[$value]); - } - } - } - if((preg_match("/^edit_/",$name))&&(!$once)){ - $value = preg_replace("/edit_/","",$name); - $value = base64_decode(preg_replace("/_.$/","",$value)); + if((preg_match("/^delete_/",$name))&&(!$once)){ + $once = true; + $value = preg_replace("/delete_/","",$name); + $value = base64_decode(preg_replace("/_.*$/","",$value)); - if(isset($this->repositories[$value])){ + $url = $this->repositories[$value]['Url']; + $release = $this->repositories[$value]['Release']; $ldap = $this->config->get_ldap_link(); $ldap->cd ($this->config->current['BASE']); - $url = $this->repositories[$value]['Url']; - $release = $this->repositories[$value]['Release']; - $ldap->search("(&(objectClass=gotoWorkstation)(objectClass=FAIobject)(FAIdebianMirror=".$url."))",array("cn","FAIclass")); $found = false; @@ -168,29 +135,63 @@ class servrepository extends plugin while($attrs = $ldap->fetch()){ foreach($attrs['FAIclass'] as $class){ if(preg_match("/".str_replace("/","\/",$release)."$/i",$class)){ - $found = true; + $found = true; $found_in .= $attrs['cn'][0]." "; } } } if($found){ - print_red(sprintf(_("Be careful editing this release, it is still used by these workstations [%s]."),$found_in)); - } + print_red(sprintf(_("You can't delete this release, it is still used by these workstations [%s]. Please solve this dependencies first, to keep data base consistency."),$found_in)); + }else{ + if(isset($this->repositories[$value])){ + unset($this->repositories[$value]); + } + } + } + + if((preg_match("/^edit_/",$name))&&(!$once)){ + $value = preg_replace("/edit_/","",$name); + $value = base64_decode(preg_replace("/_.$/","",$value)); if(isset($this->repositories[$value])){ - $once = true; - $obj = $this->repositories[$value]; - /* to be able to detect if this was renamed */ - $obj['initialy_was'] = $obj['Release']; - $this->dialog = new servRepositorySetup($this->config,$this->dn,$obj); - $this->dialog->acl = $this->acl; + $ldap = $this->config->get_ldap_link(); + $ldap->cd ($this->config->current['BASE']); + + $url = $this->repositories[$value]['Url']; + $release = $this->repositories[$value]['Release']; + + $ldap->search("(&(objectClass=gotoWorkstation)(objectClass=FAIobject)(FAIdebianMirror=".$url."))",array("cn","FAIclass")); + + $found = false; + $found_in = " "; + while($attrs = $ldap->fetch()){ + foreach($attrs['FAIclass'] as $class){ + if(preg_match("/".str_replace("/","\/",$release)."$/i",$class)){ + $found = true; + $found_in .= $attrs['cn'][0]." "; + } + } + } + + if($found){ + print_red(sprintf(_("Be careful editing this release, it is still used by these workstations [%s]."),$found_in)); + } + + if(isset($this->repositories[$value])){ + $once = true; + $obj = $this->repositories[$value]; + + /* to be able to detect if this was renamed */ + $obj['initialy_was'] = $obj['Release']; + $this->dialog = new servRepositorySetup($this->config,$this->dn,$obj); + $this->dialog->acl = $this->acl; + } } } } } - if((isset($_GET['act']))&&($_GET['act']=="open")&&(isset($_GET['id']))){ $obj = $this->repositories[base64_decode($_GET['id'])]; $obj['initialy_was'] = $obj['Release']; diff --git a/plugins/admin/systems/servRepository.tpl b/plugins/admin/systems/servRepository.tpl index d3a2e1d10..8213703a2 100644 --- a/plugins/admin/systems/servRepository.tpl +++ b/plugins/admin/systems/servRepository.tpl @@ -56,3 +56,4 @@ + -- 2.30.2