# Configuration pages

## Configuration - Login (conflogin.php):

This is the start page of the configuration editor. The user can select a profile for editing or go to the profile management page.
Each account profile is protected with a password which is stored in the profile.
The list of possible profiles is returned by getConfigProfiles() in config.inc, the default profile is returned by an object of class CfgMain from config.inc.

## Configuration - Profile management (profmanage.php):

Here the user can add and modify configuration profiles or change the configuration master password.
The configuration master password prevents unauthorised users from changing the profiles. The password is saved in config/config.cfg and managed via the CfgMain class.

## Configuration - Main page (confmain.php):

This page presents all configuration settings for editing.
Some of the settings are module independent (e.g. server settings, language, ...) and displayed always.
The others are set up by the account modules. Only settings of currently selected modules are displayed.
Users may also change the profile password on this page.

## Configuration - Module selection (confmodules.php):

On this page the user can select which account modules LAM should use.
The list of possible modules is returned by getAvailableModules() in modules.inc and checked for dependencies/conflicts with check_module_depends() and check_module_conflicts().
Each account type needs exactly one base module which is the base of a account by providing a structural object class.

## Configuration - Save settings (confsave.php):

This script checks the input and displays possible error messages or an overview of the saved settings.
The static settings are set and checked with an object of class Config from config.inc.
The account modules manage the input validation for their fields and are also able to return error messages. This is done with checkConfigOptions() from modules.inc.