modules

# Procedural File: modules.inc

Source Location: /lib/modules.inc

## Classes:

accountContainer
  This class includes all modules and attributes of an account.

## Page Details:

Interface between modules and other parts of LAM.

#### Tags:

author: | Tilo Lutz
author: | Michael Duergner
author: | Roland Gruber

#### Includes:

include_once("cache.inc") [line 35]
LDAP caches
include_once("ldap.inc") [line 41]
access to LDAP server
include_once("baseModule.inc") [line 39]
parent class of account modules
include_once("account.inc") [line 37]
some helper functions
include_once("security.inc") [line 45]
security functions
include_once($modulesINC_dirname.'/'.$entry) [line 55]
This includes all module files.
include_once("lamdaemon.inc") [line 43]
lamdaemon functions

### buildUploadAccounts [line 405]

`mixed buildUploadAccounts( string $scope, array $data, array $ids)`

This function builds the LDAP accounts for the file upload.

If there are problems status messages will be printed automatically.

#### Tags:

return: | array including accounts or false if there were errors

#### Parameters

string | $scope | account type
array | $data | array containing one account in each element
array | $ids | array(<column_name> => <column number>)

[ Top ]

### checkConfigOptions [line 319]

`array checkConfigOptions( array $scopes, array $options)`

Checks if the configuration options are valid

#### Tags:

return: | list of error messages

#### Parameters

array | $scopes | hash array (module name => array(account types))
array | $options | hash array containing all options (name => array(...))

[ Top ]

### checkProfileOptions [line 285]

`array checkProfileOptions( string $scope, array $options)`

Checks if the profile options are valid

#### Tags:

return: | list of error messages

#### Parameters

string | $scope | account type (user, group, host)
array | $options | hash array containing all options (name => array(...))

[ Top ]

### check_module_conflicts [line 229]

`boolean check_module_conflicts( array $selected, array $deps)`

Checks if there are conflicts between modules

#### Tags:

return: | false if no conflict was found, otherwise an array of array(selected module, conflicting module) if conflicts were found

#### Parameters

array | $selected | selected module names
array | $deps | module dependencies

[ Top ]

### check_module_depends [line 188]

`mixed check_module_depends( array $selected, array $deps)`

Checks if there are missing dependencies between modules.

#### Tags:

return: | false if no misssing dependency was found, otherwise an array of array(selected module, depending module) if missing dependencies were found

#### Parameters

array | $selected | selected module names
array | $deps | module dependencies

[ Top ]

### doUploadPostActions [line 485]

`array doUploadPostActions( string $scope, array $data, array $ids, array $failed)`

This function executes one post upload action.

#### Tags:

return: | current status array ( 'status' => 'finished' | 'inProgress' 'module' => <name of active module> 'progress' => 0..100 'errors' => array (<array of parameters for StatusMessage>) )

#### Parameters

string | $scope | account type
array | $data | array containing one account in each element
array | $ids | array(<column_name> => <column number>)
array | $failed | list of accounts which were not created successfully

[ Top ]

### getAvailableModules [line 248]

`array getAvailableModules( string $scope)`

Returns an array with all available user module names

#### Tags:

return: | list of possible modules

#### Parameters

string | $scope | account type (user, group, host)

[ Top ]

### getAvailablePDFFields [line 359]

`array getAvailablePDFFields( string $scope)`

Returns a list of available PDF entries.

#### Tags:

return: | PDF entries

#### Parameters

string | $scope | account type (user, group, host)

[ Top ]

### getConfigOptions [line 302]

`array getConfigOptions( array $scopes)`

Returns a hash array (module name => elements) of all module options for the configuration page.

#### Tags:

return: | configuration options

#### Parameters

array | $scopes | hash array (module name => array(account types))

[ Top ]

### getHelp [line 340]

`array getHelp( string $module, string $helpID, [string $scope = ''])`

Returns a help entry from an account module.

#### Tags:

return: | help entry

#### Parameters

string | $module | module name
string | $helpID | help identifier
string | $scope | account type

[ Top ]

### getModuleAlias [line 65]

`string getModuleAlias( string $name, string $scope)`

Returns the alias name of a module

#### Tags:

return: | alias name

#### Parameters

string | $name | the module name
string | $scope | the account type ("user", "group", "host")

[ Top ]

### getModulesDependencies [line 170]

`array getModulesDependencies( string $scope)`

Returns a hash array (module name => dependencies) of all module dependencies

"dependencies" contains an array with two sub arrays: depends, conflicts
The elements of "depends" are either module names or an array of module names (OR-case).
The elements of conflicts are module names.

#### Tags:

return: | dependencies

#### Parameters

string | $scope | the account type (user, group, host)

[ Top ]

### getProfileOptions [line 268]

`array getProfileOptions( string $scope)`

Returns the elements for the profile page.

#### Tags:

return: | profile elements

#### Parameters

string | $scope | account type (user, group, host)

[ Top ]

### getRDNAttributes [line 120]

`array getRDNAttributes( string $scope)`

Returns a list of LDAP attributes which can be used to form the RDN.

The list is already sorted by the priority given by the nodules.

#### Tags:

return: | list of LDAP attributes

#### Parameters

string | $scope | account type (user, group, host)

[ Top ]

### getRequiredExtensions [line 521]

`array getRequiredExtensions( )`

Returns true if the module is a base module

#### Tags:

return: | required extensions

[ Top ]

### getUploadColumns [line 385]

`array getUploadColumns( string $scope)`

Returns an array containing all input columns for the file upload.

Syntax:
array(
string: name, // fixed non-translated name which is used as column name (should be of format: <module name>_<column name>)
string: description, // short descriptive name
string: help, // help ID
string: example, // example value
boolean: required // true, if user must set a value for this column
)

#### Tags:

return: | column list

#### Parameters

string | $scope | account type

[ Top ]

### get_ldap_filter [line 88]

`string get_ldap_filter( string $scope)`

Returns the LDAP filter used by the account lists

#### Tags:

return: | LDAP filter

#### Parameters

string | $scope | the account type ("user", "group", "host")

[ Top ]

### is_base_module [line 77]

`boolean is_base_module( string $name, string $scope)`

Returns true if the module is a base module

#### Tags:

return: | true if base module

#### Parameters

string | $name | the module name
string | $scope | the account type ("user", "group", "host")

[ Top ]

### parseHtml [line 685]

`array parseHtml( string $module, array $input, array $values, boolean $restricted, &$tabindex, string $scope, integer $tabindex)`

Takes a list of meta-HTML elements and prints the equivalent HTML output.

The modules are not allowed to display HTML code directly but return meta HTML code. This allows to have a common design for all module pages.
Meta HTML code is always returned as a three dimensional array[a][b][c] where a is the row number, b is the column number and c is is a data element.
Format of data elements:
A data element is an array which contains the data to display.
All data elements must contail a value "kind" which defines what kind of element should be displayed.
These are the possibilies for kind and what other options have to be added to the array:

- fieldset: Inserts a fieldset.
  - legend: The legend of the fieldset.
  - value: A data element. Can be used recursively.
- help: Adds a help link.
  - value: The help number for the help entry.
  - scope: The account type for the help entry.
- input: Adds a HTML input element.
  - name: The name of the element, will be used later as variable name when user input is returned.
  - type: allowed values: submit, reset, checkbox, text, password, file, hidden
  - checked: Boolean value, if true a checkbox will be checked. This value is only needed or checkboxes.
  - disabled: Boolean value, if true the element will be disabled.
  - size: The length of the input element, only used for text, password and file.
  - maxlength: The maximum size of the input element, only used for text, password and file.
  - value: The element will have this value as default. Button elements will have this as caption.
  - title: Title value for input element (optional).
  - image: This is used to display image buttons. File name of an 16x16px image in the graphics folder (e.g. add.png). You may only use this for submit buttons.
- select: This will add a select field.
  - name: The name of the element, will be used later as variable name when user input is returned.
  - multiple: Boolean value, if set to true the user can select more than one entry.
  - options: Array of string. This is the list of option values the user can select.
  - options_selected: Array of string. This is the list of pre selected elements, must contain values that are also in options.
  - descriptiveOptions: Boolean value, if set to true then all elements in options must be arrays themselves (array(value, description)) (default: false)
  - size: The size of the select field, if set to 1 a dropdown box will be displayed.
  - noSorting: If set to true then the entries will not be sorted. Default is false.
  - onchange: onchange event
- table: Adds a table. Can be used recursively.
  - value: A data element. Can be used recursively.
- text: Inserts a text element.
  - text: The text to display.
- textarea: Adds a multiline text field.
  - name: The name of the element, will be used later as variable name when user input is returned.
  - rows: Number of rows (required)
  - cols: Number of characters for each line (required)
  - readonly: Boolean value, if true the text field will be read only.
- image: Displays an image.
  - path: Path to the image
  - width: Width of the image
  - height: Height of the image
  - alt: Alt text of the image

Beneath those values a "td" value may be added. This has to be an array with one or more of these options:

- colspan: Like the HTML colspan attribute for td elements
- rowspan: Like the HTML rowspan attribute for td elements
- align: left/center/right/justify Like the HTML align attribute
- valign: top/middle/bottom Like the HTML valign attribute
- width: Like the HTML height attribute for td elements

Input buttons which should load a different subpage of a module must have a special name attribute:
name => 'form_subpage_' . <module name> . '_' . <subpage name> . '_' . <button name>

- <module name>: name of this account module (e.g. 'posixAccount')
- <subpage name>: name of next subpage (e.g. 'attributes')
- <button name>: a name to distinguish buttons (e.g. 'ok'/'cancel'/'back')

Example:

1. array(
2. array(
3. array("kind" => "text", "text" => "This is an example", "td" => array("colspan" => 3))
4. ),
5. array(
6. array("kind" => "text", "text" => "Input:"),
7. array("kind" => "input", "name" => "myinput", "type" => "text"),
8. array("kind" => "help", "value" => "42")
9. ),
10. array(
11. array("kind" => "input", "name" => 'form_subpage_myModule_attributes_back', "value" => _("Back"))
12. )
13. )

#### Tags:

return: | List of input field names and their type (name => type)

#### Parameters

string | $module | Name of account module
array | $input | List of meta-HTML elements
array | $values | List of values which override the defaults in $input (name => value)
boolean | $restricted | If true then no buttons will be displayed
integer | $tabindex | Start value of tabulator index for input fields
string | $scope | Account type
| &$tabindex |

[ Top ]

### printHelpLink [line 887]

`void printHelpLink( array $entry, String $number, [String $module = ''], [String $scope = ''])`

Prints a LAM help link.

#### Parameters

array | $entry | help entry
String | $number | help number
String | $module | module name
String | $scope | account scope

[ Top ]

Documentation generated on Wed, 05 Aug 2009 19:53:02 +0200 by phpDocumentor 1.4.1