Upgrade notes

This is a list of API changes for all LAM releases.

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:

4.1 -> 4.2

New meta HTML classes: htmlEqualHeight, htmlAccordion
New functions in baseModule to reduce code:

4.0 -> 4.1

CSS changes:
Updated jQuery and jQueryUI versions.

3.9 -> 4.0

Module interface:
List interface:

3.8 -> 3.9

Module interface:
Meta HTML:

3.7 -> 3.8

Type interface:

3.6 -> 3.7

Module interface:

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:

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.

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:
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:
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

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

No more lamdaemon commands via delete_attributes() and save_attributes() in account modules.
Please use these new functions to call lamdaemon directly:

1.1.x -> 1.2.0

API changes


1.0.4 -> 1.1.0

API changes


1.0.0 -> 1.0.2

New module functions

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.