X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-plugins%2Fsamba%2Fpersonal%2Fsamba%2Fclass_sambaAccount.inc;h=f4bc82270023471aab8ec8ee9e769d0d7c4bb5d3;hb=5edc1ae1b5b13aae6bb4291fe3c6d4dbf5263ee0;hp=4f0e5a093b19682f32f6779170cb35cf873d0655;hpb=1b0394a0938832666e579fa392856edc90cb8538;p=gosa.git diff --git a/gosa-plugins/samba/personal/samba/class_sambaAccount.inc b/gosa-plugins/samba/personal/samba/class_sambaAccount.inc index 4f0e5a093..f4bc82270 100644 --- a/gosa-plugins/samba/personal/samba/class_sambaAccount.inc +++ b/gosa-plugins/samba/personal/samba/class_sambaAccount.inc @@ -24,29 +24,13 @@ class sambaAccount extends plugin var $plHeadline= "Samba"; var $plDescription= "This does something"; var $view_logged = FALSE; + var $password_expires= 0; /* Switch for Samba version */ - var $samba3= FALSE; var $uidNumber= 65535; var $gidNumber= 65535; - /* Samba 2 attributes */ - var $pwdLastSet= "0"; - var $logonTime= "0"; - var $logoffTime= "2147483647"; - var $kickoffTime= "2147483647"; - var $pwdCanChange= "0"; - var $pwdMustChange= "0"; - var $password_expires= 0; - var $acctFlags= "[UX ]"; - var $smbHome= ""; - var $homeDrive= ""; - var $scriptPath= ""; - var $profilePath= ""; - var $rid= ""; - var $primaryGroupID= ""; - - /* Samba 3 attributes */ + /* Samba attributes */ var $SID= ""; var $ridBase= 0; var $sambaSID= ""; @@ -74,7 +58,7 @@ class sambaAccount extends plugin /* Helper */ var $cache = array(); - var $show_ws_dialog= FALSE; + var $trustSelect= FALSE; var $logon_time_set= 0; var $logoff_time_set= 0; var $kickoff_time_set= 0; @@ -92,31 +76,23 @@ class sambaAccount extends plugin /* Only used for multiple edit */ var $temporary_disable = FALSE; var $no_password_required = FALSE; + var $no_expiry = FALSE; var $multiple_sambaUserWorkstations = array(); function sambaAccount (&$config, $dn= NULL) { /* Load attributes depending on the samba version */ - $this->samba3= ($config->get_cfg_value("sambaversion") == 3); - - if ($this->samba3){ - $this->attributes= array ("sambaSID", "sambaPwdLastSet", "sambaLogonTime", - "sambaLogoffTime", "sambaKickoffTime", "sambaPwdCanChange", - "sambaPwdMustChange", "sambaAcctFlags", "uid", "sambaMungedDial", - "sambaHomePath", "sambaHomeDrive", "sambaLogonScript", - "sambaProfilePath", "sambaPrimaryGroupSID", "sambaDomainName", - "sambaUserWorkstations", "sambaPasswordHistory", - "sambaLogonHours", "sambaBadPasswordTime", - "sambaBadPasswordCount"); - $this->objectclasses= array ("sambaSamAccount"); - $this->mungedObject= new sambaMungedDial; - $this->ctxattributes= $this->mungedObject->ctxattributes; - } else { - $this->attributes= array ("pwdLastSet", "logonTime", "logoffTime", "kickoffTime", - "pwdCanChange", "pwdMustChange", "acctFlags", "profilePath", "uid", - "smbHome", "homeDrive", "scriptPath", "rid", "primaryGroupID"); - $this->objectclasses= array ("sambaAccount"); - } + $this->attributes= array ("sambaSID", "sambaPwdLastSet", "sambaLogonTime", + "sambaLogoffTime", "sambaKickoffTime", "sambaPwdCanChange", + "sambaPwdMustChange", "sambaAcctFlags", "uid", "sambaMungedDial", + "sambaHomePath", "sambaHomeDrive", "sambaLogonScript", + "sambaProfilePath", "sambaPrimaryGroupSID", "sambaDomainName", + "sambaUserWorkstations", "sambaPasswordHistory", + "sambaLogonHours", "sambaBadPasswordTime", + "sambaBadPasswordCount"); + $this->objectclasses= array ("sambaSamAccount"); + $this->mungedObject= new sambaMungedDial; + $this->ctxattributes= $this->mungedObject->ctxattributes; plugin::plugin ($config, $dn); @@ -126,7 +102,7 @@ class sambaAccount extends plugin } /* Get samba Domain in case of samba 3 */ - if ($this->samba3 && $this->sambaSID != ""){ + if ($this->sambaSID != ""){ $this->SID= preg_replace ("/-[^-]+$/", "", $this->sambaSID); $ldap= $this->config->get_ldap_link(); $ldap->cd($this->config->current['BASE']); @@ -154,7 +130,7 @@ class sambaAccount extends plugin } /* Fill mungedDial field */ - if ($this->samba3 && isset($this->attrs['sambaMungedDial'])){ + if (isset($this->attrs['sambaMungedDial'])){ $this->mungedObject->load($this->sambaMungedDial); } @@ -195,6 +171,11 @@ class sambaAccount extends plugin /* Save initial account state */ $this->initially_was_account= $this->is_account; + + /* Convert kickoff */ + #TODO: use date format + $this->sambaKickoffTime= $this->sambaKickoffTime == 0?"":date('d.m.Y', $this->sambaKickoffTime); + $this->sambaPwdMustChange= $this->sambaPwdMustChange == 2147483647?"":date('d.m.Y', $this->sambaPwdMustChange); } function execute() @@ -251,7 +232,7 @@ class sambaAccount extends plugin $SkipWrite = (!isset($this->parent) || !$this->parent) && !session::is_set('edit'); /* Open Samaba Logong hours dialog */ - if(isset($_POST['SetSambaLogonHours']) && $this->samba3 && $this->acl_is_readable("sambaLogonHours")){ + if(isset($_POST['SetSambaLogonHours']) && $this->acl_is_readable("sambaLogonHours")){ $this->dialog = new sambaLogonHours($this->config,$this->dn,$this->sambaLogonHours); } @@ -277,6 +258,7 @@ class sambaAccount extends plugin /* Prepare templating */ $smarty= get_smarty(); + $smarty->assign("usePrototype", "true"); $tmp = $this->plInfo(); foreach($tmp['plProvidedAcls'] as $var => $rest){ @@ -287,12 +269,6 @@ class sambaAccount extends plugin $smarty->assign("sambaLogonHoursACL",""); } - if ($this->sambaPwdMustChange=="0"){ - $date= getdate(); - } else { - $date= getdate($this->sambaPwdMustChange); - } - if ($this->sambaLogonTime=="2147483647" || $this->sambaLogonTime=="0"){ $sambaLogonTime_date= getdate(); } else { @@ -305,12 +281,6 @@ class sambaAccount extends plugin $sambaLogoffTime_date= getdate($this->sambaLogoffTime); } - if ($this->sambaKickoffTime=="2147483647" || $this->sambaKickoffTime=="0"){ - $sambaKickoffTime_date= getdate(); - } else { - $sambaKickoffTime_date= getdate($this->sambaKickoffTime); - } - /* Remove user workstations? */ if (isset($_POST["delete_ws"]) && isset($_POST['workstation_list'])){ @@ -337,178 +307,61 @@ class sambaAccount extends plugin /* Add user workstation? */ if (isset($_POST["add_ws"])){ if($this->acl_is_writeable("sambaUserWorkstations",$SkipWrite)){ - $this->show_ws_dialog= TRUE; + $this->trustSelect= new trustSelect($this->config,get_userinfo()); $this->dialog= TRUE; } } /* Add user workstation finished? */ if (isset($_POST["add_ws_cancel"])){ - $this->show_ws_dialog= FALSE; + $this->trustSelect= FALSE; $this->dialog= FALSE; } - /* Add user workstation? */ - if (isset($_POST["add_ws_finish"])){ + // Add selected machines to trusted ones. + if (isset($_POST["add_ws_finish"]) && $this->trustSelect){ + $trusts = $this->trustSelect->detectPostActions(); + if(isset($trusts['targets'])){ - if (isset($_POST['wslist'])){ + $headpage = $this->trustSelect->getHeadpage(); if($this->multiple_support_active){ - foreach($_POST['wslist'] as $ws){ + foreach($trusts['targets'] as $id){ + $attrs = $headpage->getEntry($id); + $we =$attrs['cn'][0]; $this->multiple_sambaUserWorkstations[trim($we)] = array("Name" => trim($ws), "UsedByAllUsers" => TRUE); } }else{ + $tmp= $this->sambaUserWorkstations; - foreach($_POST['wslist'] as $ws){ - $tmp.= ",$ws"; + foreach($trusts['targets'] as $id){ + $attrs = $headpage->getEntry($id); + $we =$attrs['cn'][0]; + $tmp.= ",$we"; } $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; } + $this->trustSelect= NULL; + $this->dialog= FALSE; } /* Show ws dialog */ - if ($this->show_ws_dialog){ - - /* Save data */ - $sambafilter= session::get("sambafilter"); - foreach( array("depselect", "regex") as $type){ - if (isset($_POST[$type])){ - $sambafilter[$type]= $_POST[$type]; - } - } - if (isset($_GET['search'])){ - $s= mb_substr($_GET['search'], 0, 1, "UTF8")."*"; - if ($s == "**"){ - $s= "*"; - } - $sambafilter['regex']= $s; - } - session::set("sambafilter", $sambafilter); + if ($this->trustSelect){ - /* Get workstation list */ - $exclude= ""; - - if($this->multiple_support_active){ - foreach($this->multiple_sambaUserWorkstations as $ws){ - if($ws['UsedByAllUsers']){ - $exclude.= "(cn=".$ws['Name']."$)"; - } - } - }else{ - foreach(split(',', $this->sambaUserWorkstations) as $ws){ - $exclude.= "(cn=$ws$)"; - } - } - if ($exclude != ""){ - $exclude= "(!(|$exclude))"; - } - $regex= $sambafilter['regex']; - $filter= "(&(objectClass=sambaSAMAccount)$exclude(uid=*$)(|(uid=$regex)(cn=$regex)))"; - $res= get_list($filter, "winworkstation", $sambafilter['depselect'], array("uid"), GL_SUBSEARCH | GL_SIZELIMIT); - - $wslist= array(); - foreach ($res as $attrs){ - $wslist[]= preg_replace('/\$/', '', $attrs['uid'][0]); - } - asort($wslist); - - $smarty->assign("search_image", get_template_path('images/lists/search.png')); - $smarty->assign("launchimage", get_template_path('images/lists/action.png')); - $smarty->assign("tree_image", get_template_path('images/lists/search-subtree.png')); - $smarty->assign("deplist", $this->config->idepartments); - $smarty->assign("alphabet", generate_alphabet()); - foreach( array("depselect", "regex") as $type){ - $smarty->assign("$type", $sambafilter[$type]); - } - $smarty->assign("hint", print_sizelimit_warning()); - $smarty->assign("wslist", $wslist); - $smarty->assign("apply", apply_filter()); - $display= $smarty->fetch (get_template_path('samba3_workstations.tpl', TRUE, - dirname(__FILE__))); - return ($display); + // Build up blocklist + session::set('filterBlacklist', array('cn' => preg_split('/,/',$this->sambaUserWorkstations))); + return($this->trustSelect->execute()); } - /* Fill calendar */ - $days= array(); - for($d= 1; $d<32; $d++){ - $days[]= $d; - } - $years= array(); - for($y= $date['year']-4; $y<$date['year']+4; $y++){ - $years[]= $y; - } - $months= msgPool::months(); - $smarty->assign("day", $date["mday"]); - $smarty->assign("days", $days); - $smarty->assign("months", $months); - $smarty->assign("month", $date["mon"]-1); - $smarty->assign("years", $years); - $smarty->assign("year", $date["year"]); - - $sambaLogonTime_days= array(); - for($d= 1; $d<32; $d++){ - $sambaLogonTime_days[]= $d; - } - $sambaLogonTime_years= array(); - for($y= $date['year']-4; $y<$date['year']+4; $y++){ - $sambaLogonTime_years[]= $y; - } - $sambaLogonTime_months= msgPool::months(); - $smarty->assign("sambaLogonTime_day", $sambaLogonTime_date["mday"]); - $smarty->assign("sambaLogonTime_days", $sambaLogonTime_days); - $smarty->assign("sambaLogonTime_months", $sambaLogonTime_months); - $smarty->assign("sambaLogonTime_month", $sambaLogonTime_date["mon"]-1); - $smarty->assign("sambaLogonTime_years", $sambaLogonTime_years); - $smarty->assign("sambaLogonTime_year", $sambaLogonTime_date["year"]); - - $sambaLogoffTime_days= array(); - for($d= 1; $d<32; $d++){ - $sambaLogoffTime_days[]= $d; - } - $sambaLogoffTime_years= array(); - for($y= $date['year']-4; $y<$date['year']+4; $y++){ - $sambaLogoffTime_years[]= $y; - } - $sambaLogoffTime_months= msgPool::months(); - $smarty->assign("sambaLogoffTime_day", $sambaLogoffTime_date["mday"]); - $smarty->assign("sambaLogoffTime_days", $sambaLogoffTime_days); - $smarty->assign("sambaLogoffTime_months", $sambaLogoffTime_months); - $smarty->assign("sambaLogoffTime_month", $sambaLogoffTime_date["mon"]-1); - $smarty->assign("sambaLogoffTime_years", $sambaLogoffTime_years); - $smarty->assign("sambaLogoffTime_year", $sambaLogoffTime_date["year"]); - - $sambaKickoffTime_days= array(); - for($d= 1; $d<32; $d++){ - $sambaKickoffTime_days[]= $d; - } - $sambaKickoffTime_years= array(); - for($y= $date['year']-4; $y<$date['year']+4; $y++){ - $sambaKickoffTime_years[]= $y; - } - $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); - $smarty->assign("sambaKickoffTime_months", $sambaKickoffTime_months); - $smarty->assign("sambaKickoffTime_month", $sambaKickoffTime_date["mon"]-1); - $smarty->assign("sambaKickoffTime_years", $sambaKickoffTime_years); - $smarty->assign("sambaKickoffTime_year", $sambaKickoffTime_date["year"]); - /* Fill boxes */ - if ($this->samba3){ - $domains= array(); - foreach($this->config->data['SERVERS']['SAMBA'] as $name => $content){ - $domains[]= $name; - } - $smarty->assign("domains", $domains); + $domains= array(); + foreach($this->config->data['SERVERS']['SAMBA'] as $name => $content){ + $domains[]= $name; } + $smarty->assign("domains", $domains); $letters= array(""); for ($i= 68; $i<91; $i++){ $letters[]= chr($i).":"; @@ -516,88 +369,87 @@ class sambaAccount extends plugin $smarty->assign("drives", $letters); /* Fill terminal server settings */ - if ($this->samba3){ - foreach ($this->ctxattributes as $attr){ - /* Fill common attributes */ - if (isset($this->mungedObject->ctx[$attr])){ - $smarty->assign("$attr", $this->mungedObject->ctx[$attr]); - // Set field to blank if value is 0 - if(in_array($attr, array("CtxMaxConnectionTime", "CtxMaxDisconnectionTime", "CtxMaxIdleTime"))) { - if($this->mungedObject->ctx[$attr] == 0) { - $smarty->assign("$attr", ""); - } + foreach ($this->ctxattributes as $attr){ + /* Fill common attributes */ + if (isset($this->mungedObject->ctx[$attr])){ + $smarty->assign("$attr", $this->mungedObject->ctx[$attr]); + // Set field to blank if value is 0 + if(in_array($attr, array("CtxMaxConnectionTime", "CtxMaxDisconnectionTime", "CtxMaxIdleTime"))) { + if($this->mungedObject->ctx[$attr] == 0) { + $smarty->assign("$attr", ""); } - } else { - $smarty->assign("$attr", ""); } + } else { + $smarty->assign("$attr", ""); } + } - /* Assign enum values for preset items */ - $shadowModeVals= array( "0" => _("disabled"), - "1" => _("input on, notify on"), - "2" => _("input on, notify off"), - "3" => _("input off, notify on"), - "4" => _("input off, nofify off")); + /* Assign enum values for preset items */ + $shadowModeVals= array( "0" => _("disabled"), + "1" => _("input on, notify on"), + "2" => _("input on, notify off"), + "3" => _("input off, notify on"), + "4" => _("input off, nofify off")); - $brokenConnModeVals= array( "0" => _("disconnect"), - "1" => _("reset")); + $brokenConnModeVals= array( "0" => _("disconnect"), + "1" => _("reset")); - $reConnModeVals= array( "0" => _("from any client"), - "1" => _("from previous client only")); + $reConnModeVals= array( "0" => _("from any client"), + "1" => _("from previous client only")); - /* Fill preset items */ - $smarty->assign("shadow", $shadowModeVals); - $smarty->assign("brokenconn", $brokenConnModeVals); - $smarty->assign("reconn", $reConnModeVals); + /* Fill preset items */ + $smarty->assign("shadow", $shadowModeVals); + $smarty->assign("brokenconn", $brokenConnModeVals); + $smarty->assign("reconn", $reConnModeVals); - /* Fill preset items with values */ - $smarty->assign("shadowmode", $this->mungedObject->getShadow()); - $smarty->assign("brokenconnmode", $this->mungedObject->getBrokenConn()); - $smarty->assign("reconnmode", $this->mungedObject->getReConn()); + /* Fill preset items with values */ + $smarty->assign("shadowmode", $this->mungedObject->getShadow()); + $smarty->assign("brokenconnmode", $this->mungedObject->getBrokenConn()); + $smarty->assign("reconnmode", $this->mungedObject->getReConn()); - if(session::get('js')){ - /* Set form elements to disabled/enable state */ - $smarty->assign("tsloginstate", $this->mungedObject->getTsLogin()?"":"disabled"); + if(session::get('js')){ + /* Set form elements to disabled/enable state */ + $smarty->assign("tsloginstate", $this->mungedObject->getTsLogin()?"":"disabled"); - $smarty->assign("inheritstate", ""); - if($this->acl_is_writeable("AllowLoginOnTerminalServer",$SkipWrite)){ - $smarty->assign("inheritstate", $this->mungedObject->getInheritMode()?"disabled":""); - } - }else{ - $smarty->assign("tsloginstate", ""); - $smarty->assign("inheritstate", ""); - } - - /* Set checkboxes to checked or unchecked state */ - $smarty->assign("tslogin", $this->mungedObject->getTsLogin()?"checked":""); - $smarty->assign("inherit", $this->mungedObject->getInheritMode()?"checked":""); - $smarty->assign("connectclientdrives", - $this->mungedObject->getConnectClientDrives()?"checked":""); - $smarty->assign("connectclientprinters", - $this->mungedObject->getConnectClientPrinters()?"checked":""); - $smarty->assign("defaultprinter", - $this->mungedObject->getDefaultPrinter()?"checked":""); - $smarty->assign("CtxMaxConnectionTimeF", - $this->mungedObject->getCtxMaxConnectionTimeF()?"checked":""); - $smarty->assign("CtxMaxDisconnectionTimeF", - $this->mungedObject->getCtxMaxDisconnectionTimeF()?"checked":""); - $smarty->assign("CtxMaxIdleTimeF", - $this->mungedObject->getCtxMaxIdleTimeF()?"checked":""); + $smarty->assign("inheritstate", ""); + if($this->acl_is_writeable("AllowLoginOnTerminalServer",$SkipWrite)){ + $smarty->assign("inheritstate", $this->mungedObject->getInheritMode()?"disabled":""); + } + }else{ + $smarty->assign("tsloginstate", ""); + $smarty->assign("inheritstate", ""); + } - - /* Fill sambaUserWorkstations */ - $ws= split(",", $this->sambaUserWorkstations); - sort($ws); - - /* Tidy checks for empty option, and smarty will produce one if array[0]="" */ - if(($ws[0]=="")&&(count($ws)==1)) $ws=array(); + /* Set checkboxes to checked or unchecked state */ + $smarty->assign("tslogin", $this->mungedObject->getTsLogin()?"checked":""); + $smarty->assign("inherit", $this->mungedObject->getInheritMode()?"checked":""); + $smarty->assign("connectclientdrives", + $this->mungedObject->getConnectClientDrives()?"checked":""); + $smarty->assign("connectclientprinters", + $this->mungedObject->getConnectClientPrinters()?"checked":""); + $smarty->assign("defaultprinter", + $this->mungedObject->getDefaultPrinter()?"checked":""); + $smarty->assign("CtxMaxConnectionTimeF", + $this->mungedObject->getCtxMaxConnectionTimeF()?"checked":""); + $smarty->assign("CtxMaxDisconnectionTimeF", + $this->mungedObject->getCtxMaxDisconnectionTimeF()?"checked":""); + $smarty->assign("CtxMaxIdleTimeF", + $this->mungedObject->getCtxMaxIdleTimeF()?"checked":""); - if($this->multiple_support_active){ - $smarty->assign("multiple_workstations",$this->multiple_sambaUserWorkstations); - } + + /* Fill sambaUserWorkstations */ + $ws= explode(",", $this->sambaUserWorkstations); + sort($ws); + + /* Tidy checks for empty option, and smarty will produce one if array[0]="" */ + if(($ws[0]=="")&&(count($ws)==1)) $ws=array(); - $smarty->assign("workstations", $ws); - } + if($this->multiple_support_active){ + $smarty->assign("multiple_workstations",$this->multiple_sambaUserWorkstations); + } + + $smarty->assign("workstations", $ws); + /* Variables */ foreach($this->attributes as $val){ @@ -620,18 +472,17 @@ class sambaAccount extends plugin $smarty->assign("flagsN", ""); } - if($this->samba3){ - if ($this->sambaPwdCanChange=="1"){ - $smarty->assign("flagsP", "checked"); - } else { - $smarty->assign("flagsP", ""); - } - }else{ - if ($this->pwdCanChange=="1"){ - $smarty->assign("flagsP", "checked"); - } else { - $smarty->assign("flagsP", ""); - } + // check if password never expires + if (is_integer(strpos($this->sambaAcctFlags, "X"))) { + $smarty->assign("flagsX", "checked"); + } else { + $smarty->assign("flagsX", ""); + } + + if ($this->sambaPwdCanChange=="1"){ + $smarty->assign("flagsP", "checked"); + } else { + $smarty->assign("flagsP", ""); } if ($this->password_expires=="1"){ @@ -657,10 +508,8 @@ class sambaAccount extends plugin /* In case of javascript, disable some fields on demand */ - if ($this->samba3){ - foreach($this->mungedObject->getOnDemandFlags() as $key => $value) { - $smarty->assign("$key", "$value"); - } + foreach($this->mungedObject->getOnDemandFlags() as $key => $value) { + $smarty->assign("$key", "$value"); } @@ -675,7 +524,7 @@ class sambaAccount extends plugin "inherit","CtxWorkDirectory","CtxInitialProgram","CtxMaxConnectionTimeF","CtxMaxConnectionTime","CtxMaxDisconnectionTimeF", "CtxMaxDisconnectionTime","CtxMaxIdleTimeF","CtxMaxIdleTime","connectclientdrives", "onnectclientprinters","defaultprinter","shadow","brokenconn", - "reconn","allow_pwchange","connectclientprinters","no_password_required","temporary_disable", + "reconn","allow_pwchange","connectclientprinters","no_expiry","no_password_required","temporary_disable", "password_expires","logon_time_set","logoff_time_set","kickoff_time_set","SetSambaLogonHours", "workstation_list") as $attr){ if(in_array($attr,$this->multi_boxes)){ @@ -721,14 +570,11 @@ class sambaAccount extends plugin } } $smarty->assign("additional_info_PwdMustChange",$additional_info_PwdMustChange); + $smarty->assign("no_expiry",$this->no_expiry); /* Show main page */ $smarty->assign("multiple_support",$this->multiple_support_active); - if ($this->samba3){ - $display.= $smarty->fetch (get_template_path('samba3.tpl', TRUE, dirname(__FILE__))); - } else { - $display.= $smarty->fetch (get_template_path('samba2.tpl', TRUE, dirname(__FILE__))); - } + $display.= $smarty->fetch (get_template_path('samba3.tpl', TRUE, dirname(__FILE__))); return ($display); } @@ -790,7 +636,7 @@ class sambaAccount extends plugin /* User attributes */ $user_attributes = array("sambaBadPasswordTime","sambaPwdLastSet","sambaLogonTime","sambaLogoffTime", - "sambaKickoffTime","sambaPwdCanChange","sambaPwdMustChange","sambaBadPasswordCount"); + "sambaKickoffTime","sambaPwdCanChange","sambaPwdMustChange","sambaBadPasswordCount", "sambaSID"); /* Get samba SID object and parse settings. */ @@ -814,9 +660,17 @@ class sambaAccount extends plugin } if($this->password_expires){ $sambaPwdMustChange = $this->sambaPwdMustChange; + } else { + if (is_numeric($sambaPwdMustChange)) { + $sambaPwdMustChange= date('d.m.Y', $sambaPwdMustChange); + } } if($this->kickoff_time_set){ $sambaKickoffTime = $this->sambaKickoffTime; + } else { + if (is_numeric($sambaKickoffTime)) { + $sambaKickoffTime= date('d.m.Y', $sambaKickoffTime); + } } $sambaPwdCanChange = $this->sambaPwdCanChange; @@ -938,16 +792,12 @@ class sambaAccount extends plugin */ if($sambaKickoffTime == "unset" || empty($sambaKickoffTime)){ $sambaKickoffTime = "("._("unset").")"; - }else{ - $sambaKickoffTime = date("d.m.Y H:i:s",$sambaKickoffTime); } /* sambaPwdMustChange: Timestamp of when the password will expire */ if($sambaPwdMustChange == "unset" || empty($sambaPwdMustChange)){ $sambaPwdMustChange = "("._("unset").")"; - }else{ - $sambaPwdMustChange = date("d.m.Y H:i:s",$sambaPwdMustChange); } /* sambaPwdCanChange: Timestamp of when the user is allowed to update the password @@ -982,14 +832,24 @@ class sambaAccount extends plugin "\n