Code

list base image migration for gosa-plugins
[gosa.git] / gosa-plugins / samba / personal / samba / class_sambaAccount.inc
index 3b638889fd4102820a9a1ac70491e78be6641f76..593263262645dd31268e39234d3f786890741a6c 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 */
@@ -409,7 +415,7 @@ class sambaAccount extends plugin
       asort($wslist);
 
       $smarty->assign("search_image", get_template_path('images/search.png'));
-      $smarty->assign("launchimage", get_template_path('images/small_filter.png'));
+      $smarty->assign("launchimage", get_template_path('images/lists/action.png'));
       $smarty->assign("tree_image", get_template_path('images/tree.png'));
       $smarty->assign("deplist", $this->config->idepartments);
       $smarty->assign("alphabet", generate_alphabet());
@@ -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){
@@ -1117,33 +1119,33 @@ class sambaAccount extends plugin
   }
 
 
-  function adapt_from_template($dn)
+  function adapt_from_template($dn, $skip= array())
   {
-    plugin::adapt_from_template($dn);
+    plugin::adapt_from_template($dn, $skip);
     $this->sambaSID= "";
     $this->sambaPrimaryGroupSID= "";
 
       /* Fill mungedDial field */
-    if ($this->samba3 && isset($this->attrs['sambaMungedDial'])){
+    if ($this->samba3 && isset($this->attrs['sambaMungedDial']) && !in_array('sambaMungedDial', $skip)){
       $this->mungedObject->load($this->sambaMungedDial);
     }
 
     /* Password expiery */
     if(isset($this->attrs['sambaPwdMustChange']) &&
-        $this->attrs['sambaPwdMustChange'][0] != 0){
+        $this->attrs['sambaPwdMustChange'][0] != 0 && !in_array('sambaPwdMustChange', $skip)){
       $this->password_expires= 1;
     }
 
     if(isset($this->attrs['sambaLogonTime']) && ! (
         $this->attrs['sambaLogonTime'][0] == 0 ||
         $this->attrs['sambaLogonTime'][0] == 2147483647
-      )){
+      ) && !in_array('sambaLogonTime', $skip)){
       $this->logon_time_set= 1;
     }
     if(isset($this->attrs['sambaLogoffTime']) && ! (
         $this->attrs['sambaLogoffTime'][0] == 0 ||
         $this->attrs['sambaLogoffTime'][0] == 2147483647
-      )){
+      ) && !in_array('sambaLogonTime', $skip)){
       $this->logoff_time_set= 1;
     }
 
@@ -1151,7 +1153,7 @@ class sambaAccount extends plugin
     if(isset($this->attrs['sambaKickoffTime']) && ! (
         $this->attrs['sambaKickoffTime'][0] == 0 ||
         $this->attrs['sambaKickoffTime'][0] == 2147483647
-      )){
+      ) && !in_array('sambaKickoffTime', $skip)){
       $this->kickoff_time_set= 1;
     }
 
@@ -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);
       }
     }
 
@@ -1543,9 +1545,8 @@ class sambaAccount extends plugin
   {
     plugin::PrepareForCopyPaste($source);
 
-    /* Set a new SID and force a new group with new sambaPrimaryGroupSID */
+    /* Set a new SID */
     $this->sambaSID = "";
-    print "Eloha : ".($this->gidNumber);
   }
 
 }