# Introduction

LdapSaisie is a web application build using PHP & Javascript technology, which focuses on LDAP directory administration. The main idea of the project is to mask LDAP complexity thanks to a clear and intuitive administration interface. The main objective beyond is modularity, which permits modules and plugins to be added as extension and/or adaptation. This project is to be used to manage LDAP directories and to let the users access and modify their data according to specified policies.

## Features

Thanks to its modularity, &LdapSaisie; is easily expansable. Anyway, here's following some of the most used features :

- Management of simple and several-branch directory

- Management of an unlimited amount of object types

- Management of an unlimited amount of users able to log in and use administration interface

- Deep management of user's rights, permitting each objects and attributes to be configured, allowing rights delegation.

- Management of multiple attributes:

  - Text (short, long)

  - Date (customizable formatting)

  - Boolean (customizable)

  - Picture/Photo

  - Password (generation based upon a defined and customizable policy)

  - Email address

  - RSS

  - Hyperlink (URL)

  - XMPP Address

  - Maildir

  - Email quotat

  - Public key (for SSH)

  - Single or multiple choice list

  - Object-Object relations. For instance, member of a group, godfather of a user, etc. (Key/value customizable)

  Each type of attribute has its own feature, which ease Web Interface handling (automatic password generation, field completion according to others, etc.)

- Management of high amount of checking rules for attribute values:

  - Alphanumeric

  - Letters only

  - Strings length (minimum, maximum)

  - Non null value

  - No punctuation marks

  - Only numeric value

  - External value comparison

  - Date

  - Email address

  - Size of pointed file (picture)

  - Dimensions of a picture

  - Filetype of a picture file

  - Policy filters (for password, etc.)

- Gestion simplifiée des relations entre les objets de l'annuaire

- Interface facilement personnalisable grâce à l'utilisation d'un système de template.

- Possibilité de postionner des déclencheurs permettant d'exécuter vos propres scripts, fonctions ou méthodes au moments précis ou l'utilisateur créé, modifie ou supprime un objet ou un de ses attributs. Ces déclencheurs, en fonction de leur positionnement, peuvent influencer le comportement de l'application en empêchant par exemple, la validation des données d'un formulaire.

- Gestion fine de l'affichage des attributs en fonction de l'écran (=vue) sur lequel se trouve l'utilisateur.

- Gestion des dépendances entre attributs, permettant par exemple de regénérer automatiquement la valeur d'un attribut caché lors de la modification d'un autre.

- Possibilité de gérer des attributs entièrement cachés, dont les valeurs seront modifiées lors de la modification d'attribut en dépendance.