Upgrade notes
This is a list of API changes for all LAM releases.
5.7 -> 5.8
- All account types allow multiple configurations by default.
- the following methods in baseModule have a new parameter $typeId:
- check_profileOptions()
- get_profileOptions()
- get_pdfEntries()
- get_pdfFields()
- getManagedObjectClasses()
- getManagedAttributes()
- getLDAPAliases()
- Removed global functions:
- getListClassName() -> use ConfiguredType->getBaseType()->getListClassName()
- getTypeAlias() -> use ConfiguredType->getBaseType()->getAlias()
- getDefaultListAttributes() -> use ConfiguredType->getBaseType()->getDefaultListAttributes()
- getListAttributeDescriptions() -> use ConfiguredType->getBaseType()->getListAttributeDescriptions()
- baseType and subclasses have a new constructor argument - ConfiguredType
5.6 -> 5.7
- module interface: get_pdfEntries() must return an array key =>
PDFEntry (no action required if you did not build the XML yourself)
5.5 -> 5.6
-
Functions in lib/types.inc got namespace LAM/TYPES (e.g. getTypeAlias()).
-
New API to access configured account types: LAM\TYPES\TypeManager.
- class baseType: new function getSuffixFilter()
- moved getSuffixList() from baseType to ConfiguredType
5.4 -> 5.5
Functions Ldap::encrypt/decrypt in ldap.inc moved to lamEncrypt/lamDecrypt in security.inc.
5.0 -> 5.1
Module interface
- getPDFEntries(): It is no
longer supported that modules generate PDF XML on their own. You must
use addSimplePDFField/addPDFKeyValue/addPDFTable() from baseModule for
this.
- getSelfServiceOptions: the function must now return an array of htmlResponsiveRow instead of htmlTableRow
4.8 -> 4.9
API changes
- Module interface: Function get_pdfEntries() has new parameter $pdfKeys.
4.6 -> 4.7
Account types (e.g. user, group, host) may have config options now. See baseType::get_configOptions().
4.5 -> 4.6
The valid account types for each module must now
be set in can_manage(). This function is abstract in base module.
Setting the account type via meta data is no longer supported.
Example:
public function can_manage() {
return in_array($this->get_scope(), array('user', 'host'));
}
4.2 -> 4.3
Ldap::new_rand() was replaced by getRandomNumber() in lib/account.inc.
Module interface:
- preModifySelfService/postModifySelfService: new parameter $newAccount. The user self registration now supports preCreate/postCreate events.
4.1 -> 4.2
New meta HTML classes: htmlEqualHeight, htmlAccordion
New functions in baseModule to reduce code:
- addSimpleInputTextField() to add text fields to the edit page
- addMultiValueInputTextField()/processMultiValueInputTextField() to add multi-value text fields to the edit page
- addSimpleSelfServiceTextField()/checkSimpleSelfServiceTextField() adds and checks a text field in self service
- addSimplePDFField() to create the PDF code for a simple text value
4.0 -> 4.1
CSS changes:
- type specific "td.{TYPE}nav-activepage" was replaced by common "td.activepage" in layout.css
- renamed ".{TYPE}list-bright" to ".{TYPE}-bright" and ".{TYPE}list-dark" to ".{TYPE}-dark"
- removed "table.{TYPE}list input", "table.{TYPE}list select",
"table.{TYPE}list button", "fieldset.{TYPE}edit input",
"fieldset.{TYPE}edit select", "fieldset.{TYPE}edit button"
- removed "input.{TYPE}" and "select.{TYPE}"
- removed "table.{TYPE}nav" and "table.{TYPE}nav input"
- removed "table.{TYPE}list td,th"
- new ".{TYPE}-border"
- replaced "table.{TYPE}list" by ".{TYPE}-border" and "table.accountlist"
- replaced "fieldset.{TYPE}edit" by ".{TYPE}-border" and ".{TYPE}-bright"
- moved type styles from 600_type_{TYPE}.css to 500_layout.css
Updated jQuery and jQueryUI versions.
3.9 -> 4.0
Module interface:
- new function: doUploadPreActions()
- function doUploadPostActions() contains attributes by reference
List interface:
- new function: addExtraInputElementsToTopArea()
- listShowOUSelection() now returns a htmlGroup
3.8 -> 3.9
Module interface:
- new function supportsAdminInterface(): Can be used to mark modules that only support the self service.
- new function canSelfServiceFieldBeReadOnly(): Specifies if a certain self service field can be set in read-only mode.
- getSelfServiceOptions(): new parameter $readOnlyFields that contains read-only fields
- checkSelfServiceOptions(): new parameter $readOnlyFields that contains read-only fields
Meta HTML:
- Input fields support autocompletion
3.7 -> 3.8
Type interface:
- getTitleBarTitle()/getTitleBarSubtitle(): changed
parameter from attribute array to accountContainer object.
Additionally, the functions are now called on each page refresh.
3.6 -> 3.7
Module interface:
- postModifyActions(): Must return an array containing any messages to display
- preModifyActions(): Changed return value from boolean to array of message arrays
- passwordService interface:
new function supportsForcePasswordChange() and changed function
passwordChangeRequested() to support password change at next login
- getSelfServiceOptions()/checkSelfServiceOptions(): added parameter to specify if only password changes are allowed
- handleAjaxRequest(): This new function allows AJAX requests to be answered by modules
- getSelfServiceSettings(): New parameter $profile that contains the full self service profile object
3.5.0 -> 3.6
LAM now supports client-side validation (required + numeric fields). See htmlInputField::setValidationRule().
3.4.0 -> 3.5.0
The old meta HTML code is no longer supported. Please use the new solution based on htmlElement (see lib/html.inc).
3.3.0 -> 3.4.0
Module interface:
- save_attributes(): Can
now contain a return value 'info' => array() with values for
pre/postModify actions
- checkSelfServiceOptions(): Can now contain a return value 'info' => array() with values for
pre/postModify actions
- getSelfServiceOptions(): This function no longer supports the old meta HTML. Additionally, the module name must be specified for all help links.
3.2.0 -> 3.3.0
The cache class was removed. Please use local caching and the functions
searchLDAP... instead of get_cache().
The return values for baseModule::pre/postDeleteActions() were changed
to an array of StatusMessage parameters.
CSS class TYPElist-sort removed without replacement.
3.1.0 -> 3.2.0
Account types: The CSS classes
have changed.
- tr.TYPElist-over: removed without replacement
- tr.TYPElist-checked: removed without replacement
- tr.TYPElist: renamed to .TYPElist-bright
- tr.TYPElist-head: renamed to .TYPElist-dark
- th.TYPElist-sort: renamed to .TYPElist-sort
- td.TYPEnav-text: removed without replacement
3.0.0 -> 3.1.0
Module interface: There is a
new object-oriented library to
generate HTML for the account modules (e.g. used for
display_html_attributes()). This will allow additional functionality
like client side validation. Please see lib/html.inc or package
metaHTML in the phpdoc documentation.
Attention: The getSelfServiceOptions()
function no longer supports the old meta HTML. The other functions will
support the old array-based meta HTML elements only until Q2/2011!
The PDF editor now supports descriptive PDF
fields. You can use this by returning an associative array for the PDF
fields (e.g. array('macAddress' => _('MAC address'))) in get_pdfFields() or the meta data.
The old format is still supported. LAM will continue to show the field
name as label in this case.
2.9.0 -> 3.0.0
You can now integrate JavaScript libraries by simply putting the files
into templates/lib. All files with the name *.js are automatically
included on all pages.
There is a new log level LOG_DEBUG available for logNewMessage().
Module interface:
The function
build_uploadAccounts()
has a new parameter
$selectedModules.
Type interface:
The new function supportsFileUpload()
specifies if file uploads are supported (default true).
2.8.0 -> 2.9.0
Several functions of the cache
class were removed.
2.5.0 -> 2.6.0
The class baseType
has two new member variables:
- $LABEL_CREATE_ANOTHER_ACCOUNT
- $LABEL_BACK_TO_ACCOUNT_LIST
They can be used to show a more specific text when the user is asked to
create another account or return back to the account list.
The meta HTML code now supports image buttons.
2.4.0 -> 2.5.0
Self service
$selfServiceSettings in class baseModule is now an object of the
class selfServiceProfile.
This way all profile settings can be read. To access the module
settings use $this->selfServiceSettings->moduleSettings.
2.2.0 -> 2.3.0
Style changes
If you have defined your own account types then you need to update your
CSS files (style/type_<type>.css).
Please change "table.<type>list input,select" to
"table.<type>list input,select,button" and
"fieldset.<type>edit input" to "fieldset.<type>edit
input,select,button". "fieldset.<type>edit select" may be deleted
afterwards.
2.1.0 -> 2.2.0
Account lists
Account lists now support to define tools. These are displayed as
linked images like the edit and delete links in the list.
Overwrite lamList::getAdditionalTools()
to use this feature.
The definition of account list options changed. The function lamList::getAdditionalTools() is no
longer available. Use these functions instead: lamList::listGetAllConfigOptions()
and lamList::listConfigurationChanged().
All options are now saved in cookies for one year.
Base module
The baseModule class has a new
protected option: $autoAddObjectClasses
You can set it to false if you do not want that your module's
object classes are added when creating or loading an account.
Account modules can now have icons. See baseModule->getIcon().
Constructors
LAM now uses the PHP5 syntax for constructors: __construct()
Extended security model
Each server profile now defines an access level.
Currently these are:
- write access
- password changes
- read access
Please check your code and
prohibit any actions which do not fit the current access level.
There are two new functions in security.inc:
checkIfWriteAccessIsAllowed()
and checkIfPasswordChangeIsAllowed()
Only LAM Pro allows to change the access level from write access to a smaller level.
2.0.0 -> 2.1.0
Style changes
- "fieldset.<type>edit fieldset" and
"fieldset.<type>edit fieldset fieldset" were removed.
- "table.<type>list input" changed to "table.<type>list
input,select"
baseModule
The class variable $base
is no longer visible in child classes. Please use $this->getAccountContainer() to
access the accountContainer object.
Several other class variables in accountContainer etc. are now private.
Use the new access methods.
1.3.0 -> 2.0.0
LAM is now PHP5 only. Several variables are now private and need to be
accessed via functions.
1.2.0 -> 1.3.0
New lamList functions
- listPrintTableCellContent():
This function allows you to control how the LDAP attributes are
displayed in the table. This can be used to display links or binary
data.
- listPrintAdditionalOptions():
If you want to display additional conrols for a list please use this
function. The controls will be placed under the account table.
No more lamdaemon commands via delete_attributes() and
save_attributes() in account modules.
Please use these new functions to call lamdaemon directly:
- preModifyActions()
- postModifyActions()
- preDeleteActions()
- postDeleteActions()
1.1.x -> 1.2.0
API changes
- removed get_configDescription() from module interface
1.0.4 -> 1.1.0
API changes
- removed $post parameters from module functions
(delete_attributes(), process_...(), display_html_...()). Use $_POST
instead.
- process_...()
functions: returned messages are no longer grouped (e.g. return:
array(array('INFO', 'headline', 'text'), array('INFO', 'headline2',
'text2')))
1.0.0 -> 1.0.2
New module functions
- getRequiredExtensions: Allows to define required PHP extensions
- getManagedObjectClasses: Definition of managed object classes for
this module
- getLDAPAliases: list of LDAP alias names which are replaced by LAM
- getManagedAttributes: list of LDAP attributes which are managed
by this module
The LDAP attributes are no longer loaded by reading the LDAP schema. If
your module does not implement the load_attributes() function then you
have to use getManagedAttributes() or the meta data to specify them.
The class variable "triggered_messages" in baseModule was removed.