# This document describes the type interface for LDAP Account Manager

Account types are used to manage a group of accounts by grouping one or more account modules. Examples for account types are user, group, host and smbDomain.

## 1. Location and naming of types

All LAM types are placed in lib/types/ and are named "<class name>.inc".
E.g. if you create a new type and its class name is "myUser" then the filename would be "myUser.inc".
The class name of a type must contain only a-z, A-Z, 0-9, -, and _.
All type classes should extend the baseType class.

## 2. Functions

### 2.1. getAlias

function getAlias()

Returns the alias name for this type. E.g. the alias for smbDomain is "Samba domains".

### 2.2. getDescription

function getDescription()

Returns a description for the account type. This should be a short sentence describing the account type.

### 2.3. getListClassName

function getListClassName()

Here you can specify your own class to handle the list view. The class must be a subclass of lamList.

### 2.4. getDefaultListAttributes

function getDefaultListAttributes()

Returns the default setting for the displayed list attributes. It is used as default for config and the syntax is equal to the config setting.

### 2.5. getListAttributeDescriptions

function getListAttributeDescriptions()

Returns a hash array which contains predefined, translated descriptions of LDAP attributes.
Example:
return array(
"sambaSID" => _("Domain SID"),
"sambaDomainName" => _("Domain name")
);