Code

list base image migration for gosa-plugins
[gosa.git] / gosa-plugins / samba / personal / samba / class_sambaAccount.inc
index 0f37c46aeee296972c91042ea63a81e384389ab6..593263262645dd31268e39234d3f786890741a6c 100644 (file)
@@ -338,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 */
@@ -408,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());
@@ -448,7 +455,7 @@ class sambaAccount extends plugin
     for($y= $date['year']-4; $y<$date['year']+4; $y++){
       $sambaLogonTime_years[]= $y;
     }
-    $sambaLogonTime_months= msgPool::months;
+    $sambaLogonTime_months= msgPool::months();
     $smarty->assign("sambaLogonTime_day", $sambaLogonTime_date["mday"]);
     $smarty->assign("sambaLogonTime_days", $sambaLogonTime_days);
     $smarty->assign("sambaLogonTime_months", $sambaLogonTime_months);
@@ -722,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));
@@ -1080,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){
@@ -1108,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;
     }
 
@@ -1142,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;
     }