Code

Updated description
[gosa.git] / gosa-plugins / scalix / personal / scalix / class_scalixAccount.inc
index 665326620eefa5579a92c30052e882d241fc96c5..ec108855ec80e6abc94da97d2f77f34e823cd022 100644 (file)
 class scalixAccount extends plugin
 {
   /* Definitions */
-  var $plHeadline   = "Scalix";
-  var $plDescription= "This does something";
+  var $plHeadline   = "SCALIX";
+  var $plDescription= "Manage personal SCALIX settings";
 
   /* plugin specific values - scalixUserClass */
   /* MUST */
   var $scalixScalixObject= TRUE; //TRUE or FALSE
   var $scalixMailnode= "";
-  /* INDIRECT MUST, scalix will complain if no email was specified */
+
+  /* Indicates whether we have a scalix group or a sclix user account 
+   */
+       var $scalixGroup = FALSE;
   
+  /* INDIRECT MUST, scalix will complain if no email was specified */
   /* MAY */
   var $scalixAdministrator= FALSE;
   var $scalixMailboxAdministrator = FALSE;
@@ -104,6 +108,7 @@ class scalixAccount extends plugin
 
     /* Load templating engine */
     $smarty= get_smarty();
+    $smarty->assign("scalixGroup", set_post($this->scalixGroup));
     $display= "";
 
     /* Do we need to flip is_account state? */
@@ -111,16 +116,14 @@ class scalixAccount extends plugin
       $this->is_account= !$this->is_account;
     }
 
-    $ReadOnly = !session::is_set("edit") && !isset($this->parent);
-
     /* Show main page */
-    $mailboxClasses = array("", "LIMITED", "FULL");
-    $serverLanguages= array("", "GERMAN", "ENGLISH");
+    $mailboxClasses = array(" ", "LIMITED", "FULL");
+    $serverLanguages= array(" ", "GERMAN", "ENGLISH");
 
     /* Do we represent a valid account? */
     if (!$this->is_account && $this->parent === NULL){
       $display= "<img alt=\"\" src=\"images/small-error.png\" align=\"middle\">&nbsp;<b>".
-        _("This account has no scalix extensions.")."</b>";
+        _("This account has no SCALIX extensions.")."</b>";
 
       $display.= back_to_main();
       return ($display);
@@ -129,10 +132,10 @@ class scalixAccount extends plugin
     /* Show tab dialog headers */
     if ($this->parent !== NULL){
       if ($this->is_account){
-        $display= $this->show_disable_header(_("Remove scalix account"),
-            _("This account has scalix synchronization enabled. You can disable it by clicking below."));
+        $display= $this->show_disable_header(_("Remove SCALIX account"),
+            _("This account has SCALIX synchronization enabled. You can disable it by clicking below."));
       } else {
-        $display= $this->show_enable_header(_("Create scalix account"), _("This account has scalix synchronization disabled. You can enable it by clicking below."));
+        $display= $this->show_enable_header(_("Create SCALIX account"), _("This account has SCALIX synchronization disabled. You can enable it by clicking below."));
         return ($display);
       }
     }
@@ -156,8 +159,12 @@ class scalixAccount extends plugin
       "scalixServerLanguage", "scalixLimitMailboxSize", "scalixLimitOutboundMail", "scalixEmailAddress",
       "scalixLimitInboundMail", "scalixLimitNotifyUser", "scalixHideUserEntry", "scalixMailboxClass") as $val){
 
-      $smarty->assign("$val", $this->$val);
-      $smarty->assign("$val"."ACL", $this->getacl($val, $ReadOnly));
+      $smarty->assign("$val", set_post($this->$val));
+    }
+
+    $tmp = $this->plInfo();
+    foreach($tmp['plProvidedAcls'] as $name => $desc){
+      $smarty->assign($name."ACL", $this->getacl($name));
     }
 
     /* Fill checkboxes */
@@ -243,12 +250,12 @@ class scalixAccount extends plugin
       plugin::save_object();
 
       /* Check if given value is not empty */
-      if (isset($_POST['email_address']) && !empty($_POST['email_address'])){
+      if (isset($_POST['email_address']) && !empty($_POST['email_address']) && isset($_POST['add_email'])){
         $valid= FALSE;
 
         /* Valid mail address */
         if( ($this->is_template && !tests::is_email($_POST['email_address'], TRUE)) ||
-            (!$this->is_template && !tests::is_email($_POST['email_address'])) ){
+            (!$this->is_template && !tests::is_email($_POST['email_address']))){
           msg_dialog::display(_("Error"), _("Cannot add invalid mail address!"), ERROR_DIALOG);
         }else{
           $valid = TRUE;
@@ -260,7 +267,7 @@ class scalixAccount extends plugin
         }else{
 
           /* Mail address already in use ? */
-          if ($valid && ($user= $this->addEmail ($_POST['email_address'])) != ""){
+          if ($valid && ($user= $this->addEmail (get_post('email_address'))) != ""){
             $ui= get_userinfo();
             if ($user != $ui->username){
               msg_dialog::display(_("Error"), sprintf(_("Cannot add mail address: it is already used by user '%s'."), $user),
@@ -312,12 +319,15 @@ class scalixAccount extends plugin
     $this->attrs['scalixEmailAddress']= $this->scalixEmailAddress;    
     
     /* Save boolean vars ... the scalix schema expects them as strings */
+    if(!$this->scalixGroup){
+      $this->attrs['scalixAdministrator'] = $this->scalixAdministrator?"TRUE":"FALSE";
+      $this->attrs['scalixMailboxAdministrator'] = $this->scalixMailboxAdministrator?"TRUE":"FALSE";
+      $this->attrs['scalixLimitOutboundMail'] = $this->scalixLimitOutboundMail?"TRUE":"FALSE";
+      $this->attrs['scalixLimitInboundMail'] = $this->scalixLimitInboundMail?"TRUE":"FALSE";
+      $this->attrs['scalixLimitNotifyUser'] = $this->scalixLimitNotifyUser?"TRUE":"FALSE";
+    }
+    
     $this->attrs['scalixScalixObject'] = $this->scalixScalixObject?"TRUE":"FALSE";
-    $this->attrs['scalixAdministrator'] = $this->scalixAdministrator?"TRUE":"FALSE";
-    $this->attrs['scalixMailboxAdministrator'] = $this->scalixMailboxAdministrator?"TRUE":"FALSE";
-    $this->attrs['scalixLimitOutboundMail'] = $this->scalixLimitOutboundMail?"TRUE":"FALSE";
-    $this->attrs['scalixLimitInboundMail'] = $this->scalixLimitInboundMail?"TRUE":"FALSE";
-    $this->attrs['scalixLimitNotifyUser'] = $this->scalixLimitNotifyUser?"TRUE":"FALSE";
     $this->attrs['scalixHideUserEntry'] = $this->scalixHideUserEntry?"TRUE":"FALSE";
 
     /* Remove Mailquota if = "" */
@@ -351,10 +361,10 @@ class scalixAccount extends plugin
     $message= array();
 
     if(empty($this->scalixMailnode)){
-      $message[]= msgPool::required(_("Mailnode"));
+      $message[]= msgPool::required(_("Mail node"));
     }
     if(empty($this->scalixScalixObject)){
-      $message[]= msgPool::required(_("Scalix object"));
+      $message[]= msgPool::required(_("SCALIX object"));
     }
 
     $ldap->cd($this->config->current['BASE']);
@@ -445,7 +455,7 @@ class scalixAccount extends plugin
   static function plInfo()
   {
     return (array(
-          "plDescription"     => _("Scalix account"),
+          "plDescription"     => _("SCALIX account"),
           "plSelfModify"      => TRUE,
           "plDepends"         => array("user"),
           "plPriority"        => 2,
@@ -453,19 +463,24 @@ class scalixAccount extends plugin
           "plCategory"        => array("users"),
           "plOptions"         => array(),
 
+          "plRequirements"=> array(
+              'ldapSchema' => array('scalixUserClass' => ''),
+              'onFailureDisablePlugin' => array(get_class())
+              ),
+
           "plProvidedAcls"  => array(
 
-            "scalixMailnode"            => _("Scalix Mail node"),
+            "scalixMailnode"            => _("SCALIX Mail node"),
             "scalixMailboxClass"        => _("Mailbox class"),
             "scalixServerLanguage"      => _("Server language"),
             "scalixAdministrator"       => _("Administrator"),
             "scalixMailboxAdministrator"=> _("Mailbox administrator"),
-            "scalixHideUserEntry"       => _("Hide user entry in Scalix"),
+            "scalixHideUserEntry"       => _("Hide user entry in SCALIX"),
             "scalixLimitMailboxSize"    => _("Mailbox size limitations"),
             "scalixLimitOutboundMail"   => _("Limit outbound"),
             "scalixLimitInboundMail"    => _("Limit inbound"),
             "scalixLimitNotifyUser"     => _("Notify user"),
-            "scalixEmailAddress"        => _("Scalix email addresses"))
+            "scalixEmailAddress"        => _("SCALIX email addresses"))
 
             ));
   }
@@ -491,7 +506,7 @@ class scalixAccount extends plugin
           }
 
           /* Mail address already in use ? */
-          if ($valid && ($user= $this->addEmail ($_POST['email_address'])) != ""){
+          if ($valid && ($user= $this->addEmail (get_post('email_address'))) != ""){
             $ui= get_userinfo();
             if ($user != $ui->username){
               msg_dialog::display(_("Error"), sprintf(_("Cannot add mail address: it is already used by user '%s'."), $user), ERROR_DIALOG);
@@ -536,7 +551,7 @@ class scalixAccount extends plugin
   function getCopyDialog()
   {
     $smarty = get_smarty(); 
-    $smarty->assign("scalixEmailAddress",$this->scalixEmailAddress);
+    $smarty->assign("scalixEmailAddress",set_post($this->scalixEmailAddress));
     $str = $smarty->fetch(get_template_path("paste_generic.tpl",TRUE,dirname(__FILE__)));    
     $ret = array();
     $ret['string'] = $str;