diff --git a/lam/HISTORY b/lam/HISTORY
index ffce3a82..55d6d950 100644
--- a/lam/HISTORY
+++ b/lam/HISTORY
@@ -3,6 +3,7 @@ March 2012 3.7
- Personal: added labeledURI and cosmetic changes, description is now multi-valued (RFE 3446363)
- File upload: support custom scripts postCreate (LAM Pro)
- New translation: Slovakian
+ - removed phpGroupWare support (project no longer exists)
- LAM Pro:
-> Password self reset can send password notification mails
-> Zarafa archiver support
diff --git a/lam/docs/manual-sources/howto.xml b/lam/docs/manual-sources/howto.xml
index ebb138c2..edb45bb1 100644
--- a/lam/docs/manual-sources/howto.xml
+++ b/lam/docs/manual-sources/howto.xml
@@ -1854,24 +1854,6 @@ Have fun!
-
- phpGroupWare
-
- You may manage several attributes of phpGroupWare users inside
- LAM. This includes the expiration date and account status. You may
- also check when the user logged in the last time and from
- where.
-
-
-
-
-
-
-
-
-
-
Asterisk
@@ -2174,22 +2156,6 @@ Have fun!
-
- phpGroupWare
-
- LAM can add and remove the phpGroupWare extension for group
- accounts. There are no additional attributes that may be
- managed.
-
-
-
-
-
-
-
-
-
-
Quota
@@ -3276,20 +3242,6 @@ Run slapindex to rebuild the index.
- phpGroupWare:
-
- Account types:
-
-
-
- Users (Personal + Unix + phpGroupWare)
-
-
-
- Groups (Unix + phpGroupWare)
-
-
-
Zarafa:
Account types:
@@ -4362,25 +4314,6 @@ Run slapindex to rebuild the index.
This account type is only available in LAM Pro.
-
-
-
-
-
-
-
- phpGroupWare
-
- phpGroupwareUser, phpGroupwareGroup
-
- phpgroupware.schema
-
- http://www.phpgroupware.org/
-
-
-
-
diff --git a/lam/docs/manual-sources/images/mod_phpGroupWareGroup.png b/lam/docs/manual-sources/images/mod_phpGroupWareGroup.png
deleted file mode 100644
index 5f75d357..00000000
Binary files a/lam/docs/manual-sources/images/mod_phpGroupWareGroup.png and /dev/null differ
diff --git a/lam/docs/manual-sources/images/mod_phpGroupWareUser.png b/lam/docs/manual-sources/images/mod_phpGroupWareUser.png
deleted file mode 100644
index 7fca0311..00000000
Binary files a/lam/docs/manual-sources/images/mod_phpGroupWareUser.png and /dev/null differ
diff --git a/lam/docs/manual-sources/images/schema_phpgroupware.png b/lam/docs/manual-sources/images/schema_phpgroupware.png
deleted file mode 100644
index 93f2e13e..00000000
Binary files a/lam/docs/manual-sources/images/schema_phpgroupware.png and /dev/null differ
diff --git a/lam/lib/modules/phpGroupwareGroup.inc b/lam/lib/modules/phpGroupwareGroup.inc
deleted file mode 100644
index 61a5311b..00000000
--- a/lam/lib/modules/phpGroupwareGroup.inc
+++ /dev/null
@@ -1,187 +0,0 @@
-autoAddObjectClasses = false;
- }
-
- /**
- * Returns meta data that is interpreted by parent class
- *
- * @return array array with meta data
- *
- * @see baseModule::get_metaData()
- */
- public function get_metaData() {
- $return = array();
- // icon
- $return['icon'] = 'phpGroupware.png';
- // manages host accounts
- $return["account_types"] = array("group");
- // alias name
- $return["alias"] = "phpGroupWare";
- // module dependencies
- $return['dependencies'] = array('depends' => array(array('posixGroup', 'rfc2307bisPosixGroup')), 'conflicts' => array());
- // LDAP filter
- $return["ldap_filter"] = array('or' => "(objectClass=phpgwGroup)");
- // managed object classes
- $return['objectClasses'] = array('phpgwGroup');
- // managed attributes
- $return['attributes'] = array('phpgwGroupID');
- // help Entries
- $return['help'] = array(
- 'extension' => array(
- "Headline" => _("Add phpGroupWare extension"),
- "Text" => _("If you set this to \"true\" then the phpGroupware extension will be added.")
- )
- );
- // upload dependencies
- $return['upload_preDepends'] = array('posixGroup', 'rfc2307bisPosixGroup');
- // upload fields
- $return['upload_columns'] = array(
- array(
- 'name' => 'phpGroupwareGroup_extension',
- 'description' => _('Add phpGroupWare extension'),
- 'help' => 'extension',
- 'example' => 'true',
- 'values' => 'true, false'
- )
- );
- return $return;
- }
-
- /**
- * Returns the HTML meta data for the main account page.
- *
- * @return htmlElement HTML meta data
- */
- public function display_html_attributes() {
- $return = new htmlTable();
- if (isset($this->attributes['objectClass']) && in_array('phpgwGroup', $this->attributes['objectClass'])) {
- $return->addElement(new htmlButton('remObjectClass', _('Remove phpGroupWare extension')));
- }
- else {
- $return->addElement(new htmlButton('addObjectClass', _('Add phpGroupWare extension')));
- }
- return $return;
- }
-
- /**
- * Processes user input of the primary module page.
- * It checks if all input values are correct and updates the associated LDAP attributes.
- *
- * @return array list of info/error messages
- */
- public function process_attributes() {
- if (isset($_POST['addObjectClass'])) {
- $this->attributes['objectClass'][] = 'phpgwGroup';
- }
- elseif (isset($_POST['remObjectClass'])) {
- $this->attributes['objectClass'] = array_delete(array('phpgwGroup'), $this->attributes['objectClass']);
- if (isset($this->attributes['phpgwGroupID'])) unset($this->attributes['phpgwGroupID']);
- }
- return array();
- }
-
-
- /**
- * Returns a list of modifications which have to be made to the LDAP account.
- *
- * @return array list of modifications
- *
This function returns an array with 3 entries:
- *
array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... )
- *
DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid)
- *
"add" are attributes which have to be added to LDAP entry
- *
"remove" are attributes which have to be removed from LDAP entry
- *
"modify" are attributes which have to been modified in LDAP entry
- *
"info" are values with informational value (e.g. to be used later by pre/postModify actions)
- */
- public function save_attributes() {
- if (!in_array('phpgwGroup', $this->attributes['objectClass'])) {
- return parent::save_attributes();
- }
- // set phpgwGroupID to GID number for new accounts
- $this->attributes['phpgwGroupID'][0] = $this->getGID();
- return parent::save_attributes();
- }
-
- /**
- * Gets the GID number from the Unix group module.
- *
- * @return String GID number
- */
- private function getGID() {
- $modules = array('posixGroup', 'rfc2307bisPosixGroup');
- for ($i = 0; $i < sizeof($modules); $i++) {
- if ($this->getAccountContainer()->getAccountModule($modules[$i]) != null) {
- $attrs = $this->getAccountContainer()->getAccountModule($modules[$i])->getAttributes();
- if (isset($attrs['gidNumber'][0])) {
- return $attrs['gidNumber'][0];
- }
- }
- }
- return null;
- }
-
- /**
- * In this function the LDAP account is built up.
- *
- * @param array $rawAccounts list of hash arrays (name => value) from user input
- * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP
- * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5)
- * @param array $selectedModules list of selected account modules
- * @return array list of error messages if any
- */
- function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) {
- for ($i = 0; $i < sizeof($rawAccounts); $i++) {
- if (isset($rawAccounts[$i][$ids['phpGroupwareGroup_extension']])
- && (strtolower($rawAccounts[$i][$ids['phpGroupwareGroup_extension']]) == "true")) {
- $partialAccounts[$i]['objectClass'][] = 'phpgwGroup';
- $partialAccounts[$i]['phpgwGroupID'][0] = $partialAccounts[$i]['gidNumber'];
- }
- }
- return array();
- }
-
-}
-
-?>
\ No newline at end of file
diff --git a/lam/lib/modules/phpGroupwareUser.inc b/lam/lib/modules/phpGroupwareUser.inc
deleted file mode 100644
index 73aab630..00000000
--- a/lam/lib/modules/phpGroupwareUser.inc
+++ /dev/null
@@ -1,465 +0,0 @@
-autoAddObjectClasses = false;
- }
-
- /**
- * Returns meta data that is interpreted by parent class
- *
- * @return array array with meta data
- *
- * @see baseModule::get_metaData()
- */
- public function get_metaData() {
- $return = array();
- // icon
- $return['icon'] = 'phpGroupware.png';
- // manages host accounts
- $return["account_types"] = array("user");
- // alias name
- $return["alias"] = "phpGroupWare";
- // module dependencies
- $return['dependencies'] = array('depends' => array('posixAccount'), 'conflicts' => array());
- // LDAP filter
- $return["ldap_filter"] = array('or' => "(objectClass=phpgwAccount)");
- // managed object classes
- $return['objectClasses'] = array('phpgwAccount');
- // managed attributes
- $return['attributes'] = array('phpgwAccountID', 'phpgwAccountStatus', 'phpgwAccountExpires',
- 'phpgwLastPasswordChange', 'phpgwLastLoginFrom', 'phpgwLastLogin');
- // help Entries
- $return['help'] = array(
- 'extension' => array(
- "Headline" => _("Add phpGroupWare extension"),
- "Text" => _("If you set this to \"true\" then the phpGroupware extension will be added.")
- ),
- 'phpgwAccountStatus' => array(
- "Headline" => _("Account status"),
- "Text" => _("Here you can specify if the account is active or inactive.")
- ),
- 'phpgwAccountExpires' => array(
- "Headline" => _("Account expiration date"),
- "Text" => _("This is the date when the account will expire. Format: DD-MM-YYYY")
- ),
- 'autoAdd' => array(
- "Headline" => _("Automatically add this extension"),
- "Text" => _("This will enable the extension automatically if this profile is loaded.")
- )
- );
- // profile options
- $profileContainer = new htmlTable();
- $profileContainer->addElement(new htmlTableExtendedInputCheckbox('phpGroupwareUser_addExt', false, _('Automatically add this extension'), 'autoAdd'));
- $return['profile_options'] = $profileContainer;
- // available PDF fields
- $return['PDF_fields'] = array(
- 'phpgwAccountStatus' => _('Account status'),
- 'phpgwAccountExpires' => _('Account expiration date'),
- 'phpgwLastLoginFrom' => _('Last login from'),
- 'phpgwLastLogin' => _('Last login')
- );
- // upload dependencies
- $return['upload_preDepends'] = array('posixAccount');
- // upload fields
- $return['upload_columns'] = array(
- array(
- 'name' => 'phpGroupwareUser_extension',
- 'description' => _('Add phpGroupWare extension'),
- 'help' => 'extension',
- 'example' => 'true',
- 'values' => 'true, false'
- ),
- array(
- 'name' => 'phpGroupwareUser_accountStatus',
- 'description' => _('Account status'),
- 'help' => 'phpgwAccountStatus',
- 'example' => 'active',
- 'values' => 'active, inactive'
- ),
- array(
- 'name' => 'phpGroupwareUser_accountExpires',
- 'description' => _('Account expiration date'),
- 'help' => 'phpgwAccountExpires',
- 'example' => '23-07-2011'
- )
- );
- return $return;
- }
-
- /**
- * This function builds up the message array.
- */
- function load_Messages() {
- // error messages for input checks
- $this->messages['phpgwAccountStatus'][0] = array('ERROR', _('Account %s:') . ' phpGroupwareUser_accountStatus', _('Please enter "active" or "inactive".'));
- $this->messages['phpgwAccountExpires'][0] = array('ERROR', _('Account %s:') . ' phpGroupwareUser_accountExpires', _('The expiration date is invalid.'));
- }
-
- /**
- * Returns the HTML meta data for the main account page.
- *
- * @return htmlElement HTML meta data
- */
- public function display_html_attributes() {
- $return = new htmlTable();
- if (isset($this->attributes['objectClass']) && in_array('phpgwAccount', $this->attributes['objectClass'])) {
- // expiration date
- $phpgwAccountExpires = '-';
- if (isset($this->attributes['phpgwAccountExpires'][0]) && ($this->attributes['phpgwAccountExpires'][0] != "-1")) {
- $date = getdate($this->attributes['phpgwAccountExpires'][0]);
- $phpgwAccountExpires = $date['mday'] . '.' . $date['mon'] . '.' . $date['year'];
- }
- $return->addElement(new htmlOutputText(_('Account expiration date')));
- $return->addElement(new htmlOutputText($phpgwAccountExpires));
- $return->addElement(new htmlAccountPageButton(get_class($this), 'time', 'phpgwAccountExpires', _('Change')));
- $return->addElement(new htmlHelpLink('phpgwAccountExpires'), true);
- // account status
- $accountStatus = 'A';
- if (isset($this->attributes['phpgwAccountStatus'][0])) {
- $accountStatus = $this->attributes['phpgwAccountStatus'][0];
- }
- $return->addElement(new htmlOutputText(_('Account status')));
- $statusOptions = array(_('active') => 'A', _('inactive') => 'I');
- $statusSelect = new htmlSelect('phpgwAccountStatus', $statusOptions, array($accountStatus));
- $statusSelect->setHasDescriptiveElements(true);
- $return->addElement($statusSelect);
- $return->addElement(new htmlOutputText(''));
- $return->addElement(new htmlHelpLink('phpgwAccountStatus'), true);
- // last login
- $phpgwLastLogin = '-';
- if (isset($this->attributes['phpgwLastLogin'][0])) {
- $date = getdate($this->attributes['phpgwLastLogin'][0]);
- $phpgwLastLogin = $date['mday'] . '.' . $date['mon'] . '.' . $date['year'];
- }
- $return->addElement(new htmlOutputText(_('Last login')));
- $return->addElement(new htmlOutputText($phpgwLastLogin), true);
- // last login from
- $phpgwLastLoginFrom = '-';
- if (isset($this->attributes['phpgwLastLoginFrom'][0])) {
- $phpgwLastLoginFrom = $this->attributes['phpgwLastLoginFrom'][0];
- }
- $return->addElement(new htmlOutputText(_('Last login from')));
- $return->addElement(new htmlOutputText($phpgwLastLoginFrom), true);
-
- $return->addElement(new htmlSpacer(null, '10px'), true);
-
- $remButton = new htmlButton('remObjectClass', _('Remove phpGroupWare extension'));
- $remButton->colspan = 4;
- $return->addElement($remButton);
- }
- else {
- $return->addElement(new htmlButton('addObjectClass', _('Add phpGroupWare extension')));
- }
- return $return;
- }
-
- /**
- * Processes user input of the primary module page.
- * It checks if all input values are correct and updates the associated LDAP attributes.
- *
- * @return array list of info/error messages
- */
- public function process_attributes() {
- if (isset($this->attributes['objectClass']) && in_array('phpgwAccount', $this->attributes['objectClass'])) {
- $this->attributes['phpgwAccountStatus'][0] = $_POST['phpgwAccountStatus'];
- }
- if (isset($_POST['addObjectClass'])) {
- $this->attributes['objectClass'][] = 'phpgwAccount';
- $this->attributes['phpgwAccountExpires'][0] = "-1";
- $this->attributes['phpgwLastPasswordChange'][0] = time();
- }
- elseif (isset($_POST['remObjectClass'])) {
- $this->attributes['objectClass'] = array_delete(array('phpgwAccount'), $this->attributes['objectClass']);
- for ($i = 0; $i < sizeof($this->meta['attributes']); $i++) {
- if (isset($this->attributes[$this->meta['attributes'][$i]])) {
- unset($this->attributes[$this->meta['attributes'][$i]]);
- }
- }
- }
- return array();
- }
-
-
- /**
- * This function will create the meta HTML code to show a page to change time values.
- *
- * @return htmlElement meta HTML code
- */
- function display_html_time() {
- $return = new htmlTable();
- // determine attribute
- if (isset($_POST['form_subpage_phpGroupwareUser_time_phpgwAccountExpires'])) {
- $attr = 'phpgwAccountExpires';
- $text = _('Account expiration date');
- $help = "phpgwAccountExpires";
- }
- $time = time();
- if (isset($this->attributes[$attr][0]) && ($this->attributes[$attr][0] != "-1")) {
- $time = $this->attributes[$attr][0];
- }
- $date = getdate($time);
- for ( $i=1; $i<=31; $i++ ) $mday[] = $i;
- for ( $i=1; $i<=12; $i++ ) $mon[] = $i;
- for ( $i=2003; $i<=2030; $i++ ) $year[] = $i;
- $return->addElement(new htmlOutputText($text));
- $dateContainer = new htmlTable();
- $dateContainer->addElement(new htmlSelect('expire_day', $mday, array($date['mday'])));
- $dateContainer->addElement(new htmlSelect('expire_mon', $mon, array($date['mon'])));
- $dateContainer->addElement(new htmlSelect('expire_yea', $year, array($date['year'])));
- $return->addElement($dateContainer);
- $return->addElement(new htmlHelpLink($help), true);
-
- $return->addElement(new htmlSpacer(null, '10px'), true);
-
- // buttons
- $buttonContainer = new htmlTable();
- $buttonContainer->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'change' . $attr, _('Change')));
- $buttons = array();
- if (isset($this->attributes[$attr][0])) {
- $buttonContainer->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'del' . $attr, _('Remove')));
- }
- $buttonContainer->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'back' . $attr, _('Cancel')));
- $buttonContainer->colspan = 3;
- $return->addElement($buttonContainer);
- return $return;
- }
-
- /**
- * Processes user input of the time selection page.
- *
- * @return array list of info/error messages
- */
- function process_time() {
- $return = array();
- // find button name
- $buttonName = '';
- $postKeys = array_keys($_POST);
- for ($i = 0; $i < sizeof($postKeys); $i++) {
- if (strpos($postKeys[$i], 'form_subpage_phpGroupwareUser_attributes_') !== false) {
- $buttonName = $postKeys[$i];
- }
- }
- if (($buttonName == '') || (strpos($buttonName, '_back') !== false)) return array();
- // get attribute name
- $attr = '';
- if (strpos($buttonName, 'phpgwAccountExpires') !== false) {
- $attr = 'phpgwAccountExpires';
- }
- if ($attr == '') return array();
- // determine action
- if (strpos($buttonName, '_change') !== false) {
- // set new time
- $this->attributes[$attr][0] = gmmktime(0, 0, 0, intval($_POST['expire_mon']), intval($_POST['expire_day']),
- intval($_POST['expire_yea']));
- }
- elseif (strpos($buttonName, '_del') !== false) {
- // remove attribute value
- $this->attributes[$attr][0] = "-1";
- }
- return $return;
- }
-
- /**
- * Returns a list of modifications which have to be made to the LDAP account.
- *
- * @return array list of modifications
- *
This function returns an array with 3 entries:
- *
array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... )
- *
DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid)
- *
"add" are attributes which have to be added to LDAP entry
- *
"remove" are attributes which have to be removed from LDAP entry
- *
"modify" are attributes which have to been modified in LDAP entry
- *
"info" are values with informational value (e.g. to be used later by pre/postModify actions)
- */
- function save_attributes() {
- if (!in_array('phpgwAccount', $this->attributes['objectClass'])) {
- return parent::save_attributes();
- }
- // set phpgwAccountID to UID number for new accounts
- $attrs = $this->getAccountContainer()->getAccountModule('posixAccount')->getAttributes();
- $this->attributes['phpgwAccountID'][0] = $attrs['uidNumber'][0];
- return parent::save_attributes();
- }
-
- /**
- * Returns the PDF entries for this module.
- *
- * @return array list of possible PDF entries
- */
- function get_pdfEntries() {
- $return = array();
- if (isset($this->attributes['phpgwAccountStatus'][0])) {
- if ($this->attributes['phpgwAccountStatus'][0] == 'A') {
- $status = _('active');
- }
- else {
- $status = _('inactive');
- }
- $return['phpGroupwareUser_phpgwAccountStatus'] = array('' . _('Account status') . '' . $status . '');
- }
- if (isset($this->attributes['phpgwAccountExpires'][0])) {
- $date = getdate($this->attributes['phpgwAccountExpires'][0]);
- $phpgwAccountExpires = $date['mday'] . '.' . $date['mon'] . '.' . $date['year'];
- $return['phpGroupwareUser_phpgwAccountExpires'] = array('' . _('Account expiration date') . '' . $phpgwAccountExpires . '');
- }
- if (isset($this->attributes['phpgwLastLoginFrom'][0])) {
- $return['phpGroupwareUser_phpgwLastLoginFrom'] = array('' . _('Last login from') . '' . $this->attributes['phpgwLastLoginFrom'][0] . '');
- }
- if (isset($this->attributes['phpgwLastLogin'][0])) {
- $date = getdate($this->attributes['phpgwLastLogin'][0]);
- $phpgwLastLogin = $date['mday'] . '.' . $date['mon'] . '.' . $date['year'];
- $return['phpGroupwareUser_phpgwLastLogin'] = array('' . _('Last login') . '' . $phpgwLastLogin . '');
- }
- return $return;
- }
-
- /**
- * Loads the values of an account profile into internal variables.
- *
- * @param array $profile hash array with profile values (identifier => value)
- */
- function load_profile($profile) {
- parent::load_profile($profile);
- // add extension
- if (isset($profile['phpGroupwareUser_addExt'][0]) && ($profile['phpGroupwareUser_addExt'][0] == "true")) {
- if (!in_array('phpgwAccount', $this->attributes['objectClass'])) {
- $this->attributes['objectClass'][] = 'phpgwAccount';
- }
- }
- }
-
- /**
- * In this function the LDAP account is built up.
- *
- * @param array $rawAccounts list of hash arrays (name => value) from user input
- * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP
- * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5)
- * @param array $selectedModules list of selected account modules
- * @return array list of error messages if any
- */
- function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) {
- $messages = array();
- for ($i = 0; $i < sizeof($rawAccounts); $i++) {
- if (!isset($rawAccounts[$i][$ids['phpGroupwareUser_extension']])
- || !(strtolower($rawAccounts[$i][$ids['phpGroupwareUser_extension']]) == "true")) {
- continue;
- }
- $partialAccounts[$i]['objectClass'][] = 'phpgwAccount';
- $partialAccounts[$i]['phpgwAccountID'][0] = $partialAccounts[$i]['uidNumber'];
- $partialAccounts[$i]['phpgwLastPasswordChange'] = array(time());
- // account status
- if ($rawAccounts[$i][$ids['phpGroupwareUser_accountStatus']] != '') {
- $status = $rawAccounts[$i][$ids['phpGroupwareUser_accountStatus']];
- if (($status == 'active') || ($status == 'inactive')) {
- $partialAccounts[$i]['phpgwAccountStatus'] = array($status);
- }
- else {
- $errMsg = $this->messages['phpgwAccountStatus'][0];
- array_push($errMsg, array($i));
- $messages[] = $errMsg;
- }
- }
- // expiration date
- if ($rawAccounts[$i][$ids['phpGroupwareUser_accountExpires']] != '') {
- if (get_preg($rawAccounts[$i][$ids['phpGroupwareUser_accountExpires']], 'date')) {
- $parts = explode('-', $rawAccounts[$i][$ids['phpGroupwareUser_accountExpires']]);
- $partialAccounts[$i]['phpgwAccountExpires'] = mktime(0, 0, 0, intval($parts[1]), intval($parts[0]), intval($parts[2]));
- }
- else {
- $errMsg = $this->messages['phpgwAccountExpires'][0];
- array_push($errMsg, array($i));
- $messages[] = $errMsg;
- }
- }
- else {
- $partialAccounts[$i]['phpgwAccountExpires'] = "-1";
- }
- }
- return $messages;
- }
-
- /**
- * This method specifies if a module manages password attributes.
- * @see passwordService::managesPasswordAttributes
- *
- * @return boolean true if this module manages password attributes
- */
- public function managesPasswordAttributes() {
- // only listen to password changes
- return false;
- }
-
- /**
- * Specifies if this module supports to force that a user must change his password on next login.
- *
- * @return boolean force password change supported
- */
- public function supportsForcePasswordChange() {
- return false;
- }
-
- /**
- * This function is called whenever the password should be changed. Account modules
- * must change their password attributes only if the modules list contains their module name.
- *
- * @param String $password new password
- * @param $modules list of modules for which the password should be changed
- * @param boolean $forcePasswordChange force the user to change his password at next login
- * @return array list of error messages if any as parameter array for StatusMessage
- * e.g. return arrray(array('ERROR', 'Password change failed.'))
- * @see passwordService::passwordChangeRequested
- */
- public function passwordChangeRequested($password, $modules, $forcePasswordChange) {
- // update password timestamp when Unix password was updated
- if (!in_array('posixAccount', $modules)) {
- return array();
- }
- if (in_array_ignore_case('phpgwAccount', $this->attributes['objectClass'])) {
- $this->attributes['phpgwLastPasswordChange'][0] = time();
- }
- return array();
- }
-
-}
-
-?>
\ No newline at end of file