From 5930ef17b5fa8dbc71dc63f8b731f7fa9ab8c132 Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Mon, 8 Jun 2015 18:33:38 +0000 Subject: [PATCH] added time zone setting to server profile --- lam/HISTORY | 1 + lam/docs/manual-sources/howto.xml | 12 ++++- .../manual-sources/images/configProfiles5.png | Bin 7795 -> 10612 bytes lam/help/help.inc | 4 +- lam/lib/account.inc | 11 +++++ lam/lib/config.inc | 28 ++++++++++- lam/lib/modules/sambaSamAccount.inc | 46 +++--------------- lam/templates/config/confmain.php | 15 ++++++ 8 files changed, 75 insertions(+), 42 deletions(-) diff --git a/lam/HISTORY b/lam/HISTORY index 85e4e456..6bc5fca0 100644 --- a/lam/HISTORY +++ b/lam/HISTORY @@ -8,6 +8,7 @@ June 2015 - Personal: allow to add ou=addressbook subentry for users (RFE 117) - Unix: support auto-UID/GID with msSFU30DomainInfo - Windows groups: support editing of member of + - Central time zone setting in server profile - LAM Pro: -> Password Self Reset: added 389 Directory Server schema file -> Support for groupOfMembers (RFE 121) diff --git a/lam/docs/manual-sources/howto.xml b/lam/docs/manual-sources/howto.xml index 48bea89b..c1fde836 100644 --- a/lam/docs/manual-sources/howto.xml +++ b/lam/docs/manual-sources/howto.xml @@ -987,7 +987,15 @@ Have fun! Version specific upgrade instructions
- 4.5 -> 5.0 + 4.9 -> 5.0 + + Samba 3: If you used logon hours then you need to set the + correct time zone on tab "Generel settings" in server + profile. +
+ +
+ 4.5 -> 4.9 No special actions needed.
@@ -1594,6 +1602,8 @@ Have fun! select the default language for this server profile. The language setting may be overriden at the LAM login page. + Please also set your time zone here. + diff --git a/lam/docs/manual-sources/images/configProfiles5.png b/lam/docs/manual-sources/images/configProfiles5.png index 2ba603f70095fb01802d27724212865babf05703..57a61744bdc1465b5220ca867cefd472419b5a7d 100644 GIT binary patch literal 10612 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 E4`DO4Hvj+t literal 7795 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 DiS#$! diff --git a/lam/help/help.inc b/lam/help/help.inc index ac8a40f4..69b8f546 100644 --- a/lam/help/help.inc +++ b/lam/help/help.inc @@ -4,7 +4,7 @@ $Id$ This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) Copyright (C) 2003 - 2006 Michael Duergner - 2003 - 2014 Roland Gruber + 2003 - 2015 Roland Gruber This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -104,6 +104,8 @@ $helpArray = array ( "Text" => _("If enabled then the default language will be enforced and cannot be chosen by the user.")), "212" => array ("Headline" => _("Change password"), "Text" => _("If you want to change the current preferences password, please enter it here.")), + "213" => array ("Headline" => _('Time zone'), + "Text" => _('Please select your local time zone.')), "214" => array ("Headline" => _("Cache timeout"), "Text" => _("This is the time in minutes which LAM caches its LDAP searches. Shorter times will stress LDAP more but decrease the possibility that changes are not identified.")), "215" => array ("Headline" => _("Access level"), diff --git a/lam/lib/account.inc b/lam/lib/account.inc index 500225dd..6765093b 100644 --- a/lam/lib/account.inc +++ b/lam/lib/account.inc @@ -1256,4 +1256,15 @@ function getCallingURL() { return $url; } +/** + * Returns the offset in hours from configured time zone to GMT. + * + * @return int offset + */ +function getTimeZoneOffsetHours() { + $timeZone = $_SESSION['config']->getTimeZone(); + $dtz = new DateTimeZone($timeZone); + return round($dtz->getOffset(new DateTime('UTC')) / 3600); +} + ?> diff --git a/lam/lib/config.inc b/lam/lib/config.inc index 7b0de246..7dd83a65 100644 --- a/lam/lib/config.inc +++ b/lam/lib/config.inc @@ -431,6 +431,8 @@ class LAMConfig { /** Default language */ private $defaultLanguage; + /** time zone */ + private $timeZone = 'Europe/London'; /** module settings */ private $moduleSettings = array(); @@ -519,7 +521,7 @@ class LAMConfig { "modules", "activeTypes", "types", "tools", "accessLevel", 'loginMethod', 'loginSearchSuffix', 'loginSearchFilter', 'searchLimit', 'lamProMailFrom', 'lamProMailReplyTo', 'lamProMailSubject', 'lamProMailText', 'lamProMailIsHTML', 'lamProMailAllowAlternateAddress', 'httpAuthentication', 'loginSearchDN', - 'loginSearchPassword'); + 'loginSearchPassword', 'timeZone'); /** @@ -691,6 +693,7 @@ class LAMConfig { if (!in_array("treesuffix", $saved)) array_push($file_array, "\n\n# suffix of tree view\n" . "# e.g. dc=yourdomain,dc=org\n" . "treesuffix: " . $this->treesuffix . "\n"); if (!in_array("defaultLanguage", $saved)) array_push($file_array, "\n\n# default language (a line from config/language)\n" . "defaultLanguage: " . $this->defaultLanguage . "\n"); + if (!in_array("timeZone", $saved)) array_push($file_array, "\n\n# time zone\n" . "timeZone: " . $this->timeZone . "\n"); if (!in_array("scriptPath", $saved)) array_push($file_array, "\n\n# Path to external Script\n" . "scriptPath: " . $this->scriptPath . "\n"); if (!in_array("scriptServer", $saved)) array_push($file_array, "\n\n# Servers of external script\n" . "scriptServer: " . $this->scriptServer . "\n"); if (!in_array("scriptRights", $saved)) array_push($file_array, "\n\n# Access rights for home directories\n" . "scriptRights: " . $this->scriptRights . "\n"); @@ -1022,6 +1025,29 @@ class LAMConfig { return true; } + /** + * Returns the time zone name. + * + * @return string time zone + */ + public function getTimeZone() { + return ($this->timeZone == null) ? 'Europe/London' : $this->timeZone; + } + + /** + * Sets the time zone name. + * + * @param string $value new time zone + * @return boolean true if $value has correct format + */ + public function setTimeZone($value) { + if (is_string($value)) { + $this->timeZone = $value; + return true; + } + return false; + } + /** * Returns the path to the external script * diff --git a/lam/lib/modules/sambaSamAccount.inc b/lam/lib/modules/sambaSamAccount.inc index 3e57b77e..83a20451 100644 --- a/lam/lib/modules/sambaSamAccount.inc +++ b/lam/lib/modules/sambaSamAccount.inc @@ -549,42 +549,13 @@ class sambaSamAccount extends baseModule implements passwordService { ); } // configuration options - $timezones = array( - "GMT-12: " . _("Eniwetok, Kwajalein") => '-12', - "GMT-11: " . _("Midway Island, Samoa") => '-11', - "GMT-10: " . _("Hawaii") => '-10', - "GMT-09: " . _("Alaska") => '-9', - "GMT-08: " . _("Pacific Time (US & Canada)") => '-8', - "GMT-07: " . _("Mountain Time (US & Canada)") => '-7', - "GMT-06: " . _("Central Time (US & Canada), Mexico City") => '-6', - "GMT-05: " . _("Eastern Time (US & Canada), Bogota") => '-5', - "GMT-04: " . _("Atlantic time (Canada), Caracas") => '-4', - "GMT-03: " . _("Brazil, Buenos Aires") => '-3', - "GMT-02: " . _("Mid-Atlantic") => '-2', - "GMT-01: " . _("Azores, Cape Verde Islands") => '-1', - 'GMT: ' . _("Western Europe Time, London, Lisbon") => '0', - "GMT+01: " . _("Central Europe Time, Paris, Berlin") => '1', - "GMT+02: " . _("Eastern Europe Time, South Africa") => '2', - "GMT+03: " . _("Baghdad, Riyadh, Moscow") => '3', - "GMT+04: " . _("Abu Dhabi, Muscat, Baku") => '4', - "GMT+05: " . _("Islamabad, Karachi") => '5', - "GMT+06: " . _("Almaty, Dhaka, Colombo") => '6', - "GMT+07: " . _("Bangkok, Hanoi, Jakarta") => '7', - "GMT+08: " . _("Beijing, Perth, Singapore") => '8', - "GMT+09: " . _("Tokyo, Seoul, Osaka, Yakutsk") => '9', - "GMT+10: " . _("East Australian Standard, Guam") => '10', - "GMT+11: " . _("Magadan, Solomon Islands") => '11', - "GMT+12: " . _("Auckland, Fiji, Kamchatka") => '12', - ); $configContainer = new htmlTable(); - $timezoneSelect = new htmlTableExtendedSelect('sambaSamAccount_timeZone', $timezones, array('0'), _("Time zone"), 'timeZone'); - $timezoneSelect->setHasDescriptiveElements(true); - $timezoneSelect->setSortElements(false); - $configContainer->addElement($timezoneSelect, true); + $disableLM = new htmlTable(); $yesNo = array(_('yes') => 'yes', _('no') => 'no'); $yesNoSelect = new htmlTableExtendedSelect('sambaSamAccount_lmHash', $yesNo, array('yes'), _("Disable LM hashes"), 'lmHash'); $yesNoSelect->setHasDescriptiveElements(true); - $configContainer->addElement($yesNoSelect, true); + $disableLM->addElement($yesNoSelect, true); + $configContainer->addElement($disableLM, true); $configContainer->addElement(new htmlSpacer(null, '10px'), true); $configHiddenLabelGroup = new htmlGroup(); $configHiddenLabelGroup->addElement(new htmlOutputText(_('Hidden options') . ' ')); @@ -975,9 +946,9 @@ class sambaSamAccount extends baseModule implements passwordService { $logonHoursNew = ''; for ($i = 0; $i < 21; $i++) { $part = strrev(substr($logonHours, $i * 8, 8)); - $byte[hi] = substr($part,0,4); - $byte[low] = substr($part,4,4); - $hex = $bitstring2hex[$byte[hi]].$bitstring2hex[$byte[low]]; + $byte['hi'] = substr($part,0,4); + $byte['low'] = substr($part,4,4); + $hex = $bitstring2hex[$byte['hi']].$bitstring2hex[$byte['low']]; $logonHoursNew = $logonHoursNew . $hex; } $this->attributes['sambaLogonHours'][0] = $logonHoursNew; @@ -1373,10 +1344,7 @@ class sambaSamAccount extends baseModule implements passwordService { */ function display_html_logonHours() { $return = new htmlTable(); - $timeZone = 0; - if (isset($this->moduleSettings['sambaSamAccount_timeZone']) && is_array($this->moduleSettings['sambaSamAccount_timeZone'])) { - $timeZone = $this->moduleSettings['sambaSamAccount_timeZone'][0]; - } + $timeZone = getTimeZoneOffsetHours(); $days = array(1 => _('Monday'), 2 => _('Tuesday'), 3 => _('Wednesday'), 4 => _('Thursday'), 5 => _('Friday'), 6 => _('Saturday'), 0 => _('Sunday')); if (!isset($this->attributes['sambaLogonHours'][0]) || ($this->attributes['sambaLogonHours'][0] == '')) { diff --git a/lam/templates/config/confmain.php b/lam/templates/config/confmain.php index 40b151dd..6a910500 100644 --- a/lam/templates/config/confmain.php +++ b/lam/templates/config/confmain.php @@ -303,8 +303,22 @@ if(!empty($possibleLanguages)) { else { $languageSettingsContent->addElement(new htmlStatusMessage('ERROR', "Unable to load available languages. Setting English as default language.")); } +$timezones = array(); +$timezones = array_merge($timezones, DateTimeZone::listIdentifiers(DateTimeZone::AFRICA)); +$timezones = array_merge($timezones, DateTimeZone::listIdentifiers(DateTimeZone::AMERICA)); +$timezones = array_merge($timezones, DateTimeZone::listIdentifiers(DateTimeZone::ANTARCTICA)); +$timezones = array_merge($timezones, DateTimeZone::listIdentifiers(DateTimeZone::ARCTIC)); +$timezones = array_merge($timezones, DateTimeZone::listIdentifiers(DateTimeZone::ASIA)); +$timezones = array_merge($timezones, DateTimeZone::listIdentifiers(DateTimeZone::ATLANTIC)); +$timezones = array_merge($timezones, DateTimeZone::listIdentifiers(DateTimeZone::AUSTRALIA)); +$timezones = array_merge($timezones, DateTimeZone::listIdentifiers(DateTimeZone::EUROPE)); +$timezones = array_merge($timezones, DateTimeZone::listIdentifiers(DateTimeZone::INDIAN)); +$timezones = array_merge($timezones, DateTimeZone::listIdentifiers(DateTimeZone::PACIFIC)); +$languageSettingsContent->addElement(new htmlTableExtendedSelect('timeZone', $timezones, array($conf->getTimeZone()), _('Time zone'), '213'), true); $languageSettings = new htmlFieldset($languageSettingsContent, _("Language settings"), '../../graphics/language.png'); $container->addElement($languageSettings, true); + + $container->addElement(new htmlSpacer(null, '10px'), true); // lamdaemon settings @@ -577,6 +591,7 @@ function checkInput() { if (!$conf->set_defaultLanguage($_POST['lang'])) { $errors[] = array("ERROR", _("Language is not defined!")); } + $conf->setTimeZone($_POST['timeZone']); if (!$conf->set_scriptpath($_POST['scriptpath'])) { $errors[] = array("ERROR", _("Script path is invalid!")); }