X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-plugins%2Fsamba%2Fpersonal%2Fsamba%2Fclass_sambaAccount.inc;h=593263262645dd31268e39234d3f786890741a6c;hb=fbf8e4356f625423e3ccfcb0c6520942726a44e1;hp=3b638889fd4102820a9a1ac70491e78be6641f76;hpb=640cf4e07b5c2db5cb9c8c02e03037cf6d883367;p=gosa.git diff --git a/gosa-plugins/samba/personal/samba/class_sambaAccount.inc b/gosa-plugins/samba/personal/samba/class_sambaAccount.inc index 3b638889f..593263262 100644 --- a/gosa-plugins/samba/personal/samba/class_sambaAccount.inc +++ b/gosa-plugins/samba/personal/samba/class_sambaAccount.inc @@ -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= "\"\"src=\"images/stop.png\" ". - _("This account has no samba extensions.").""; + msgPool::noValidExtension(_("Samba")).""; $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); } }