Manages the object class "shadowAccount" for users. It implements the complete module interface and uses meta-data
provided by the account modules for its functions.
Location and naming of modules
All LAM modules are placed in lib/modules/ and are named ".inc".
E.g. if you create a new module and its class name is "qmail" then the filename would be "qmail.inc".
The class name of a module must contain only a-z, A-Z, 0-9, -, and _.
You can avoid to override many functions by using {@link get_metaData()}.
All module classes should extend the baseModule class.
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.
Arguments
Name
Type
Description
Default
$password
String
new password
$modules
n/a
list of modules for which the password should be changed
$forcePasswordChange
boolean
force the user to change his password at next login
Return value
Type
Description
array
list of error messages if any as parameter array for StatusMessage
e.g. return arrray(array('ERROR', 'Password change failed.'))
Tags
Name
Description
see
process_attributes(
)
:
array
Description
Processes user input of the primary module page. It checks if all input values are correct and updates the associated LDAP attributes.
Return value
Type
Description
array
list of info/error messages
process_expire(
)
:
array
Description
Processes user input of the expiration page. It checks if all input values are correct and updates the associated LDAP attributes.
Return value
Type
Description
array
list of info/error messages
save_attributes(
)
:
array
Description
Returns a list of modifications which have to be made to the LDAP account.
Return value
Type
Description
array
list of modifications
<br>This function returns an array with 3 entries:
<br>array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... )
<br>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)
<br>"add" are attributes which have to be added to LDAP entry
<br>"remove" are attributes which have to be removed from LDAP entry
<br>"modify" are attributes which have to been modified in LDAP entry
<br>"info" are values with informational value (e.g. to be used later by pre/postModify actions)