diff --git a/plugins/admin/systems/class_servRepositorySetup.inc b/plugins/admin/systems/class_servRepositorySetup.inc
index b5e5c14f2d54f93cebf170488f7ed8f1450b1674..6bbfb43483c57af16ed7b8474d89d583fb634d95 100644 (file)
/* attribute list for save action */
var $ignore_account = TRUE;
/* attribute list for save action */
var $ignore_account = TRUE;
- var $attributes = array("Release","ParentServer","Url");
+ var $attributes = array("Release","ParentServer","Url","cn");
var $objectclasses = array("whatever");
/* Attributes */
var $objectclasses = array("whatever");
/* Attributes */
- var $Release ="";
- var $ParentServer ="";
- var $Url ="";
- var $Sections =array();
- var $ParentServers ="";
- var $initialy_was=false;
+ var $Release = "";
+ var $ParentServer = "";
+ var $Url = "";
+ var $Sections = array();
+ var $ParentServers = "";
+ var $initialy_was = false;
+ var $cn = "";
function servRepositorySetup ($config, $dn= NULL,$data = false)
{
function servRepositorySetup ($config, $dn= NULL,$data = false)
{
$smarty= get_smarty();
if((isset($_POST['AddSection']))&&(isset($_POST['SectionName']))&&(!empty($_POST['SectionName']))){
$smarty= get_smarty();
if((isset($_POST['AddSection']))&&(isset($_POST['SectionName']))&&(!empty($_POST['SectionName']))){
- $this->Sections[$_POST['SectionName']]=$_POST['SectionName'];
+
+ /* Replace multiple spaces with a single, and cut of white spaces (trim)*/
+ $val = preg_replace("/\ \ * /" , " ", trim($_POST['SectionName']));
+
+ /* check if there are more than one entry given ( "section1 section2 )*/
+ if(preg_match("/ /",$val)){
+
+ /* Generate list of new section names */
+ $vals = split(" ",$val);
+
+ /* Add new entries */
+ foreach($vals as $entry){
+ $entry = trim($entry);
+ $this->Sections[$entry]=$entry;
+ }
+ }else{
+ $this->Sections[$val]=$val;
+ }
}
foreach($_POST as $name => $value){
}
foreach($_POST as $name => $value){
/* Check supplied data */
function check()
{
/* Check supplied data */
function check()
{
- $message= array();
+ /* Call common method to give check the hook */
+ $message= plugin::check();
if(empty($this->Release)){
$message[]=_("Please enter a value for 'release'.");
if(empty($this->Release)){
$message[]=_("Please enter a value for 'release'.");
$ldap->cd($this->config->current['BASE']);
$ldap->search("(objectClass=FAIrepositoryServer)",array("*"));
while($attr = $ldap->fetch()){
$ldap->cd($this->config->current['BASE']);
$ldap->search("(objectClass=FAIrepositoryServer)",array("*"));
while($attr = $ldap->fetch()){
+ if($attr['cn'][0] == $this->cn) continue;
$ret[$attr['cn'][0]]= $attr['cn'][0];
}
$ret[$attr['cn'][0]]= $attr['cn'][0];
}
function GetHookElements()
{
$ret = array();
function GetHookElements()
{
$ret = array();
- $cmd= search_config($this->config->data['TABS'], "servrepository", "EXTERNAL_HOOK");
+ $cmd= search_config($this->config->data['TABS'], "servrepository", "REPOSITORY_HOOK");
if(!empty($cmd)){
$res = shell_exec($cmd);
$res2 = trim($res);
if(!empty($cmd)){
$res = shell_exec($cmd);
$res2 = trim($res);
- if((!$res)){
- print_red(sprintf(_("Can't execute specified EXTERNAL_HOOK '%s' please check your gosa.conf."),$cmd));
+ if(!$res){
+ print_red(sprintf(_("Can't execute specified REPOSITORY_HOOK '%s'. Please check your gosa.conf."),$cmd));
}elseif(empty($res2)){
}elseif(empty($res2)){
- print_red(sprintf(_("The specified EXTERNAL_HOOK '%s', specified in your gosa.conf, returns an empty string."),$cmd));
+ print_red(sprintf(_("The specified REPOSITORY_HOOK '%s', specified in your gosa.conf, returns an empty string."),$cmd));
}else{
$tmp = split("\n",$res);
foreach($tmp as $hook){
/* skip empty */
}else{
$tmp = split("\n",$res);
foreach($tmp as $hook){
/* skip empty */
- if((empty($hook)) || (!preg_match("/:/",$hook))) continue;
-
- $hookinfo = split(":",$hook);
- $ret[$hookinfo[1]] = $hookinfo[0];
+ if(empty($hook)) continue;
+
+ if(preg_match("/;/",$hook)){
+ $hookinfo = split(";",$hook);
+ $ret[$hookinfo[0]] = $hookinfo[0];
+ }else{
+ $ret[$hook] = $hook;
+ }
}
}
}
}
}
}