From 5d28e624313a023c5545bdcd8dd256b89bc02804 Mon Sep 17 00:00:00 2001 From: hickert Date: Tue, 26 Sep 2006 05:12:56 +0000 Subject: [PATCH] Fixed imapserver service git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@4769 594d385d-05f5-0310-b6e9-bd551577e9d8 --- plugins/admin/systems/class_goImapServer.inc | 29 ++++++++++++++------ 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/plugins/admin/systems/class_goImapServer.inc b/plugins/admin/systems/class_goImapServer.inc index f045946e1..43a2a5834 100644 --- a/plugins/admin/systems/class_goImapServer.inc +++ b/plugins/admin/systems/class_goImapServer.inc @@ -63,7 +63,16 @@ class goImapServer extends goService { /* set new status */ if(isset($_POST['ExecAction'])){ if(isset($this->Actions[$_POST['action']])){ - $this->setStatus($_POST['action']); + + $tmp = $this->plInfo(); + foreach($tmp['plProvidedAcls'] as $name => $translation) { + if(preg_match("/^".$_POST['action']."$/i",$name)){ + if($this->acl_is_writeable($name)){ + $this->setStatus($_POST['action']); + } + } + } + } } @@ -125,10 +134,13 @@ class goImapServer extends goService { plugin::save_object(); foreach(array("cyrusImap","cyrusImapSSL","cyrusPop3","cyrusPop3SSL") as $checkbox) { - if(!isset($_POST[$checkbox])){ - $this->$checkbox = false; - }else{ - $this->$checkbox = true; + + if($this->acl_is_writeable($checkbox)){ + if(!isset($_POST[$checkbox])){ + $this->$checkbox = false; + }else{ + $this->$checkbox = true; + } } } } @@ -149,9 +161,10 @@ class goImapServer extends goService { "plProvidedAcls"=> array( - "start" => _("Start"), - "stop" => _("Stop"), - "restart" => _("Restart"), + "start" => _("Start"), + "stop" => _("Stop"), + "restart" => _("Restart"), + "repair_database" => _("Repair database"), "goImapName" =>_("Server identifier"), "goImapConnect" =>_("Connect URL"), -- 2.30.2