diff --git a/plugins/admin/systems/class_goImapServer.inc b/plugins/admin/systems/class_goImapServer.inc
index 96ddbdb787b6a46120924122e92f5038dcf74644..8a95ed7ad854c541aa75ac12c36700dc3f7d904c 100644 (file)
/* 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']);
+ }
+ }
+ }
+
}
}
function getListEntry()
{
$fields = goService::getListEntry();
- $fields['Message'] = _("Cyrus service");
+ $fields['Message'] = _("IMAP/POP3 (Cyrus) service");
$fields['AllowRemove']= true;
$fields['AllowEdit'] = true;
return($fields);
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;
+ }
}
}
}
function plInfo()
{
return (array(
- "plShortName" => _("Imap"),
- "plDescription" => _("Imap service"),
+ "plShortName" => _("IMAP/POP3"),
+ "plDescription" => _("IMAP/POP3")." ("._("Services").")",
"plSelfModify" => FALSE,
"plDepends" => array(),
- "plPriority" => 0,
+ "plPriority" => 94,
"plSection" => array("administration"),
"plCategory" => array("server"),
"plProvidedAcls"=> array(
- "start" => _("Start"),
- "stop" => _("Stop"),
- "restart" => _("Restart"),
+ "start" => _("Start"),
+ "stop" => _("Stop"),
+ "restart" => _("Restart"),
+ "repair_database" => _("Repair database"),
"goImapName" =>_("Server identifier"),
"goImapConnect" =>_("Connect URL"),