From d853cc4f78378cc941d0704e3a6430287789edd7 Mon Sep 17 00:00:00 2001 From: hickert Date: Tue, 20 Oct 2009 08:38:36 +0000 Subject: [PATCH] Updated repository service - prevent removal of used repositories git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@14608 594d385d-05f5-0310-b6e9-bd551577e9d8 --- .../repository/class_servRepository.inc | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gosa-plugins/fai/admin/systems/services/repository/class_servRepository.inc b/gosa-plugins/fai/admin/systems/services/repository/class_servRepository.inc index 3a097e261..f64861b2b 100644 --- a/gosa-plugins/fai/admin/systems/services/repository/class_servRepository.inc +++ b/gosa-plugins/fai/admin/systems/services/repository/class_servRepository.inc @@ -330,6 +330,33 @@ class servrepository extends goService } + function allow_remove() + { + /* Check if the service is still in use + */ + $ldap = $this->config->get_ldap_link(); + $ldap->cd($this->config->current['BASE']); + foreach($this->repositories as $repository) { + $url = $repository['Url']; + $ldap->search("(&(objectClass=gotoWorkstation)(objectClass=FAIobject)(FAIdebianMirror=".$url."))",array("cn","FAIclass")); + if ($ldap->count() != 0){ + $obj= array(); + $found= false; + while($attrs = $ldap->fetch()){ + foreach($attrs['FAIclass'] as $class){ + $obj[$ldap->getDN()]= $attrs['cn'][0]; + $found= true; + } + } + if ($found){ + $message = msgPool::stillInUse(_("Repository service")) . msgPool::buildList($obj); + return $message; + } + } + } + } + + function remove_from_parent() { goService::remove_from_parent(); -- 2.30.2