allow to sync expiration date (RFE 3147751)
This commit is contained in:
parent
a162f9f654
commit
8fa551882b
|
@ -3,6 +3,7 @@ April 2011 3.4.0
|
||||||
- Personal: added additional options for account profiles
|
- Personal: added additional options for account profiles
|
||||||
- Mail aliases: sort receipients (RFE 3170336)
|
- Mail aliases: sort receipients (RFE 3170336)
|
||||||
- Asterisk: support AstAccountType attribute
|
- Asterisk: support AstAccountType attribute
|
||||||
|
- Samba 3/Shadow: allow to sync expiration date (RFE 3147751)
|
||||||
- LAM Pro:
|
- LAM Pro:
|
||||||
-> support automount entries
|
-> support automount entries
|
||||||
-> Zarafa groups: allow combination with group of names
|
-> Zarafa groups: allow combination with group of names
|
||||||
|
|
|
@ -4,7 +4,7 @@ $Id$
|
||||||
|
|
||||||
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
||||||
Copyright (C) 2003 - 2006 Tilo Lutz
|
Copyright (C) 2003 - 2006 Tilo Lutz
|
||||||
2005 - 2010 Roland Gruber
|
2005 - 2011 Roland Gruber
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -970,12 +970,19 @@ class sambaSamAccount extends baseModule implements passwordService {
|
||||||
// determine action
|
// determine action
|
||||||
if (strpos($buttonName, '_change') !== false) {
|
if (strpos($buttonName, '_change') !== false) {
|
||||||
// set new time
|
// set new time
|
||||||
$this->attributes[$attr][0] = gmmktime(0, 0, 0, intval($_POST['expire_mon']), intval($_POST['expire_day']),
|
$this->setExpirationDate($_POST['expire_yea'], $_POST['expire_mon'], $_POST['expire_day']);
|
||||||
intval($_POST['expire_yea']));
|
if (isset($_POST['syncShadow']) && ($_POST['syncShadow'] == 'on')) {
|
||||||
|
$this->getAccountContainer()->getAccountModule('shadowAccount')->setExpirationDate(
|
||||||
|
$_POST['expire_yea'], $_POST['expire_mon'], $_POST['expire_day']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
elseif (strpos($buttonName, '_del') !== false) {
|
elseif (strpos($buttonName, '_del') !== false) {
|
||||||
// remove attribute value
|
// remove attribute value
|
||||||
unset($this->attributes[$attr]);
|
unset($this->attributes[$attr]);
|
||||||
|
if (isset($_POST['syncShadow']) && ($_POST['syncShadow'] == 'on')) {
|
||||||
|
$this->getAccountContainer()->getAccountModule('shadowAccount')->setExpirationDate(
|
||||||
|
null, null, null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
@ -1352,12 +1359,16 @@ class sambaSamAccount extends baseModule implements passwordService {
|
||||||
$date = getdate($time);
|
$date = getdate($time);
|
||||||
for ( $i=1; $i<=31; $i++ ) $mday[] = $i;
|
for ( $i=1; $i<=31; $i++ ) $mday[] = $i;
|
||||||
for ( $i=1; $i<=12; $i++ ) $mon[] = $i;
|
for ( $i=1; $i<=12; $i++ ) $mon[] = $i;
|
||||||
for ( $i=2003; $i<=2030; $i++ ) $year[] = $i;
|
for ( $i=2003; $i<=2050; $i++ ) $year[] = $i;
|
||||||
$return->addElement(new htmlOutputText($text));
|
$return->addElement(new htmlOutputText($text));
|
||||||
$return->addElement(new htmlSelect('expire_day', $mday, array($date['mday'])));
|
$return->addElement(new htmlSelect('expire_day', $mday, array($date['mday'])));
|
||||||
$return->addElement(new htmlSelect('expire_mon', $mon, array($date['mon'])));
|
$return->addElement(new htmlSelect('expire_mon', $mon, array($date['mon'])));
|
||||||
$return->addElement(new htmlSelect('expire_yea', $year, array($date['year'])));
|
$return->addElement(new htmlSelect('expire_yea', $year, array($date['year'])));
|
||||||
$return->addElement(new htmlHelpLink($help), true);
|
$return->addElement(new htmlHelpLink($help), true);
|
||||||
|
if ($this->getAccountContainer()->getAccountModule('shadowAccount') != null) {
|
||||||
|
$return->addElement(new htmlTableExtendedInputCheckbox('syncShadow', false, _('Set also for Shadow')), true);
|
||||||
|
}
|
||||||
|
$return->addElement(new htmlSpacer(null, '10px'), true);
|
||||||
$buttons = new htmlTable();
|
$buttons = new htmlTable();
|
||||||
$buttons->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'change' . $attr, _('Change')));
|
$buttons->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'change' . $attr, _('Change')));
|
||||||
if (isset($this->attributes[$attr][0])) {
|
if (isset($this->attributes[$attr][0])) {
|
||||||
|
@ -2237,6 +2248,23 @@ class sambaSamAccount extends baseModule implements passwordService {
|
||||||
return $this->cachedDomainList;
|
return $this->cachedDomainList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the expiration date of this account.
|
||||||
|
* If all parameters are null the expiration date will be removed.
|
||||||
|
*
|
||||||
|
* @param String $year year (e.g. 2040)
|
||||||
|
* @param String $month month (e.g. 8)
|
||||||
|
* @param String $day day (e.g. 27)
|
||||||
|
*/
|
||||||
|
public function setExpirationDate($year, $month, $day) {
|
||||||
|
if (($year == null) && ($month == null) && ($day == null)) {
|
||||||
|
unset($this->attributes['sambaKickoffTime']);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$this->attributes['sambaKickoffTime'][0] = gmmktime(0, 0, 0, intval($month), intval($day),
|
||||||
|
intval($year));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -376,12 +376,19 @@ class shadowAccount extends baseModule implements passwordService {
|
||||||
$errors = array();
|
$errors = array();
|
||||||
// set expiration date
|
// set expiration date
|
||||||
if (isset($_POST['form_subpage_shadowAccount_attributes_change'])) {
|
if (isset($_POST['form_subpage_shadowAccount_attributes_change'])) {
|
||||||
$this->attributes['shadowExpire'][0] = intval(gmmktime(0, 0, 0, intval($_POST['shadowExpire_mon']), intval($_POST['shadowExpire_day']),
|
$this->setExpirationDate($_POST['shadowExpire_yea'], $_POST['shadowExpire_mon'], $_POST['shadowExpire_day']);
|
||||||
intval($_POST['shadowExpire_yea']))/3600/24);
|
if (isset($_POST['syncSamba']) && ($_POST['syncSamba'] == 'on')) {
|
||||||
|
$this->getAccountContainer()->getAccountModule('sambaSamAccount')->setExpirationDate(
|
||||||
|
$_POST['shadowExpire_yea'], $_POST['shadowExpire_mon'], $_POST['shadowExpire_day']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// remove expiration date
|
// remove expiration date
|
||||||
elseif (isset($_POST['form_subpage_shadowAccount_attributes_del'])) {
|
elseif (isset($_POST['form_subpage_shadowAccount_attributes_del'])) {
|
||||||
unset($this->attributes['shadowExpire']);
|
unset($this->attributes['shadowExpire']);
|
||||||
|
if (isset($_POST['syncSamba']) && ($_POST['syncSamba'] == 'on')) {
|
||||||
|
$this->getAccountContainer()->getAccountModule('sambaSamAccount')->setExpirationDate(
|
||||||
|
null, null, null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return $errors;
|
return $errors;
|
||||||
}
|
}
|
||||||
|
@ -400,7 +407,7 @@ class shadowAccount extends baseModule implements passwordService {
|
||||||
$date = getdate($shAccExpirationDate*3600*24);
|
$date = getdate($shAccExpirationDate*3600*24);
|
||||||
for ( $i=1; $i<=31; $i++ ) $mday[] = $i;
|
for ( $i=1; $i<=31; $i++ ) $mday[] = $i;
|
||||||
for ( $i=1; $i<=12; $i++ ) $mon[] = $i;
|
for ( $i=1; $i<=12; $i++ ) $mon[] = $i;
|
||||||
for ( $i=2003; $i<=2030; $i++ ) $year[] = $i;
|
for ( $i=2003; $i<=2050; $i++ ) $year[] = $i;
|
||||||
$return->addElement(new htmlOutputText(_('Account expiration date')));
|
$return->addElement(new htmlOutputText(_('Account expiration date')));
|
||||||
$expTable = new htmlTable();
|
$expTable = new htmlTable();
|
||||||
$expTable->addElement(new htmlSelect('shadowExpire_day', $mday, array($date['mday'])));
|
$expTable->addElement(new htmlSelect('shadowExpire_day', $mday, array($date['mday'])));
|
||||||
|
@ -408,6 +415,10 @@ class shadowAccount extends baseModule implements passwordService {
|
||||||
$expTable->addElement(new htmlSelect('shadowExpire_yea', $year, array($date['year'])));
|
$expTable->addElement(new htmlSelect('shadowExpire_yea', $year, array($date['year'])));
|
||||||
$return->addElement($expTable);
|
$return->addElement($expTable);
|
||||||
$return->addElement(new htmlHelpLink('shadowExpire'), true);
|
$return->addElement(new htmlHelpLink('shadowExpire'), true);
|
||||||
|
if ($this->getAccountContainer()->getAccountModule('sambaSamAccount') != null) {
|
||||||
|
$return->addElement(new htmlTableExtendedInputCheckbox('syncSamba', false, _('Set also for Samba 3')), true);
|
||||||
|
}
|
||||||
|
$return->addElement(new htmlSpacer(null, '10px'), true);
|
||||||
$buttonTable = new htmlTable();
|
$buttonTable = new htmlTable();
|
||||||
$buttonTable->addElement(new htmlAccountPageButton('shadowAccount', 'attributes', 'change', _('Change')));
|
$buttonTable->addElement(new htmlAccountPageButton('shadowAccount', 'attributes', 'change', _('Change')));
|
||||||
if (isset($this->attributes['shadowExpire'][0])) {
|
if (isset($this->attributes['shadowExpire'][0])) {
|
||||||
|
@ -596,6 +607,23 @@ class shadowAccount extends baseModule implements passwordService {
|
||||||
}
|
}
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the expiration date of this account.
|
||||||
|
* If all parameters are null the expiration date will be removed.
|
||||||
|
*
|
||||||
|
* @param String $year year (e.g. 2040)
|
||||||
|
* @param String $month month (e.g. 8)
|
||||||
|
* @param String $day day (e.g. 27)
|
||||||
|
*/
|
||||||
|
public function setExpirationDate($year, $month, $day) {
|
||||||
|
if (($year == null) && ($month == null) && ($day == null)) {
|
||||||
|
unset($this->attributes['shadowExpire']);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$this->attributes['shadowExpire'][0] = intval(gmmktime(0, 0, 0, intval($month), intval($day),
|
||||||
|
intval($year))/3600/24);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue