Code

Dialog unifying
[gosa.git] / gosa-plugins / samba / personal / samba / class_sambaAccount.inc
index 598cf9a108705d897c3567a79fa9240987578986..65830c6d5b990c8ee855bd302f88048c92ff1c43 100644 (file)
@@ -25,11 +25,6 @@ class sambaAccount extends plugin
   var $plDescription= "This does something";
   var $view_logged = FALSE;
 
-  /* CLI vars */
-  var $cli_summary= "Manage users samba account";
-  var $cli_description= "Some longer text\nfor help";
-  var $cli_parameters= array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser");
-
   /* Switch for Samba version */
   var $samba3= FALSE;
   var $uidNumber= 65535;
@@ -137,7 +132,11 @@ class sambaAccount extends plugin
       $ldap->search ("(&(objectClass=sambaDomain)(sambaSID=$this->SID))",array("sambaAlgorithmicRidBase","sambaDomainName"));
       if ($ldap->count() != 0){
         $attrs= $ldap->fetch();
-        $this->ridBase= $attrs['sambaAlgorithmicRidBase'][0];
+        if(isset($attrs['sambaAlgorithmicRidBase'])){
+          $this->ridBase= $attrs['sambaAlgorithmicRidBase'][0];
+        } else {
+          $this->ridBase= $this->config->current['RIDBASE'];
+        }
         if ($this->sambaDomainName == ""){
           $this->sambaDomainName= $attrs['sambaDomainName'][0];
         }
@@ -215,7 +214,7 @@ class sambaAccount extends plugin
     /* Do we represent a valid account? */
     if (!$this->is_account && $this->parent === NULL){
       $display= "<img alt=\"\"src=\"images/stop.png\" align=\"middle\">&nbsp;<b>".
-        _("This account has no samba extensions.")."</b>";
+        msgPool::noValidExtension(_("Samba"))."</b>";
       $display.= back_to_main();
       return ($display);
     }
@@ -227,8 +226,8 @@ class sambaAccount extends plugin
       $display= "";
       if ($this->parent !== NULL){
         if ($this->is_account){
-          $display= $this->show_disable_header(_("Remove samba account"),
-              _("This account has samba features enabled. You can disable them by clicking below."));
+          $display= $this->show_disable_header(msgPool::removeFeaturesButton(_("Samba")),
+              msgPool::featuresEnabled(_("Samba")));
         } else {
           $obj= $this->parent->by_object['posixAccount'];
 
@@ -237,11 +236,11 @@ class sambaAccount extends plugin
              uidNumbers. There'll be a better solution later
              on. */
           if ($obj->is_account){
-            $display= $this->show_enable_header(_("Create samba account"),
-                _("This account has samba features disabled. You can enable them by clicking below."));
+            $display= $this->show_enable_header(msgPool::addFeaturesButton(_("Samba")),
+                msgPool::featuresDisabled(_("Samba")));
           } else {
-            $display= $this->show_enable_header(_("Create samba account"),
-                _("This account has samba features disabled. Posix features are needed for samba accounts, enable them first."), TRUE);
+            $display= $this->show_enable_header(msgPool::addFeaturesButton(_("Samba")),
+                msgPool::featuresDisabled(_("Samba"), _("POSIX")), TRUE);
           }
           return ($display);
         }
@@ -339,27 +338,34 @@ class sambaAccount extends plugin
     }
 
     /* Add user workstation finished? */
-    if (isset($_POST["add_ws_finish"]) || isset($_POST["add_ws_cancel"])){
+    if (isset($_POST["add_ws_cancel"])){
       $this->show_ws_dialog= FALSE;
       $this->dialog= FALSE;
     }
 
     /* Add user workstation? */
-    if (isset($_POST["add_ws_finish"]) && isset($_POST['wslist'])){
+    if (isset($_POST["add_ws_finish"])){
 
-      if($this->multiple_support_active){
-        foreach($_POST['wslist'] as $ws){
-          $this->multiple_sambaUserWorkstations[trim($we)] = array("Name" => trim($ws), "UsedByAllUsers" => TRUE);
-        }
-      }else{
-        $tmp= $this->sambaUserWorkstations;
-        foreach($_POST['wslist'] as $ws){
-          $tmp.= ",$ws";
+      if (isset($_POST['wslist'])){
+        if($this->multiple_support_active){
+          foreach($_POST['wslist'] as $ws){
+            $this->multiple_sambaUserWorkstations[trim($we)] = array("Name" => trim($ws), "UsedByAllUsers" => TRUE);
+          }
+        }else{
+          $tmp= $this->sambaUserWorkstations;
+          foreach($_POST['wslist'] as $ws){
+            $tmp.= ",$ws";
+          }
+          $tmp= preg_replace('/,+/', ',', $tmp);
+          $this->sambaUserWorkstations= trim($tmp, ',');
         }
-        $tmp= preg_replace('/,+/', ',', $tmp);
-        $this->sambaUserWorkstations= trim($tmp, ',');
+        $this->is_modified= TRUE;
+
+        $this->show_ws_dialog= FALSE;
+        $this->dialog= FALSE;
+      } else {
+        msg_dialog::display(_("Error"), _("Please select an entry!"), ERROR_DIALOG);
       }
-      $this->is_modified= TRUE;
     }
 
     /* Show ws dialog */
@@ -433,9 +439,7 @@ class sambaAccount extends plugin
     for($y= $date['year']-4; $y<$date['year']+4; $y++){
       $years[]= $y;
     }
-    $months= array(_("January"), _("February"), _("March"), _("April"),
-        _("May"), _("June"), _("July"), _("August"), _("September"),
-        _("October"), _("November"), _("December"));
+    $months= msgPool::months();
     $smarty->assign("day", $date["mday"]);
     $smarty->assign("days", $days);
     $smarty->assign("months", $months);
@@ -451,9 +455,7 @@ class sambaAccount extends plugin
     for($y= $date['year']-4; $y<$date['year']+4; $y++){
       $sambaLogonTime_years[]= $y;
     }
-    $sambaLogonTime_months= array(_("January"), _("February"), _("March"), _("April"),
-        _("May"), _("June"), _("July"), _("August"), _("September"),
-        _("October"), _("November"), _("December"));
+    $sambaLogonTime_months= msgPool::months();
     $smarty->assign("sambaLogonTime_day", $sambaLogonTime_date["mday"]);
     $smarty->assign("sambaLogonTime_days", $sambaLogonTime_days);
     $smarty->assign("sambaLogonTime_months", $sambaLogonTime_months);
@@ -469,9 +471,7 @@ class sambaAccount extends plugin
     for($y= $date['year']-4; $y<$date['year']+4; $y++){
       $sambaLogoffTime_years[]= $y;
     }
-    $sambaLogoffTime_months= array(_("January"), _("February"), _("March"), _("April"),
-        _("May"), _("June"), _("July"), _("August"), _("September"),
-        _("October"), _("November"), _("December"));
+    $sambaLogoffTime_months= msgPool::months();
     $smarty->assign("sambaLogoffTime_day", $sambaLogoffTime_date["mday"]);
     $smarty->assign("sambaLogoffTime_days", $sambaLogoffTime_days);
     $smarty->assign("sambaLogoffTime_months", $sambaLogoffTime_months);
@@ -487,9 +487,7 @@ class sambaAccount extends plugin
     for($y= $date['year']-4; $y<$date['year']+4; $y++){
       $sambaKickoffTime_years[]= $y;
     }
-    $sambaKickoffTime_months= array(_("January"), _("February"), _("March"), _("April"),
-        _("May"), _("June"), _("July"), _("August"), _("September"),
-        _("October"), _("November"), _("December"));
+    $sambaKickoffTime_months= msgPool::months();
     //$smarty->assign("sambaKickoffTime_day", $sambaKickoffTime_date["mday"]-1);
     $smarty->assign("sambaKickoffTime_day", $sambaKickoffTime_date["mday"]); // hickert
     $smarty->assign("sambaKickoffTime_days", $sambaKickoffTime_days);
@@ -731,7 +729,9 @@ class sambaAccount extends plugin
 
     new log("remove","users/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
 
-    show_ldap_error($ldap->get_error(), sprintf(_("Removing of user/samba account with dn '%s' failed."),$this->dn));
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, LDAP_MOD, get_class()));
+    }
 
     /* Optionally execute a command after we're done */
     $this->handle_post_events("remove", array("uid" => $this->uid));
@@ -750,7 +750,7 @@ class sambaAccount extends plugin
       foreach (array( "sambaHomePath" => _("Home directory"),
             "sambaProfilePath" => _("Profile path")) as $key => $val){
         if (!$this->mungedObject->is_samba_path($this->$key)){
-          $message[]= sprintf(_("The value specified as '%s' contains invalid characters!"), $val);
+          $message[]= msgPool::invalid($val);
         }
       }
 
@@ -760,13 +760,13 @@ class sambaAccount extends plugin
             "CtxMaxIdleTime" => _("IDLE")) as $key => $val){
 
         if (isset($this->mungedObject->ctx[$key]) && !tests::is_id($this->mungedObject->ctx[$key]) && $val != 0){
-          $message[]= sprintf(_("The timeout property '%s' is checked and contains invalid or no characters!"), $val);
+          $message[]= msgPool::invalid($val);
         }
       }
 
       /* Too many workstations? Windows usrmgr only supports eight */
       if (substr_count($this->sambaUserWorkstations, ",") >= 8){
-        $message[]= _("The windows user manager only allows eight clients. You've specified more than eight.");
+        $message[]= _("The windows usermanager allows eight clients at maximum!");
       }
     }
 
@@ -1089,7 +1089,9 @@ class sambaAccount extends plugin
       new log("create","users/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
     }
 
-    show_ldap_error($ldap->get_error(), sprintf(_("Saving of user/samba account with dn '%s' failed."),$this->dn));
+    if (!$ldap->success()){
+      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, 0, get_class()));
+    }
 
     /* Optionally execute a command after we're done */
     if ($this->initially_was_account == $this->is_account){
@@ -1240,7 +1242,7 @@ class sambaAccount extends plugin
     foreach (array( "sambaHomePath" => _("Home directory"),
           "sambaProfilePath" => _("Profile path")) as $key => $val){
       if (in_array($key,$this->multi_boxes) && !$this->mungedObject->is_samba_path($this->$key)){
-        $message[]= sprintf(_("The value specified as '%s' contains invalid characters!"), $val);
+        $message[]= msgPool::invalid($val);
       }
     }
 
@@ -1251,7 +1253,7 @@ class sambaAccount extends plugin
       if (in_array($key,$this->multi_boxes) && 
           isset($this->mungedObject->ctx[$key]) && 
           !tests::is_id($this->mungedObject->ctx[$key]) && $val != 0){
-        $message[]= sprintf(_("The timeout property '%s' is checked and contains invalid or no characters!"), $val);
+        $message[]=msgPool::invalid($val);
       }
     }
 
@@ -1537,6 +1539,16 @@ class sambaAccount extends plugin
       }
     }
   }
+
+
+  function PrepareForCopyPaste($source)
+  {
+    plugin::PrepareForCopyPaste($source);
+
+    /* Set a new SID */
+    $this->sambaSID = "";
+  }
+
 }
 
 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: