diff --git a/doc/LS.entities.xml b/doc/LS.entities.xml new file mode 100644 index 00000000..05e1a73c --- /dev/null +++ b/doc/LS.entities.xml @@ -0,0 +1,23 @@ + +LdapSaisie"> +Net_LDAP2"> +Smarty"> +PHP"> +OpenLDAP"> +Courier"> + +subDn"> +LSprofile"> +LSprofiles"> +LSobject"> +LSobjects"> +LSattribute"> +LSattributes"> +LSrelation"> +LSrelations"> +LSform"> +LSforms"> +LSformat"> +LSformats"> +LSaddon"> +LSaddons"> diff --git a/doc/LdapSaisie.docbook b/doc/LdapSaisie.docbook new file mode 100644 index 00000000..0c27dacf --- /dev/null +++ b/doc/LdapSaisie.docbook @@ -0,0 +1,49 @@ + + + %LS-entities; + + + %conf-entities; + + %conf-LSattribute-LSattr_html-entities; + + %conf-LSattribute-LSattr_ldap-entities; + + %conf-LSattribute-check_data-entities; + + %conf-LSaddon-entities; + + + + +]> + + + + + LdapSaisie + + + Benjamin + Renard + +
+ brenard@easter-eggs.com + benjamin.renard@zionetrix.net +
+
+
+
+ LdapSaisie + Version 0.2 +
+ +&intro; + +&install; + +&conf; +
diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 00000000..3ca61737 --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,13 @@ +DOCBOOK_FILE=LdapSaisie.docbook + +all: validate export + +# Validation +validate: + xmllint --valid --noout $(DOCBOOK_FILE) + +export: + cd exports; make all + +clean: + cd exports; make clean diff --git a/doc/conf/LDAP_search_params.docbook b/doc/conf/LDAP_search_params.docbook new file mode 100644 index 00000000..e96a3755 --- /dev/null +++ b/doc/conf/LDAP_search_params.docbook @@ -0,0 +1,57 @@ + +Paramètres étendus des recherches dans l'annuaire +Les paramètres des recherches sont ceux supportés par &netldap;. Ces +paramètres sont passés sous la forme d'un tableau associatif. Les paramètres +supportés sont détaillés ci-dessous : + + + + + + Nom + Description + Valeur par défaut + + + + + scope + + Définition de l'étendue de la recherche : + + base - Sur une entrée seulement + one - Sur les entrées imédiatement contenu par le basedn de la recherche + sub - Sur l'arbre entier + + + sub + + + sizelimit + Le nombre maximum d'entrées retournées par la recherche. + 0 (illimité) + + + timelimit + Le délai d'attente maximum de la réponse du serveur en secondes. + 0 (illimité) + + + attrsonly + Si vrai, seuls les noms des atttributs seront + retournés. + false + + + attributes + Tableau contenant les noms des attributs que les entrées retournées + peuvent contenir et que l'on souhaite récupérer. + array()(tous) + + + + +Pour plus d'information sur le sujet, vous pouvez consulter la +documentation officiel du projet &netldap;. + + diff --git a/doc/conf/LSaddon.docbook b/doc/conf/LSaddon.docbook new file mode 100644 index 00000000..93cbad79 --- /dev/null +++ b/doc/conf/LSaddon.docbook @@ -0,0 +1,11 @@ + + + Configuration des LSaddons + + Cette partie décrit la manière de configurer les différents &LSaddons; + actuellement supportés par &LdapSaisie;. FIXME + + + &conf-LSaddon_maildir; + + diff --git a/doc/conf/LSaddon/LSaddon.entities.xml b/doc/conf/LSaddon/LSaddon.entities.xml new file mode 100644 index 00000000..73773cbb --- /dev/null +++ b/doc/conf/LSaddon/LSaddon.entities.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/doc/conf/LSaddon/LSaddon_maildir.docbook b/doc/conf/LSaddon/LSaddon_maildir.docbook new file mode 100644 index 00000000..1a09f7b2 --- /dev/null +++ b/doc/conf/LSaddon/LSaddon_maildir.docbook @@ -0,0 +1,5 @@ + + LSaddon_maildir + Cet &LSaddon; est utilisé pour gérer la manipulation distante de maildir. + FIXME + diff --git a/doc/conf/LSattribute.docbook b/doc/conf/LSattribute.docbook new file mode 100644 index 00000000..5125ac41 --- /dev/null +++ b/doc/conf/LSattribute.docbook @@ -0,0 +1,237 @@ + + Configuration des attributs + Cette section décrit les options de configuration des attributs des + &LSobjects;. Les attributs sont définis dans le tableau associatif + attrs de la configuration des &LSobjects;. Dans ce tableau, + les clé les noms des attributs et les valeurs liés sont la configuration des + attributs. + + Contrairement à ce qui existe dans le standard LDAP, les + noms des attributs sont sensibles à la casse. Il faut que le nom des attributs + dans &LdapSaisie; soient scrupuleusement les mêmes que ceux retourné par + &netldap; + + +Structure... + array ( + /* ----------- start -----------*/ + 'attr1' => array ( + 'label' => _('[label de l'attr1'), + 'help_info' => _('[Message d'aide sur l'attribut attr1'), + 'ldap_type' => 'ldaptype1', + 'ldap_options' => array( + // Options LDAP liées au type LDAP de l'attribut + ), + 'html_type' => 'htmltype1', + 'html_options' => array( + // Options HTML liées au type HTML de l'attribut + ), + 'multiple' => 0, + 'required' => 1, + 'default_value' => 'valeur1', + 'check_data' => array ( + // Régle de vérification syntaxique des données saisies + ), + 'validation' => array ( + // Règle de vérification d'intégrité des données saisies + ), + 'rights' => array( + 'LSprofile1' => 'droit1', + 'LSprofile2' => 'droit2', + ... + ), + 'view' => 1, + 'form' => array ( + 'create' => 1, + 'modify' => 0, + ... + ), + 'dependAttrs' => array( + // Attributs en dépendance + ), + 'generate_function' => 'fonction1' + ), + /* ----------- end -----------*/ + ... +);]]> +... + + + + +Paramètres de configuration + + + label + + Le label de l'attribut. + + + + + + help_info + + Message d'aide qui sera affiché dans une bulle d'aide à côté du + nom de l'attribut dans les formulaires. + + + + + ldap_type + + Le type LDAP de l'attribut. + Voir la section concernée. + + + + + ldap_options + + Tableau associatif contenant les paramètres de configuration du + type LDAP de l'attribut. + Voir la section concernée. + + + + + html_type + + Le type HTML de l'attribut. + Voir la section concernée. + + + + + html_options + + Tableau associatif contenant les paramètres de configuration du + type HTML de l'attribut. + Voir la section concernée. + + + + + multiple + + Booléen définissant si cet attribut peut stocker plusieurs valeurs. + Valeurs possibles : 0 ou 1 + Valeur par défaut : 0 + + + + + required + + Booléen définissant si cet attribut doit obligatoirement être + défini. + Valeurs possibles : 0 ou 1 + Valeur par défaut : 0 + + + + + default_value + + Valeur par défaut de l'attribut. + Valeurs possibles : 0 ou 1 + + + + + check_data + + Tableau associatif contenant les règles de vérification syntaxique + des données de l'attribut.Voir + la section concernée. + + + + + validation + + Tableau associatif contenant les règles de vérification d'intégrité + des données de l'attribut.Voir + la section concernée. + + + + + rights + + Tableau associatif dont les clés sont les noms des &LSprofiles; ayant + des droits sur cet attribut et les valeurs associées sont les droits + correspondants. La valeur des droits d'un &LSprofile; peut être + r pour le droit de lecture ou w pour + le droit de lecture-écriture. Par défaut, un &LSprofile; n'a aucun droit. + + + + + view + + Booléen définissant si l'attribut est, ou non, affiché lors de la + visualisation des objets du type courant. + Valeurs possibles : 0 ou 1 + Valeur par défaut : 0 + + + + + form + + Tableau associatif dont les clés sont les noms des &LSforms; et les + valeurs associées la définition de l'affichage dans ce &LSform;. Si cette + valeur vaut 0, alors l'attribut sera lecture-seule et si + cette valeur vaut 1, cet attribut sera affiché en + lecture-écriture. + + + + + dependAttrs + + Tableau associatif listant les attributs dépendants de celui-ci. + Les attributs listés ici seront regénérés lors de chaque modification + de l'attribut courant. Cette génération sera effectué avec la fonction + définie dans le paramètre generate_function de + l'attribut. + + + + + generate_function + + Nom de la fonction permettant de générer la valeur de l'attribut. + Cette fonction sera éxecutée, en passant en premier paramètre, l'objet + &LSobject; courant. + + + + + before_modify + + Nom de la fonction qui sera exécutée avant toutes modifications de + la valeur de l'attribut.Voir la + section concernée + + + + + after_modify + + Nom de la fonction qui sera exécutée après toutes modifications de + la valeur de l'attribut.Voir la + section concernée + + + + + &conf-LSattribute-LSattr_ldap; + &conf-LSattribute-LSattr_html; + + &conf-LSattribute-check-data; + &conf-LSattribute-validation; + &conf-LSattribute-triggers; + + diff --git a/doc/conf/LSattribute/LSattr_html.docbook b/doc/conf/LSattribute/LSattr_html.docbook new file mode 100644 index 00000000..33ec2f15 --- /dev/null +++ b/doc/conf/LSattribute/LSattr_html.docbook @@ -0,0 +1,22 @@ + + Configuration des attributs HTML + Cette section décrit les options propres à chacun des types d'attributs HTML + supportés par &LdapSaisie;. + + &conf-LSattr_html_boolean; + &conf-LSattr_html_date; + &conf-LSattr_html_image; + &conf-LSattr_html_mail; + &conf-LSattr_html_maildir; + &conf-LSattr_html_mailQuota; + &conf-LSattr_html_password; + &conf-LSattr_html_rss; + &conf-LSattr_html_select_list; + &conf-LSattr_html_select_object; + &conf-LSattr_html_ssh_key; + &conf-LSattr_html_text; + &conf-LSattr_html_textarea; + &conf-LSattr_html_url; + &conf-LSattr_html_xmpp; + + diff --git a/doc/conf/LSattribute/LSattr_html/LSattr_html.entities.xml b/doc/conf/LSattribute/LSattr_html/LSattr_html.entities.xml new file mode 100644 index 00000000..6339df2b --- /dev/null +++ b/doc/conf/LSattribute/LSattr_html/LSattr_html.entities.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/doc/conf/LSattribute/LSattr_html/LSattr_html_boolean.docbook b/doc/conf/LSattribute/LSattr_html/LSattr_html_boolean.docbook new file mode 100644 index 00000000..9b0cf155 --- /dev/null +++ b/doc/conf/LSattribute/LSattr_html/LSattr_html_boolean.docbook @@ -0,0 +1,14 @@ + + LSattr_html_boolean + Ce type est utilisé pour la gestion des attributs dont la valeur est + un booléen. Pour le moment, les attributs à valeurs multiples ne sont pas gérés. + La valeur retournée est l'une des chaînes de caractères suivantes : + + yes pour Vrai + no pour Faux + + Pour maîtriser les valeurs stockées dans l'annuaire, il faut + coupler ce type d'attribut HTML avec le type d'attribut LDAP + boolean + + diff --git a/doc/conf/LSattribute/LSattr_html/LSattr_html_date.docbook b/doc/conf/LSattribute/LSattr_html/LSattr_html_date.docbook new file mode 100644 index 00000000..236e9162 --- /dev/null +++ b/doc/conf/LSattribute/LSattr_html/LSattr_html_date.docbook @@ -0,0 +1,40 @@ + + LSattr_html_date + Ce type est utilisé pour la gestion des attributs dont la valeur est + une date. + + +Structure... + array ( + 'firstDayOfWeek' => '[Le rang du premier jour de la semaine]', + 'format' => '[Format d'affichage de la date]', +),]]> +... + + + +Paramètres de configuration + + + firstDayOfWeek + + Un entier correspondant au rang du premier jour de la semaine : + de 0 à 6, 0 correspondant à Dimanche et 6 à Lundi. + La valeur par défaut est 0, donc Dimanche. + + + + + format + + Format d'affichage de la date dans le champ de saisie. Ce format + est composé à partir des motifs clés suivants : FIXME + La valeur par défaut est %d/%m/%Y, %T. + Exemple : 23/04/2009, 23:03:04 + + + + + + + diff --git a/doc/conf/LSattribute/LSattr_html/LSattr_html_image.docbook b/doc/conf/LSattribute/LSattr_html/LSattr_html_image.docbook new file mode 100644 index 00000000..02f71207 --- /dev/null +++ b/doc/conf/LSattribute/LSattr_html/LSattr_html_image.docbook @@ -0,0 +1,6 @@ + + LSattr_html_image + Ce type est utilisé pour la gestion des attributs dont la valeur est + une image. Pour le moment, les attributs à valeurs multiples ne sont pas gérés. + + diff --git a/doc/conf/LSattribute/LSattr_html/LSattr_html_mail.docbook b/doc/conf/LSattribute/LSattr_html/LSattr_html_mail.docbook new file mode 100644 index 00000000..631b2371 --- /dev/null +++ b/doc/conf/LSattribute/LSattr_html/LSattr_html_mail.docbook @@ -0,0 +1,10 @@ + + LSattr_html_mail + Ce type est utilisé pour la gestion des attributs dont la valeur est + une adresse e-mail. Il propose directement dans l'interface, la possibilité + d'envoyer des mails à l'adresse saisie. + Ce type d'attribut HTML est dérivé du type + text. Il profite donc de toutes + les fonctionnalités d'un champ de ce type (autogénération, ...). + + diff --git a/doc/conf/LSattribute/LSattr_html/LSattr_html_mailQuota.docbook b/doc/conf/LSattribute/LSattr_html/LSattr_html_mailQuota.docbook new file mode 100644 index 00000000..74fca6bf --- /dev/null +++ b/doc/conf/LSattribute/LSattr_html/LSattr_html_mailQuota.docbook @@ -0,0 +1,7 @@ + + LSattr_html_mailQuota + Ce type est utilisé pour la gestion des attributs dont la valeur est + le quota d'une boite mail. Le format de la valeur générée correspondant au format + attendu par le serveur de mail &courier;. Exemple : 50000000S + correspond à un quota de 50Mio. + diff --git a/doc/conf/LSattribute/LSattr_html/LSattr_html_maildir.docbook b/doc/conf/LSattribute/LSattr_html/LSattr_html_maildir.docbook new file mode 100644 index 00000000..2b8fa322 --- /dev/null +++ b/doc/conf/LSattribute/LSattr_html/LSattr_html_maildir.docbook @@ -0,0 +1,82 @@ + + LSattr_html_maildir + Ce type est utilisé pour la gestion des attributs dont la valeur est + le chemin d'une maildir. Typiquement, ce type attribut HTML est utile dans + le cas de l'attribut mailbox utilisé par maildrop pour + stocker le chemin des boites mails. Ce type d'attribut offre la possibilité de + gérér un niveau de l'attribut et à travers les déclencheurs gérés par &LdapSaisie; + la création, la modification et ou la suppression de la boite mails. Le &LSaddon; + boolean est utilisé pour manipuler + la boite mail à distance. + + + Actuellement, cet &LSaddon; ne gérant que l'accès via FTP au + serveur distant, l'API d'accès via FTP est attaquée directement. + + +Structure... + array ( + 'LSform' => array ( + '[LSform1]' => [booléen], + '[LSform2]' => [booléen], + ... + ), + 'remoteRootPathRegex' => "[Expression régulière pour matcher le dossier à créer]", + 'archiveNameFormat' => "[LSformat du chemin/nom du fichier une fois archiver]" + ),]]> +... + + + +Paramètres de configuration + + + LSform + + Tableau associatif obligatoire contenant en valeur clé le nom des + &LSforms; dans lesquels la fonctionnalité de modification de la boite mail + sera présente. Les valeurs attachées sont des booléens définissant si la + modification est active par défaut. + + + + + remoteRootPathRegex + + Expression régulière facultative dont le but est de + matcher dans la valeur complète du chemin distant de la + maildir, le chemin de la maildir + à créer une fois connecté sur le serveur. + Exemple : Si le chemin complet de la maildir est + /home/vmail/user, mais que l'utilisateur FTP lorsqu'il + se connecte arrive directement dans /home/vmail, et faut + définir le paramètre remoteRootPathRegex de la manière + suivante : + ^\/home\/vmail\/([^\/]*)\/+$ + + + + + + archiveNameFormat + + &LSformat; du nom du dossier de la maildir une + fois archivée. Si ce format est défini, le dossier ne sera pas supprimé mais + déplacé ou rénommé. Le format sera construit avec pour seul mot clé, le nom + de l'ancien dossier. Exemple : Si le dossier de la maildir est + /home/vmail/user et le paramètre + archiveNameFormat vaut %{old}.bckp, + le dossier sera renommé en /home/vmail/user.bckp. + Ce format est interprété après application de la routine + liée au paramètre remoteRootPathRegex. Ainsi, dans + l'exemple précédent, si le paramètre remoteRootPathRegex + tronquait uniquement le nom du dossier final, c'est à dire user, + le format une fois interprété donnerai user.bckp. + + + + + + + + diff --git a/doc/conf/LSattribute/LSattr_html/LSattr_html_password.docbook b/doc/conf/LSattribute/LSattr_html/LSattr_html_password.docbook new file mode 100644 index 00000000..fd58d68e --- /dev/null +++ b/doc/conf/LSattribute/LSattr_html/LSattr_html_password.docbook @@ -0,0 +1,157 @@ + + LSattr_html_password + Ce type est utilisé pour la gestion des attributs dont la valeur est + un mot de passe. + + +Structure... + array( + 'generationTool' => [booleen], + 'autoGenerate' => [booleen], + 'lenght' => [nombre de caractères], + 'chars' => array ( // Caractères que peut contenir le mot de passe + array( // Liste caractère avec un nombre mininum d'apparition supérieur à 1 + 'nb' => [nb caractères], + 'chars' => '[liste de caractères possibles]' + ), + '[autre liste de caractères possible]', // Liste caractère avec un nombre + // d'apparitions égal à 1 + ... + ), + 'verify' => [booléen], // Activation de l'outil de vérification du mot de passe + 'mail' => array( // Configuration de l'envoi du mot de passe par mail + 'subject' => "[LSformat du sujet du mail]", + 'msg' => "[LSformat du message du mail]", + 'mail_attr' => 'mail', // Attribut mail de l'objet + 'send' => 1, // Activation par défaut de l'envoi du mot de passe + 'ask' => 1, // Laisser le choix à l'utilisateur + 'canEdit' => 1 // Activation de l'édition du LSformat du message par l'utilisateur + ) +),]]> +... + + + +Paramètres de configuration + + + generationTool + + Booléen définissant si l'outil de génération de mot de passe est + activé. + + + + + autoGenerate + + Active la génération automatique du mot de passe lorsque l'attribut + n'a encore aucune valeur de définie. Il faut également que l'outil de + génération soit activé (generationTool). + + + + + lenght + + Nombre de caractères que devront contenir les mots de passe générés. + + + + + + chars + + Tableau contenant une liste de listes de caractères possibles pour + composer le mot de passe. Dans chacune de ces listes, au moins un caractère + sera utilisé dans le nouveau mot de passe. Il est possible de définir un + nombre supérieur de caractères d'une liste devant apparaître dans les mots de + passe générés en spécifiant un tableau associatif dont la clé nb + associra le nombre entier de caractères et la clé chars + la liste de caractères. Une liste de caractères est un chaîne. + + + + + verify + + Booléen définissant si l'outil de vérification du mot de passe est + activé. Si celui-ci est activé, l'utilisateur pourra entrer un mot de passe + dans le champ et cliquer sur un bouton qui lancera une procédure de + vérification du mot de passe via un test de connexion à l'annuaire. + + + + + mail + + Paramètres de configuration de l'envoi par mail du mot de passe à + l'utilisateur. Lorsque cet outil est activé, lors de la modification/création + du mot de passe, l'utilisateur pourra recevoir un mail lui spécifiant son + nouveau mot de passe. + + + Paramêtres de configuration + + + send + + Booléen définissant si l'envoi du mot de passe est activé par + défaut. + + + + + ask + + Booléen définissant si on laisse le choix à l'utilisateur + d'activer ou non l'envoi du mot de passe par mail. + + + + + canEdit + + Booléen définissant si on laisse la possibilité à l'utilisateur + d'éditer le &LSformat; du message et du sujet. + + + + + subject + + &LSformat; du sujet du mail. Ce format sera composé avec la + valeur du nouveau mot de passe de l'utilisateur. + + + + + msg + + &LSformat; du message du mail. Ce format sera composé avec la + valeur du nouveau mot de passe de l'utilisateur. + + + + + mail_attr + + Le nom de l'attribut listant les mails possibles de + l'utilisateur. Par défaut, la première valeur de l'attribut sera + utilisée comme adresse mail destinatrice. + Si canEdit est activé, l'utilisateur pourra + choisir l'adresse mail destinatrice parmi la liste des valeurs de + l'attribut. + + + + + + + + + + + + + diff --git a/doc/conf/LSattribute/LSattr_html/LSattr_html_rss.docbook b/doc/conf/LSattribute/LSattr_html/LSattr_html_rss.docbook new file mode 100644 index 00000000..5580c502 --- /dev/null +++ b/doc/conf/LSattribute/LSattr_html/LSattr_html_rss.docbook @@ -0,0 +1,10 @@ + + LSattr_html_rss + Ce type est utilisé pour la gestion des attributs dont la valeur est + l'URL d'un flux RSS. Il propose directement dans l'interface, la possibilité + d'accèder au flux RSS. + Ce type d'attribut HTML est dérivé du type + text. Il profite donc de toutes + les fonctionnalités d'un champ de ce type (autogénération, ...). + + diff --git a/doc/conf/LSattribute/LSattr_html/LSattr_html_select_list.docbook b/doc/conf/LSattribute/LSattr_html/LSattr_html_select_list.docbook new file mode 100644 index 00000000..dc8e1d4e --- /dev/null +++ b/doc/conf/LSattribute/LSattr_html/LSattr_html_select_list.docbook @@ -0,0 +1,100 @@ + + LSattr_html_select_list + Ce type est utilisé pour la gestion des attributs dont les valeurs font + partie d'une liste statique ou dynamique. Il est possible de lister des valeurs + statiques et également des références à d'autres &LSobjects;. La référence à + un objet correspond à une valeur clé, référente à un objet précis, qui peut être + soit la valeur d'un de ses attributs, soit son DN. + + +Structure... + array ( + 'possible_values' => array ( + '[LSformat de la valeur clé]' => '[LSformat du nom d'affichage]', + ... + 'OTHER_OBJECT' => array ( + 'object_type' => '[Type d'LSobject]', + 'display_name_format' => '[LSformat du nom d'affichage des LSobjects]', + 'value_attribute' => '[Nom de l'attribut clé]', + 'filter' => '[Filtre de recherche des LSobject]', + 'scope' => '[Scope de la recherche]', + 'basedn' => '[Basedn de la recherche]' + ) + ) +),]]> +... + + + +Paramètres de configuration + + + possible_values + + Tableau associatif obligatoire contenant en valeur clé le &LSformat; + des valeurs clés prisent par l'attribut et en valeurs associées, le &LSformat; + des noms d'affichage de ces valeurs. Ces &LSformats; sont composés à partir des + valeurs de l'objet courant (attributs, dn, ...). + + Si la valeur clé est égale à OTHER_OBJECT, une liste + d'&LSobject; sera insérée dans la liste des valeurs possibles. La valeur + associée est alors un tableau associatif dont les valeurs clés sont les noms + des paramètres de configuration de la recherche de ces &LSobjects; et les + valeurs associées, les valeurs des paramètres. + + + + object_type + + Nom du type d'&LSobject; en référence. + + + + + + + display_name_format + + &LSformat; du nom d'affichage des objets lors de leur sélection. + + + + + + + value_attribute + + Nom de l'attribut des &LSobjects; en référence servant de valeur + clé et permettant de les identifier (Exemple : dn ou + uid). + + + + + + + filter + + Filtre falcultatif de la recherche des LSobjets. Il sera dans tous + les cas agrémenté des valeurs des objectclass du type + d'&LSobject;. + + + + + + + filter + + Basedn falcultatif de la recherche des LSobjets. + + + + + + + + + + + diff --git a/doc/conf/LSattribute/LSattr_html/LSattr_html_select_object.docbook b/doc/conf/LSattribute/LSattr_html/LSattr_html_select_object.docbook new file mode 100644 index 00000000..9847fba6 --- /dev/null +++ b/doc/conf/LSattribute/LSattr_html/LSattr_html_select_object.docbook @@ -0,0 +1,67 @@ + + LSattr_html_select_object + Ce type est utilisé pour la gestion des attributs dont les valeurs sont + des références à d'autres &LSobjects;. Chaque référence à un objet correspond + à une valeur prise par l'attribut. Les valeurs clés référant à un &LSobject; + sont soit la valeur d'un de leurs attributs, soit leur DN. + + +Structure... + array ( + selectable_object => array ( + 'object_type' => '[Type d'LSobject selectionnable]', + 'display_name_format' => '[LSformat du nom d'affichage des LSobjects]', + 'value_attribute' => '[Nom de l'attribut clé des LSobjects]' + ) +),]]> +... + + + +Paramètres de configuration + + + selectable_object + + Tableau associatif obligatoire contenant en valeur clé le nom des + paramètres de configuration et dont les valeurs attachées sont les valeurs + des paramètres. + + + + + object_type + + Nom du type d'&LSobject; en référence. + + + + + + + display_name_format + + &LSformat; du nom d'affichage des objets lors de leur sélection. + + + + + + + value_attribute + + Nom de l'attribut des &LSobjects; en référence servant de valeur + clé et permettant de les identifier (Exemple : dn ou + uid). + + + + + + + + + + + + diff --git a/doc/conf/LSattribute/LSattr_html/LSattr_html_ssh_key.docbook b/doc/conf/LSattribute/LSattr_html/LSattr_html_ssh_key.docbook new file mode 100644 index 00000000..14773555 --- /dev/null +++ b/doc/conf/LSattribute/LSattr_html/LSattr_html_ssh_key.docbook @@ -0,0 +1,6 @@ + + LSattr_html_ssh_key + Ce type est utilisé pour la gestion des attributs dont la valeur est + une clef publique SSH. Il permet dans l'interface, d'avoir un affichage adapté + à ce type de donnée. + diff --git a/doc/conf/LSattribute/LSattr_html/LSattr_html_text.docbook b/doc/conf/LSattribute/LSattr_html/LSattr_html_text.docbook new file mode 100644 index 00000000..378eecab --- /dev/null +++ b/doc/conf/LSattribute/LSattr_html/LSattr_html_text.docbook @@ -0,0 +1,96 @@ + + LSattr_html_text + Ce type est utilisé pour la gestion des attributs dont la valeur est + une chaîne de caractères devant être affichée dans un champ + input HTML de type text. + + +Structure... + array( + 'generate_value_format' => '[LSformat pour la génération de la valeur]', + 'autoGenerateOnCreate' => [booléen], + 'autoGenerateOnModify' => [booléen], + 'withoutAccent' => [booleen], + 'replaceSpaces' => "[chaîne de remplacement]", + 'upperCase' => [booleen], + 'lowerCase' => [booleen] +),]]> +... + + + +Paramètres de configuration + + + generate_value_format + + &LSformat; de la valeur utilisée pour la génération automatique de + celle-ci à partir des informations saisies dans le formulaire. Les valeurs + clefs du format sont les noms des attributs de l'objet. Seuls les attributs + affichés au moins en lecture seule dans le formulaire peuvent être utilisés + dans le format. Une seule valeur par attribut sera utilisée pour la + génération : celle du premier champ (dans l'ordre d'apparition dans le + formulaire). + Seuls les éléments du formulaire de type HTML + input, select ou + textarea peuvent être utilisés. + + + + + autoGenerateOnCreate + + Activation de la génération automatique lorsque celui-ci est + vide au moment du chargement du formulaire. + La valeur par défaut est False. + + + + + autoGenerateOnModify + + Activation de la génération automatique lors de chaque + modification de la valeur des champs du formulaire lié. + La valeur par défaut est False. + + + + + withoutAccent + + Activation de la suppression des accents dans la chaîne de + caractères générée automatiquement. + La valeur par défaut est False. + + + + + withoutAccent + + Activation du remplacement des accents dans la chaîne de + caractères générée automatiquement. La valeur de remplacement est celle du + paramètre. + La valeur par défaut est False. + + + + + upperCase + + Activation de la mise en majuscule de la valeur générée + automatiquement. + La valeur par défaut est False. + + + + + lowerCase + + Activation de la mise en minuscule de la valeur générée + automatiquement. + La valeur par défaut est False. + + + + + diff --git a/doc/conf/LSattribute/LSattr_html/LSattr_html_textarea.docbook b/doc/conf/LSattribute/LSattr_html/LSattr_html_textarea.docbook new file mode 100644 index 00000000..b67de460 --- /dev/null +++ b/doc/conf/LSattribute/LSattr_html/LSattr_html_textarea.docbook @@ -0,0 +1,7 @@ + + LSattr_html_textarea + Ce type est utilisé pour la gestion des attributs dont la valeur est une + chaine de caractères trop longue pour être saisie dans un champs HTML + imput de type text et est plus adapté + à un champ HTML textarea. + diff --git a/doc/conf/LSattribute/LSattr_html/LSattr_html_url.docbook b/doc/conf/LSattribute/LSattr_html/LSattr_html_url.docbook new file mode 100644 index 00000000..05e61c3b --- /dev/null +++ b/doc/conf/LSattribute/LSattr_html/LSattr_html_url.docbook @@ -0,0 +1,11 @@ + + LSattr_html_url + Ce type est utilisé pour la gestion des attributs dont la valeur est + une URL. Il propose directement dans l'interface, la possibilité d'accèder au + site ou encore de l'ajouter dans ses favoris (lorsque le navigateur le + supporte). + Ce type d'attribut HTML est dérivé du type + text. Il profite donc de toutes + les fonctionnalités d'un champ de ce type (autogénération, ...). + + diff --git a/doc/conf/LSattribute/LSattr_html/LSattr_html_xmpp.docbook b/doc/conf/LSattribute/LSattr_html/LSattr_html_xmpp.docbook new file mode 100644 index 00000000..9a8d2115 --- /dev/null +++ b/doc/conf/LSattribute/LSattr_html/LSattr_html_xmpp.docbook @@ -0,0 +1,14 @@ + + LSattr_html_xmpp + Ce type est utilisé pour la gestion des attributs dont la valeur est + une adresse XMPP. Il propose directement dans l'interface, la possibilité + de lancer une fenêtre de dialogue avec l'interlocuteur de son client XMPP + préféré . + Cette fonctionnalité n'est supporté uniquement par les + navigateurs web supportant les URI de type xmpp://~~. + + Ce type d'attribut HTML est dérivé du type + text. Il profite donc de toutes + les fonctionnalités d'un champ de ce type (autogénération, ...). + + diff --git a/doc/conf/LSattribute/LSattr_ldap.docbook b/doc/conf/LSattribute/LSattr_ldap.docbook new file mode 100644 index 00000000..948656d1 --- /dev/null +++ b/doc/conf/LSattribute/LSattr_ldap.docbook @@ -0,0 +1,12 @@ + + Configuration des attributs LDAP + Cette section décrit les options propres à chacun des types d'attributs LDAP + supportés par &LdapSaisie;. + + &conf-LSattr_ldap_ascii; + &conf-LSattr_ldap_boolean; + &conf-LSattr_ldap_date; + &conf-LSattr_ldap_image; + &conf-LSattr_ldap_numeric; + &conf-LSattr_ldap_password; + diff --git a/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap.entities.xml b/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap.entities.xml new file mode 100644 index 00000000..95bb5288 --- /dev/null +++ b/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap.entities.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_ascii.docbook b/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_ascii.docbook new file mode 100644 index 00000000..1a144ff1 --- /dev/null +++ b/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_ascii.docbook @@ -0,0 +1,6 @@ + + LSattr_ldap_ascii + Ce type est utilisé pour la gestion des attributs dont la valeur est + une chaine de caractère. Ce type est le type par défaut. + + diff --git a/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_boolean.docbook b/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_boolean.docbook new file mode 100644 index 00000000..8d96e145 --- /dev/null +++ b/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_boolean.docbook @@ -0,0 +1,37 @@ + + LSattr_ldap_boolean + Ce type est utilisé pour la gestion des attributs dont la valeur est + une booléen. On attend ici par booléen, tout attribut ne pouvant prendre que deux + valeurs pré-définies correspond pour l'un à Oui et l'autre + à Non + + + Structure... + array ( + 'true_value' => '[valeur correspondant à Vrai]', + 'false_value' => '[valeur correspondant à Faux]' +),]]> +... + + + +Paramètres de configuration + + + true_value + + La valeur de l'attribut correspondant à Vrai­. + + + + + false_value + + La valeur de l'attribut correspondant à Faux­. + + + + + + + diff --git a/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_date.docbook b/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_date.docbook new file mode 100644 index 00000000..faaef03c --- /dev/null +++ b/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_date.docbook @@ -0,0 +1,47 @@ + + LSattr_ldap_date + Ce type est utilisé pour la gestion des attributs dont la valeur est + une date. + + + Structure... + array ( + 'timestamp' => [Booléen], // Si la date est stockée au format timestamp + 'format' => '[Format de stockage]' // Default : "%Y%m%d%H%M%SZ" +),]]> +... + + + +Paramètres de configuration + + + timestamp + + Booléen définissant si la date est stockée sous la forme d'un + timestamp Unix (nombre de secondes depuis le 1er janvier 1970 à 00:00:00 + UTC)­. + Si timestamp est vrai, &LdapSaisie; ne tient + pas compte du paramètre format. + + + + + format + + Format de stockage de la date dans l'annuaire. Ce format est composé à + partir des motifs clés gérés par la fonction strftime() + de &php;. Pour plus d'information, consulter + la documentation officielle. + La valeur par défaut est %Y%m%d%H%M%SZ, + correspondant au format de stockage par défaut dans &openldap;. Exemple : + 20091206230506Z + + + + + + + + + diff --git a/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_image.docbook b/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_image.docbook new file mode 100644 index 00000000..ce9dcced --- /dev/null +++ b/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_image.docbook @@ -0,0 +1,7 @@ + + LSattr_ldap_image + Ce type est utilisé pour la gestion des attributs dont la valeur est + une image. Pour le moment, aucun traitement particulier n'est appliqué pour le + stockage. + + diff --git a/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_numeric.docbook b/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_numeric.docbook new file mode 100644 index 00000000..91284d09 --- /dev/null +++ b/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_numeric.docbook @@ -0,0 +1,7 @@ + + LSattr_ldap_numeric + Ce type est utilisé pour la gestion des attributs dont la valeur est + un nombre. Pour le moment, aucun traitement particulier est n'appliqué pour le + stockage. + + diff --git a/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_password.docbook b/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_password.docbook new file mode 100644 index 00000000..2a7dd85f --- /dev/null +++ b/doc/conf/LSattribute/LSattr_ldap/LSattr_ldap_password.docbook @@ -0,0 +1,55 @@ + + LSattr_ldap_password + Ce type est utilisé pour la gestion des attributs dont la valeur est + un mot de passe. + + + Structure... + array ( + 'encode' => '[Type d'encodage du mot de passe]', + 'no_random_crypt_salt' => '[Booléen]' // Désactivation de l'utilisation d'une salt aléatoire +),]]> +... + + + +Paramètres de configuration + + + encode + + Nom du type d'encodage du mot de passe utilisé. Les types d'encodages + supportés sont les suivants : + + md5crypt + crypt + ext_des + blowfish + sha + ssha + smd5 + md5 + clear + + Valeur par défaut : md5crypt + Si le type d'encodage est inconnu, ou qu'il n'est pas + supporté par le serveur web, un message d'erreur alertera l'utilisateur et le + mot de passe sera stocké en clair. + + + + + + no_random_crypt_salt + + Désactivation de l'utilisation d'une salt générée aléatoirement au + profit de l'utilisation des deux premiers caractères du mot de passe. + Ce paramètre impacte uniquement le type de cryptage crypt. + + + + + + + + diff --git a/doc/conf/LSattribute/check-data.docbook b/doc/conf/LSattribute/check-data.docbook new file mode 100644 index 00000000..52be7c7e --- /dev/null +++ b/doc/conf/LSattribute/check-data.docbook @@ -0,0 +1,66 @@ + + Configuration des règles de vérification syntaxique + Cette section décrit la manière de configuer des règles de vérification + syntaxique sur les données des attributs. Ces règles seront utilisées pour vérifier + que les valeurs saisies par un utilisateur dans un formulaire sont correctes. + + +Structure... + array ( + '[regle1]' => array( + 'msg' => _("[Message d'erreur]"), + 'params' => array( + // Paramètres de la règle + ) + ), + ... +),]]> +... + + +Le paramètre check_data est un tableau associatif +dont les clés sont les noms des règles de vérification syntaxique actives et les +valeurs associées sont des tableaux associatifs contenant les paramètres des +règles. + + +Paramètres de configuration + + + msg + + Le message d'erreur à afficher lors que la règle n'est pas respectée. + + + + + params + + Tableau associatif contenant les paramètres de la règle. Les + paramètres possibles sont propres à chaque type de règle. Les clès sont les + noms des paramètres et les valeurs associés, les valeurs des paramètres. + + + + + +&conf-LSattribute-check-data-alphanumeric; +&conf-LSattribute-check-data-date; +&conf-LSattribute-check-data-email; +&conf-LSattribute-check-data-filesize; +&conf-LSattribute-check-data-imagefile; +&conf-LSattribute-check-data-imagesize; +&conf-LSattribute-check-data-lettersonly; +&conf-LSattribute-check-data-maxlength; +&conf-LSattribute-check-data-minlength; +&conf-LSattribute-check-data-mimetype; +&conf-LSattribute-check-data-nonzero; +&conf-LSattribute-check-data-nopunctuation; +&conf-LSattribute-check-data-numeric; +&conf-LSattribute-check-data-password; +&conf-LSattribute-check-data-rangelength; +&conf-LSattribute-check-data-regex; +&conf-LSattribute-check-data-required; +&conf-LSattribute-check-data-telephonenumber; + + diff --git a/doc/conf/LSattribute/check_data/LSattribute-check_data.entities.xml b/doc/conf/LSattribute/check_data/LSattribute-check_data.entities.xml new file mode 100644 index 00000000..74bad917 --- /dev/null +++ b/doc/conf/LSattribute/check_data/LSattribute-check_data.entities.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/doc/conf/LSattribute/check_data/alphanumeric.docbook b/doc/conf/LSattribute/check_data/alphanumeric.docbook new file mode 100644 index 00000000..b8ac6e4a --- /dev/null +++ b/doc/conf/LSattribute/check_data/alphanumeric.docbook @@ -0,0 +1,6 @@ + + alphanumeric + Cette règle vérifie que la valeur est une chaîne de caractères composée + uniquement de lettres non-accuentées, en minuscule ou en majuscule et/ou de + chiffres. + diff --git a/doc/conf/LSattribute/check_data/date.docbook b/doc/conf/LSattribute/check_data/date.docbook new file mode 100644 index 00000000..8d8a3314 --- /dev/null +++ b/doc/conf/LSattribute/check_data/date.docbook @@ -0,0 +1,21 @@ + + date + Cette règle vérifie que la valeur saisie est bien une date et qu'elle + respecte un format précis. + + +Paramètres de configuration + + + format + + Format de la date à respecter. Ce format doit être compatible avec la + fonction strftime() de &php;. + Voir la documentation de la + fonction + + + + + + diff --git a/doc/conf/LSattribute/check_data/email.docbook b/doc/conf/LSattribute/check_data/email.docbook new file mode 100644 index 00000000..05c70b0c --- /dev/null +++ b/doc/conf/LSattribute/check_data/email.docbook @@ -0,0 +1,29 @@ + + email + Cette règle vérifie que la valeur saisie est bien une adresse e-mail. Il + est possible de vérifier si elle appartient bien à un domaine en particulier ou + encore de vérifier si le domaine existe et qu'il possède un serveur de mail(MX). + + +Paramètres de configuration + + + domain + + Nom de domaine obligatoire. Ce paramètre peut être une simple chaine + correspondant au domaine ou un tableau listant plusieurs domaines + possibles. + + + + + checkDomain + + Booléen définissant si le domaine de l'adresse mail doit être + validé. + + + + + + diff --git a/doc/conf/LSattribute/check_data/filesize.docbook b/doc/conf/LSattribute/check_data/filesize.docbook new file mode 100644 index 00000000..2a17620d --- /dev/null +++ b/doc/conf/LSattribute/check_data/filesize.docbook @@ -0,0 +1,25 @@ + + filesize + Cette règle vérifie que la valeur est un fichier dont la taille en octets + respecte les limites passées en paramètre. + + +Paramètres de configuration + + + minSize + + Taille minimum. + + + + + maxSize + + Taille maximum. + + + + + + diff --git a/doc/conf/LSattribute/check_data/imagefile.docbook b/doc/conf/LSattribute/check_data/imagefile.docbook new file mode 100644 index 00000000..a42ee961 --- /dev/null +++ b/doc/conf/LSattribute/check_data/imagefile.docbook @@ -0,0 +1,12 @@ + + imagefile + Cette règle vérifie que la valeur est bien un fichier et que le type mime + de celui-ci est bien une image. Cette règle utilise la règle mimetype en spécifiant + si l'utilisateur ne le fait pas que le type mime doit respecter la regex suivante : + /image\/.*/ + + Cette règle est une simple interface à la règle mimetype, + il est donc possible de passer d'autres paramètres propres à ce type. + + + diff --git a/doc/conf/LSattribute/check_data/imagesize.docbook b/doc/conf/LSattribute/check_data/imagesize.docbook new file mode 100644 index 00000000..36c305a1 --- /dev/null +++ b/doc/conf/LSattribute/check_data/imagesize.docbook @@ -0,0 +1,39 @@ + + imagesize + Cette règle vérifie que la valeur est une image dont la taille en pixels + respecte les limites passées en paramètre. + + +Paramètres de configuration + + + minWidth + + Largeur minimum. + + + + + maxWitdh + + Largeur maximum. + + + + + minHeight + + Hauteur minimum. + + + + + maxHeight + + Hauteur maximum. + + + + + + diff --git a/doc/conf/LSattribute/check_data/lettersonly.docbook b/doc/conf/LSattribute/check_data/lettersonly.docbook new file mode 100644 index 00000000..37e885c4 --- /dev/null +++ b/doc/conf/LSattribute/check_data/lettersonly.docbook @@ -0,0 +1,5 @@ + + lettersonly + Cette règle vérifie que la valeur est une chaîne de caractères composée + uniquement de lettres non-accuentées, en minuscule ou en majuscule. + diff --git a/doc/conf/LSattribute/check_data/maxlength.docbook b/doc/conf/LSattribute/check_data/maxlength.docbook new file mode 100644 index 00000000..016e14d3 --- /dev/null +++ b/doc/conf/LSattribute/check_data/maxlength.docbook @@ -0,0 +1,18 @@ + + maxlength + Cette règle vérifie que la valeur saisie est une chaine de caractères + dont la longueur est inférieur ou égale à la valeur passées en paramètre. + + +Paramêtres de configuration + + + limit + + Limite supérieur (ou égale) de la longueur de la chaîne de caratères. + + + + + + diff --git a/doc/conf/LSattribute/check_data/mimetype.docbook b/doc/conf/LSattribute/check_data/mimetype.docbook new file mode 100644 index 00000000..c5e0aef1 --- /dev/null +++ b/doc/conf/LSattribute/check_data/mimetype.docbook @@ -0,0 +1,27 @@ + + mimetype + Cette règle vérifie que la valeur est bien un fichier et que le type mime + de celui-ci est correct. Il est possible de vérifier si le type mime fait partie + d'une liste ou encore s'il valide une expression régulière. + + +Paramêtres de configuration + + + mimeType + + Type mime obligatoire. Ce paramètre peut être une simple chaine + correspondant au type mime ou un tableau listant plusieurs possibilités. + + + + + mimeTypeRegEx + + Expression régulière que doit respecter le type mime. + + + + + + diff --git a/doc/conf/LSattribute/check_data/minlength.docbook b/doc/conf/LSattribute/check_data/minlength.docbook new file mode 100644 index 00000000..c6997ef1 --- /dev/null +++ b/doc/conf/LSattribute/check_data/minlength.docbook @@ -0,0 +1,18 @@ + + minlength + Cette règle vérifie que la valeur saisie est une chaine de caractères + dont la longueur est supérieur ou égale à la valeur passée en paramètre. + + +Paramètres de configuration + + + limit + + Limite inférieure (ou égale) de la longueur de la chaîne de caratères. + + + + + + diff --git a/doc/conf/LSattribute/check_data/nonzero.docbook b/doc/conf/LSattribute/check_data/nonzero.docbook new file mode 100644 index 00000000..16f835dd --- /dev/null +++ b/doc/conf/LSattribute/check_data/nonzero.docbook @@ -0,0 +1,4 @@ + + nonzero + Cette régle vérifie que la valeur est une valeur numérique non nulle. + diff --git a/doc/conf/LSattribute/check_data/nopunctuation.docbook b/doc/conf/LSattribute/check_data/nopunctuation.docbook new file mode 100644 index 00000000..73df5676 --- /dev/null +++ b/doc/conf/LSattribute/check_data/nopunctuation.docbook @@ -0,0 +1,6 @@ + + nopunctuation + Cette régle vérifie que la valeur est une chaîne de caractères ne contenant + pas de signe de ponctuation. Les caractères suivants sont actuellement exclus : + < ~ [ ] { }]]> + diff --git a/doc/conf/LSattribute/check_data/numeric.docbook b/doc/conf/LSattribute/check_data/numeric.docbook new file mode 100644 index 00000000..e9ddb85e --- /dev/null +++ b/doc/conf/LSattribute/check_data/numeric.docbook @@ -0,0 +1,4 @@ + + numeric + Cette régle vérifie que la valeur est une valeur numérique. + diff --git a/doc/conf/LSattribute/check_data/password.docbook b/doc/conf/LSattribute/check_data/password.docbook new file mode 100644 index 00000000..cffccf1a --- /dev/null +++ b/doc/conf/LSattribute/check_data/password.docbook @@ -0,0 +1,41 @@ + + password + Cette règle vérifie que la valeur est un mot de passe respectant la politique + de sécurité définie par les paramètres de la règle. + + +Paramètres de configuration + + + minlength + + Longueur minimale du mot de passe. + + + + + maxlength + + Longueur maximale du mot de passe. + + + + + prohibitedValues + + Tableau de valeurs interdites. + + + + + regex + + Expression(s) régulière(s) que doit respecter le mot de passe. Ce + paramètre peut être une expression régulière ou un tableau d'expressions + régulières. + + + + + + diff --git a/doc/conf/LSattribute/check_data/rangelength.docbook b/doc/conf/LSattribute/check_data/rangelength.docbook new file mode 100644 index 00000000..a7c053f1 --- /dev/null +++ b/doc/conf/LSattribute/check_data/rangelength.docbook @@ -0,0 +1,19 @@ + + rangelength + Cette règle vérifie que la valeur saisie est une chaine de caractères + dont la longueur est comprise entre deux valeurs passées en paramètre. + + +Paramètre de configuration + + + limits + + Tableau contenant deux valeurs, la première étant la limite inférieure + ou égale et la seconde la limite supérieure ou égale. + + + + + + diff --git a/doc/conf/LSattribute/check_data/regex.docbook b/doc/conf/LSattribute/check_data/regex.docbook new file mode 100644 index 00000000..517b6919 --- /dev/null +++ b/doc/conf/LSattribute/check_data/regex.docbook @@ -0,0 +1,18 @@ + + regex + Cette règle vérifie que la valeur saisie respecte bien l'expression + régulière passée en paramètre. + + +Paramètres de configuration + + + regex + + L'expression régulière devant être respectée. + + + + + + diff --git a/doc/conf/LSattribute/check_data/required.docbook b/doc/conf/LSattribute/check_data/required.docbook new file mode 100644 index 00000000..efc636b5 --- /dev/null +++ b/doc/conf/LSattribute/check_data/required.docbook @@ -0,0 +1,5 @@ + + required + Cette régle vérifie que la valeur n'est pas une chaîne de caractères de + longueur nulle. + diff --git a/doc/conf/LSattribute/check_data/telephonenumber.docbook b/doc/conf/LSattribute/check_data/telephonenumber.docbook new file mode 100644 index 00000000..63163f0d --- /dev/null +++ b/doc/conf/LSattribute/check_data/telephonenumber.docbook @@ -0,0 +1,6 @@ + + telephonenumber + Cette régle vérifie que la valeur est un numéro de téléphone français. + Celui-ci doit respecter l'expression regulière suivante : + /^(01|02|03|04|05|06|08|09)[0-9]{8}$/ + diff --git a/doc/conf/LSattribute/triggers.docbook b/doc/conf/LSattribute/triggers.docbook new file mode 100644 index 00000000..07694390 --- /dev/null +++ b/doc/conf/LSattribute/triggers.docbook @@ -0,0 +1,101 @@ + + Déclencheurs + Cette section décrit la manière de paramétrer des déclencheurs afin que + &LdapSaisie; exécute durant ses processus, et à des moments bien précis des + traitements d'un &LSattribute;, des fonctions que vous pourrez développer vous + même. De plus, le résultat de l'exécution de vos fonctions pourra influer + sur le déroulement des processus. + + Actuellement, les évènements suivant sont gérés : + + + + + + Nom + Description + Bloquant + + + + + before_create + Avant la création du LSobject, lorsque l'attribut a au + moins une valeur. + Oui + + + after_create + Après la création du LSobject, lorsque l'attribut a au + moins une valeur. + Non + + + before_modify + Avant la modification de la valeur de l'attribut. + Oui + + + after_modify + Après la modification de la valeur de l'attribut. + Non + + + before_delete + Avant la suppression du LSobject contenant l'attribut. + Oui + + + after_delete + Après la suppression du LSobject contenant l'attribut. + Non + + + + +Si un événement est dit bloquant, lors de +l'exécution des actions liées, si une des fonctions retourne false +, le processus s'arrêtera. + + + Configuration + La configuration des déclencheurs se fait dans la définition des + &LSattributes;. Par exemple, pour définir les fonctions à exécuter après la + modification de la valeur de l'attribut mail du type de + &LSobject; LSeepeople, c'est à dire lors de leur évenement + after_modify, il faut définir la variable suivante : + + Cette variable peut contenir soit une chaine de caractères correspondant au + nom de la fonction à exécuter, soit un tableau de chaînes de caractères + correspondant aux noms des fonctions à exécuter. + + + Ecriture d'une fonction + Une fonction exécuté par un déclencheur d'un LSattribute se déclare de + la manière suivante : + +Cette fonction doit prendre pour seul paramètre, le LSobject contenant le +LSattribute sur lequel l'évenement survient et doit retourner soit +True si tout s'est bien passé, soit False +en cas de problème. Dans le cas d'un événement bloquant, si la fonction retourne +False, le processus est arrêté. + + diff --git a/doc/conf/LSattribute/validation.docbook b/doc/conf/LSattribute/validation.docbook new file mode 100644 index 00000000..b827c008 --- /dev/null +++ b/doc/conf/LSattribute/validation.docbook @@ -0,0 +1,137 @@ + + Configuration des règles de vérification d'intégrité + Cette section décrit la manière de configurer des règles de vérification + d'intégrité sur les données des attributs. Il est possible de valider la valeur + de l'attribut par l'intermédiraire de la vérification de résultat d'une + recherche paramètrable dans l'annuaire ou encore d'appeler une fonction de + votre choix pour effectuer la vérification voulue. + + + Validation par l'analyse du résultat d'une recherche dans l'annuaire + Une telle règle permet de vérifier si les valeurs des attributs n'entrent + pas en conflit avec d'autres objets de l'annuaire. Ce test peut également + permetre de vérifier si les valeurs devant faire référence à d'autres objets + de l'annuaire sont correctes. + + +Structure... + array ( + ... + array( + 'msg' => _("[LSformat du message d'erreur]"), + 'filter' => '[LSformat du filtre de la recherche]', + 'object_type' => '[Type d'LSobject recherché]', + 'basedn' => '[BaseDn de la recherche]', + 'scope' => '[Scope de la recherche]', + 'result' => '[Résultat positif de la recherche]' + ), + ... +),]]> +... + + + +Paramètres de configuration + + + msg + + &LSformat; du message d'erreur à afficher lorsque la validation + échoue. Ce format est construit avec les valeurs du &LSobject;. + + + + + filter + + &LSformat; du filtre de la recherche. Ce format peut être construit + avec toutes les valeurs du LSobject (attributs, DN, ...) et également avec + la valeur à valider en utilisant pour mot clé %{val} + . + + + + + object_type + + Le nom du type d'LSobject recherché. Si un type est spécifié, le + filtre de la recherche sera une combinaison de celui du paramètre + filter et du filtre composé à partir des objectClass + du type d'&LSobject;. Paramètre facultatif. + + + + + basedn + + Le basedn de la recherche. Paramètre + facultatif. + + + + + scope + + Le scope de la recherche. Paramètre + facultatif. + + + + + result + + Le résultat de la recherche : si result vaut + zéro, la recherche ne devra retourner aucun objet pour que la validation soit + réussie. Sinon, la recherche devra retourner au moins un objet. + + + + + + + + + Validation par l'exécution d'une fonction + Il est possible d'effectuer la validation de l'attribut par l'exécution + d'une fonction de votre choix. Il lui sera passé en paramètre le LSobject + complet. Si la fonction ne retourne pas true, la + validation échouera. + + +Structure... + array ( + .. + array( + 'msg' => _("[LSformat du message d'erreur]"), + 'function' => '[Nom de la fonction de validation]' + ), + ... +),]]> +... + + + +Paramètres de configuration + + + msg + + &LSformat; du message d'erreur à afficher lorsque la validation + échoue. Ce format est construit avec les valeurs du &LSobject;. + + + + + function + + Le nom de la fonction à exécuter. Si cette fonction n'existe pas, + un message d'erreur sera affiché et la validation échouera. + + + + + + + + + diff --git a/doc/conf/LSformat.docbook b/doc/conf/LSformat.docbook new file mode 100644 index 00000000..3a8ec608 --- /dev/null +++ b/doc/conf/LSformat.docbook @@ -0,0 +1,36 @@ + +Format paramétrable +Un format paramétrable est une chaîne de caractères +contenant des mots clés formés comme dans l'exemple suivant : +%{[nom du mot clé][:A][:B]} +Le nom du mot clé peut contenir des lettres de "a" à "z", de "A" à "Z" et des +chiffres de 0 à 9. Ces mots clés seront remplacés par les valeurs passées en +paramètres et liées au contexte d'utilisation. Les paramètres :A et +:B permettent d'extraire une partie de la chaîne complète +avant la substitution. + +Le paramètre A correspond, lorsque +B n'est pas défini, au nombre maximum de caractères à +extraire de la chaîne de substitution. A doit être un entier +dont le signe influ, comme expliqué ci-dessous : + + + Si A est positif, les A + premiers caractères de la chaîne de substitution seront extraits. + + + + Si A est négatif, les |A| + derniers caractères de la chaîne de substitution seront extraits. + + +Lorsque le paramètre B est défini, +A correspond au rang du premier caractère à partir duquel la +chaîne de substitution sera découpée et B le nombre maximum +de caractères à extraire. Le signe de B influera comme expliqué +dans le premier cas. + +Lorsque qu'une seule valeur clé est disponible pour la +substitution, le nom du mot clé n'importe pas. Tous les mots clés trouvés dans +le format seront remplacés par cette seule valeur. + diff --git a/doc/conf/LSobject.docbook b/doc/conf/LSobject.docbook new file mode 100644 index 00000000..7275a010 --- /dev/null +++ b/doc/conf/LSobject.docbook @@ -0,0 +1,225 @@ + + + Configuration LSobject + + Cette partie décrit la manière de configurer les différents types de LSobjets + manipulés par &LdapSaisie;. + + + La configuration des &LSobjects; est stockée dans le dossier + /conf/LSobjects. Dans ce dossier, on retrouve un fichier par type + d'&LSobject;, nommé de la manière suivante : + config.LSobjects.[nom du type d'LSobject].php + + Ce fichier contient la déclaration de la configuration du type d'&LSobject; + qui est stocké dans la variable globale + $GLOBALS['LSobjects']['[nom du type d'LSobject]']. + + + + Structure... + array( + 'objetclass1', + 'objetclass2', + ... + ), + 'rdn' => 'attr1', + + 'container_dn' => 'ou=people', + 'container_auto_create' => array( + // Information des configurations pour la création du conteneur du type d'LSobjet + // lors de la création nouveau subDn + ), + + 'before_modify' => 'function1', + 'after_modify' => 'function2', + 'after_create' => 'function3', + 'after_delete' => 'function4', + + 'label' => _('objet1'), + + 'display_name_format' => '[format]', + 'orderby' => 'displayName', // Valeurs possibles : 'displayName' ou 'subDn' + + // LSrelation + 'LSrelation' => array( + // Configuration des LSrelations entre ce type d'objet et les autres + ), + + // LSform + 'LSform' => array ( + // Configuration des formulaires de l'objet + ), // fin LSform + + // Attributs + 'attrs' => array ( + // Configuration des attributs du type d'LSobjet + ) +);]]> +... + + + +Paramètres de configuration + + + objectclass + + La liste des objectclass des objets. + + + + + rdn + + Nom de l'attribut correspondant au RDN des + objets LDAP. + + + + + container_dn + + Elément pour construire le basedn de stockage + de ce type d'objet. Par exemple, si le basedn de + l'annuaire est o=ls et que les objets + utilisateurs sont stockés dans la branche de l'annuaire + ou=people,o=ls, alors container_dn + devra valoir ou=people. + Lorsque l'annuaire possède des &subDn;, les objets seront cherchés + dans le basedn résultant de la concaténation du paramètre + container_dn, d'une virgule et du + basedn correspondant au &subDn; courant. + + + + + container_auto_create + + Tableau associatif contenant les paramètres de configuration + nécessaires à la création des container_dn dans les + nouveaux objets utilisés comme &subDn;. + Voir la section + concernée. + + + + + before_modify + + Chaîne de caractères correspondant au nom d'une fonction qui sera + exécutée avant la modification d'un objet. + Voir la section concernée. + + + + + + after_modify + + Chaîne de caractères correspondant au nom d'une fonction qui sera + exécutée après la modification d'un objet. + Voir la section concernée. + + + + + + after_create + + Chaîne de caractères correspondant au nom d'une fonction qui sera + exécutée après la création d'un objet. + Voir la section concernée. + + + + + + after_delete + + Chaîne de caractères correspondant au nom d'une fonction qui sera + exécutée après la suppression d'un objet. + Voir la section concernée. + + + + + + label + + Nom générique au pluriel qualifiant le type d'objet. Exemple : + Utilisateurs. + Si vous utilisez la fonctionnalité d'internationalisation, il faut + utiliser ici la fonction de gettext pour que le + texte soit traduit si vous n'êtes pas dans la langue de référence. Exemple : + _('Utilisateurs') + + + + + display_name_format + + Format paramètrable du nom + des objets composés à partir des valeurs d'affichage des attributs de l'objet. + + + + + + orderby + + Paramétrage du tri par défaut des objets lors de l'affiche du + résultat d'une recherche. + Valeurs possibles : displayName ou subDn + (Paramètre facultatif) + + + + + LSrelation + + Tableau associatif contenant les paramètres de configuration + des &LSrelations;. Voir la section + concernée. + + + + + LSform + + Tableau associatif contenant les paramètres de configuration + des &LSforms; des &LSobjects;. Voir + la section concernée. + + + + + LSsearch + + Tableau associatif contenant les paramètres de configuration + des recherches de &LSobject; de ce type dans l'annuaire. + Voir la section concernée. + + + + + + attrs + + Tableau associatif contenant les paramètres de configuration + des attributs des objets. Voir + la section concernée. + + + + + + &conf-LSattribute; + &conf-LSobject-container_auto_create; + &conf-LSobject-triggers; + &conf-LSobject-LSrelation; + &conf-LSobject-LSform; + &conf-LSobject-LSsearch; + + diff --git a/doc/conf/LSobject/LSform.docbook b/doc/conf/LSobject/LSform.docbook new file mode 100644 index 00000000..c53828e3 --- /dev/null +++ b/doc/conf/LSobject/LSform.docbook @@ -0,0 +1,128 @@ + + LSform + Cette section décrit la manière de paramétrer les formulaires d'&LdapSaisie; + pour un type &LSobject; donné. Pour chaque type d'&LSobject;, il faut configurer + plusieurs formulaires correspondant aux vues gérées par &LdapSaisie; (création, + modification, ...). Les formulaires se configurent par plusieurs biais : + + + + +Via la configuration des attributs : La configuration des attributs +détermine la présence ou non des attributs dans les formulaires. Elle permet +également de définir si on souhaite bloquer leur présence en lecture seulement. + + + + +Via les droits de l'utilisateur connecté sur les attributs de l'objet +à éditer : en fonction des droits de l'utilisateur sur un attribut, celui-ci +apparaîtra en lecture-écriture ou en lecture uniquement voir pas du tout. + + + + +Via la configuration au niveau de chaque type d'&LSobject; : il y est +possible de définir le comportement globale du formulaire comme la validation +via Ajax ou encore la disposition logique des attributs dans le formulaire. + + +Structure + [booléen], + 'layout' => array ( + // Configuration de la disposition logique des attributs + ) +);]]> + + + +Paramètres de configuration + + + ajaxSubmit + + Booléen définissant si le formulaire sera envoyé via une requête + Ajax plutôt qu'à travers un rafraîchissement de la page. Par défaut : + VRAI. + + + + + layout + + Tableau contenant la configuration de l'affichage du formulaire : + il est possible de définir la disposition des attributs dans le formulaire + en les regroupant dans des onglets et en les faisant apparaître dans un + ordre logique.Voir la section + concernée. + + + + + + + + + + + +Configuration de l'affichage + +La configuration des layout se situe dans la +configuration des &LSobjects;, dans la variable layout +($GLOBALS['LSobjects']['[nom du type d'LSobject]']['LSform']['layout']). +Cette variable est un tableau associatif dont la clé est l'identifiant de l'onglet +et dont la valeur associée est la configuration de l'onglet. + +Structure + array( + 'label' => '[label de l'onglet]', + 'img' => 1, // Valeur possible 1 ou 0 + 'args' => array ( + 'arg1', + 'arg2', + ... + ) + ), + ... +);]]> + + + +Paramètres de configuration + + + label + + Le label de l'onglet. + + + + + img + + Affiche ou non l'image d'un éventuel attribut de type HTML + LSattr_html_image. + + + + + args + + Tableau associatif contenant une liste ordonnée des attributs qui + apparaîtront dans l'onglet. + + + + + +Lorsqu'un layout est défini, celui-ci +est "suivi à la lettre" pour l'affichage du &LSform;. +Ainsi, si un attribut est défini dans la configuration de l'objet comme présent +dans le &LSform; courant, mais que celui-ci n'est pas présent dans le +layout, il ne sera pas du tout affiché. + + + diff --git a/doc/conf/LSobject/LSrelation.docbook b/doc/conf/LSobject/LSrelation.docbook new file mode 100644 index 00000000..50970d7b --- /dev/null +++ b/doc/conf/LSobject/LSrelation.docbook @@ -0,0 +1,113 @@ + + LSrelation + Cette section décrit la manière de configurer les relations entre les + &LSobjects; appelées &LSrelation;. + + +Structure + array( + 'label' => _('[label de la relation]'), + 'emptyText' => _("[texte affiché si aucune relation avec d'autres objets + n'existe pour l'objet courant]"), + 'LSobject' => '[le type d'LSobjet en relation]', + 'list_function' => '[méthode1]', + 'getkeyvalue_function' => '[methode2]', + 'update_function' => '[methode3]', + 'remove_function' => '[methode4]', + 'rename_function' => '[methode5]', + 'rights' => array( + 'LSprofile1' => 'r', + 'LSprofile2' => 'w', + ... + ) + ) +);]]> + + + +Paramètres de configuration + + + label + + Le label de la relation. + + + + + emptyText + + Le texte à afficher pour décrire le fait que l'objet courant n'a + aucune relation d'établie avec d'autres &LSobjects;. Exemple (au sujet d'un + utilisateur) : N'appartient à aucun groupe. + + + + + LSobject + + Le type d'&LSobject; en relation avec le type courant. + + + + + list_function + + La méthode de la classe du type d'&LSobject; en relation, permettant + de lister les objets de ce type en relation avec l'objet courant. + + + + + getkeyvalue_function + + La méthode de la classe du type d'&LSobject; en relation, permettant + d'obtenir la valeur clé à stocker pour établir la relation entre l'objet + courant et d'autres objets du type concerné. + + + + + update_function + + La méthode de la classe du type d'&LSobject; en relation, permettant + de mettre à jour les relations existantes entre l'objet courant et les objets + du type concerné. Cette liste d'objets en relation est établie par + l'utilisateur à travers l'interface. + + + + + remove_function + + La méthode de la classe du type d'&LSobject; en relation permettant + de supprimer une relation existante entre l'objet courant et un objet du + type concerné. + + + + + rename_function + + La méthode de la classe du type d'&LSobject; en relation permettant + d'effectuer les actions nécessaires lorsque l'objet courant est renommé dans + le but de maintenir les valeurs clés permettant d'établir les relations entre + l'objet courant et les objets en relation avec lui. + + + + + rights + + Tableau associatif dont les clés sont les noms des &LSprofiles; ayant + des droits sur cette relation et dont les valeurs associées sont les droits + correspondants. La valeur des droits d'un &LSprofile; peut être + r pour le droit de lecture ou w pour + le droit de lecture-écriture.Par défaut, un &LSprofile; n'a aucun droit. + + + + + + diff --git a/doc/conf/LSobject/LSsearch.docbook b/doc/conf/LSobject/LSsearch.docbook new file mode 100644 index 00000000..700bfc35 --- /dev/null +++ b/doc/conf/LSobject/LSsearch.docbook @@ -0,0 +1,47 @@ + + LSsearch + Cette section décrit la manière de paramétrer les recherches dans + l'annuaire pour un type d'&LSobject; donné. + +La configuration des LSsearch se situe dans la +configuration des &LSobjects;, dans la variable LSsearch +($GLOBALS['LSobjects']['[nom du type d'LSobject]']['LSsearch']). + +Structure + array( + 'attr1', + 'attr2', + ... + ), + ... +);]]> + + + +Paramètres de configuration + + + attrs + + Tableau listant les attributs pouvant être utilisés dans les filtres + de recherche LDAP employés par &LdapSaisie;. Lorsqu'un motif de recherche est + passé par l'utilisateur, &LdapSaisie; composera un filtre LDAP à partir de + cette liste. + Lors d'une recherche non-approximative, le filtre de recherche sera + composé de la manière suivante : + (|(attr1=*motif*)(attr2=*motif*)...) + Lors d'une recherche approximative, le filtre de recherche sera + composé de la manière suivante : + (|(attr1=~motif)(attr2~=motif)...) + Ces filtres, une fois composés, sont insérés dans un autre, + filtrant en plus sur les ObjectClass du type + d'&LSobject; de la manière suivante : + + + + + + + + diff --git a/doc/conf/LSobject/container_auto_create.docbook b/doc/conf/LSobject/container_auto_create.docbook new file mode 100644 index 00000000..28cf7f4b --- /dev/null +++ b/doc/conf/LSobject/container_auto_create.docbook @@ -0,0 +1,52 @@ + + Création automatique du conteneur des LSobjets dans un subDn + Cette section décrit la manière de configurer la création automatique + des conteneurs des LSobjets. Si le basedn correspondant + à la branche de stockage des &LSobjects; n'existe pas, &LdapSaisie; tentera de + le créer à partir de la configuration de la variable + $GLOBALS['LSobjects']['[nom du type d'LSobject]']['container_auto_create']. + + +Structure + array( + 'objectclass1', + 'objectclass2', + ... + ), + 'attrs' => array( + 'attr1' => 'val1', + 'attr2' => array( + 'val2', + 'val3', + ... + ), + ... + ) +);]]> + + + +Paramètres de configuration + + + objectclass + + La liste des objectclass de l'objet conteneur. + + + + + attrs + + Un tableau associatif dont les clés sont les noms des attributs de + l'objet conteneur à définir et dont les valeurs associées sont la/les valeur(s) + de ces attributs. + + + + + + + + diff --git a/doc/conf/LSobject/triggers.docbook b/doc/conf/LSobject/triggers.docbook new file mode 100644 index 00000000..be776b84 --- /dev/null +++ b/doc/conf/LSobject/triggers.docbook @@ -0,0 +1,109 @@ + + Déclencheurs + Cette section décrit la manière de paramétrer des déclencheurs afin que + &LdapSaisie; exécute durant ses processus, et à des moments bien précis des + traitements d'un &LSobject;, des fonctions que vous pourrez développer vous + même. De plus, le résultat de l'exécution de vos fonctions pourra influer + sur le déroulement des processus. + + Actuellement, les évenements suivant sont gérés : + + + + + + Nom + Description + Bloquant + + + + + before_create + Avant la création du LSobject. + Oui + + + after_create + Après la création du LSobject. + Non + + + before_modify + Avant la modification du LSobject + Oui + + + after_modify + Après la modification du LSobject + Non + + + before_rename + Avant de renommer le LSobject + Oui + + + after_rename + Après avoir renommé le LSobject + Non + + + before_delete + Avant la suppression du LSobject + Oui + + + after_delete + Après la suppression du LSobject + Non + + + + +Si un événement est dit bloquant, lors de +l'exécution des actions liées, si une des fonctions retourne false +, le processus s'arrêtera. + + + Configuration + La configuration des déclencheurs se fait dans la définition des types + d'&LSobjects;. Par exemple, pour définir les fonctions à exécuter après la + modification des LSobjects de type LSeepeople, c'est à + dire lors de leur évènement after_modify, il faut définir + la variable suivante : + + Cette variable peut contenir soit une chaine de caractères correspondant au + nom de la fonction à exécuter, soit un tableau de chaînes de caractères + correspondant aux noms des fonctions à exécuter. + + + Ecriture d'une fonction + Une fonction exécuté par un déclencheur d'un LSobject se déclare de la + manière suivante : + +Cette fonction doit prendre pour seul paramètre, le LSobject sur lequel l'évènement +survient et doit retourner soit True si tout s'est bien passé, +soit False en cas de problème. Dans le cas d'un événement +bloquant, si la fonction retourne False, le processus est +arrêté. + + + diff --git a/doc/conf/LSprofile.docbook b/doc/conf/LSprofile.docbook new file mode 100644 index 00000000..152f9077 --- /dev/null +++ b/doc/conf/LSprofile.docbook @@ -0,0 +1,234 @@ + + + + Profils d'utilisateurs + + Cette section décrit la manière dont sont définis les profils d'utilisateurs + se connectant à l'interface appelés LSprofile. Il est + possible de définir autant de profils d'utilisateurs que l'on souhaite. Pour + chaque profil d'utilisateur, il faudra définir dans quelles parties de + l'annuaire ce profil existe (Exemple : les admistrateurs de groupes existent + uniquement dans la branche de l'annuaire stockant les groupes). Enfin pour + chaque partie de l'annuaire, il faudra définir la manière d'identifier si + l'utilisateur qui se connecte appartient à ce profil. + + + Structure... + array ( + [nom d'un LSprofile] => array ( + [basedn] => [dn utilisateur], + [autre basedn] => array ( + [dn d'un utilisateur] => NULL, + [autre dn] => array ( // via un listage de l'attribut d'un objet + 'attr' => [nom de l'attribut clé de l'objet], + 'attr_value' => [format de la valeur de l'attribut clé], + 'LSobject' => [nom du type LSobject de l'objet] + ) + ), + 'LSobjects' => array ( // via une liste d'objet sur lequel l'utilisateur a des pouvoirs + [nom du LSobject] => array ( + 'attr' => [nom de l'attribut clé], + 'attr_value' => [format de la valeur de l'attribut clé], + // ou + 'filter' => [format du filtre de recherche], + + 'basedn' => [basedn de recherche], + 'params' => [configuration de la recherche] + ), + ... + ) + ), + ... +),]]> +... + + + +Le paramètre LSprofiles est un tableau associatif contenant, +en valeur clé, le nom d'un LSprofile et en valeur associée, +la configuration nécessaire pour déterminer si l'utilisateur connecté appartient +à ce LSprofile pour tout ou partie de l'annuaire. + + + +Dans chaque configuration de LSprofile, il est possible +d'identifier l'appartenance ou non de l'utilisateur connecté de deux manières : + + + + + + +Pour une branche de l'annuaire donnée (basedn) : +en listant les utilisateurs appartenant à ce LSprofile pour +tous les objets de la branche. Il sera possible de lister les utilisateurs dont +on connait le DN ou de lister les utilisateurs appartenant +à une liste stockée dans l'annuaire (par exemple la liste des membres d'un +groupe). + + + + + + +Liste des DNs d'utilisateurs : + + Structure... + array ( + [nom du LSprofile] => array ( + [basedn] => [dn utilisateur], + // ou si plusieurs DNs + [autre basedn] => array ( + [dn d'un utilisateur] => NULL, + [dn d'un utilisateur 2] => NULL + ), + ... + ), + ... +),]]> +... + +Explication : Pour un LSprofile et un +basedn donnés, on définit l'utilisateur appartenant au +LSprofile en donnant son DN. Si on +souhaite lister plusieurs utilisateurs, on utilise un tableau associatif dans +lequel les clés sont les DNs des utilisateurs et les valeurs +associées sont toutes NULL. + + + + + +Liste d'utilisateurs stockée dans l'annuaire : + + Structure... + array ( + [nom du LSprofile] => array ( + [basedn] => array ( + [DN d'un object] => array ( + 'attr' => [nom de l'attribut clé de l'objet], + 'attr_value' => [format de la valeur de l'attribut clé], + 'LSobject' => [nom du type LSobject de l'objet] + ) + ), + ... +),]]> +... + +Explication : Pour un LSprofile et un +basedn donnés, on liste les utilisateurs du +LSprofile référencés dans l'attribut attr +de l'object de type LSobject et selon le format de valeur +décrit dans attr_value. + + + + + + + + + + + +Pour un type de LSobject donné : en listant +les objets pour lesquels l'utilisateur aura les droits du LSprofile. Il sera +possible, à travers une recherche paramétrable dans l'annuaire, de lister les +objets pour lesquels l'utilisateur appartiendra au +LSprofile. + + Structure... + array ( + [nom d'un LSprofile] => array ( + 'LSobjects' => array ( // via un liste d'objet pour lequel l'utilisateur + // appartient au LSprofile + [nom du LSobject] => array ( + 'attr' => [nom de l'attribut clé], + 'attr_value' => [format de la valeur de l'attribut clé], + // or + 'filter' => [format du filtre de recherche], + + 'basedn' => [basedn de recherche], + 'params' => [configuration de la recherche] + ), + ... + ) + ), + ... +),]]> +... + +Explications : Dans la configuration d'un LSprofile, +la valeur clé LSprofile signifie qu'on est dans un cas de la +délégation de droits sur des types d'LSobject. Dans ce tableau associatif, il +est possible de définir un ou plusieurs types de LSobject pour lesquels on délègue +des droits. Dans ce tableau la valeur clé est le nom du LSobject et la valeur +associée est un tableau contenant la configuration permettant de dire quels sont +les LSobjets de ce type concernés par la délégation. +Cette configuration contient les paramètres d'une recherche dans l'annuaire +en considérant que l'utilisateur connecté aura les droits du LSprofile sur les +objets retournés. Les paramètres de la recherche sont : + + + + + attr + + Nom de l'attribut des LSobjets contenant une valeur clé qui + permettra d'identifier l'utilisateur comme ayant droit. + + + + + attr_value + + Le format de la valeur clé prise par l'attribut attr. + Ce format est composé à partir des données de l'objet de l'utilisateur + connecté. Voir le paragraphe Format + paramètrable pour plus d'informations sur l'écriture du format. + + + + + filter + + Ce paramètre remplace les paramètres attr et + attr_value. Il est possible ici d'écrire directement le + format paramètrable du filtre recherche dans l'annuaire. Ce filtre sera + automatiquement agrémenté des conditions sur l'attribut objectclass. + Voir le paragraphe Format paramètrable + pour plus d'informations sur l'écriture du format. + + + + + basedn + + C'est le basedn de la recherche. Il est possible + ainsi de la limiter sur les LSojects d'une branche précise de l'annuaire. + (Paramètre facultatif) + + + + + params + + C'est un tableau associatif contenant les paramètres étendus de la + recherche. Voir le paragraphe + Paramètres étendus des recherches dans l'annuaire pour plus de détails. + (Paramètre facultatif) + + + + + + + + + + + + + + + diff --git a/doc/conf/conf.docbook b/doc/conf/conf.docbook new file mode 100644 index 00000000..83b1a91c --- /dev/null +++ b/doc/conf/conf.docbook @@ -0,0 +1,22 @@ + + +Configuration + + + La configuration du projet est située principalement dans le dossier 'conf/'. + Les exceptions seront détaillées par la suite. + + + + Toute la configuration du projet se fait par l'intermédiaire de + fichiers définissant des variables &php; dont les valeurs sont utilisées par + le programme. Ceci signifie que la syntaxe de ces fichiers doit être valide + avec l'interpréteur &php; utilisé. + + +&conf-globale; + +&conf-LSobject; +&conf-LSaddon; + + diff --git a/doc/conf/conf.entities.xml b/doc/conf/conf.entities.xml new file mode 100644 index 00000000..51c23111 --- /dev/null +++ b/doc/conf/conf.entities.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/conf/globale.docbook b/doc/conf/globale.docbook new file mode 100644 index 00000000..f60c1c7c --- /dev/null +++ b/doc/conf/globale.docbook @@ -0,0 +1,134 @@ + + + Configuration globale + + La plus grande partie de la configuration globale se trouve dans le fichier + config.inc.php. + + + + Structure +]]> + + + +Variables globales + + + + + + NetLDAP2 + + Chemin vers la librairie PEAR &netldap;. + + + + + + + + + Smarty + + Chemin vers le moteur de template &smarty;. + + + + + + + + + lang + + Paramètre utilisé pour l'internationalisation. + + + + + + + + + cacheLSprofiles + + Activation/Désactivation de la mise en cache des profils des + utilisateurs connectés (&LSprofiles;). + Valeurs possibles : True ou False + Valeur recommandée : True + Ce paramètre a une action globale mais non prioritaire + sur le comportement de l'application. + + + + + + cacheSubDn + + Activation/Désactivation de la mise en cache des niveaux de + connexion (&subDn;) dans l'annuaire. + Valeurs possibles : True ou False + Valeur recommandée : True + + Ce paramètre a une action globale mais non prioritaire + sur le comportement de l'application. + + + + + + cacheSearch + + Activation/Désactivation de la mise en cache du résultat des + recherches dans l'annuaire. + Valeurs possibles : True ou + False + Valeur recommandée : True + + Ce paramètre a une action globale mais non prioritaire + sur le comportement de l'application. + + + + + + keepLSsessionActive + + Activation/Désactivation du maintient de la LSsession active. + Valeurs possibles : True ou + False + + Ce paramètre a une action globale mais non prioritaire + sur le comportement de l'application. + + + + + + ldap_servers + + Configuration des serveurs LDAP. + Voir section concernée. + + + + + +&conf-srv-ldap; + + + +&conf-LSformat; +&conf-LDAP_search_params; + + diff --git a/doc/conf/recoverPassword.docbook b/doc/conf/recoverPassword.docbook new file mode 100644 index 00000000..c72724af --- /dev/null +++ b/doc/conf/recoverPassword.docbook @@ -0,0 +1,81 @@ + + + + Récupération de mot de passe + + Cette section décrit la manière de configurer la récupération de mot de + passe par les utilisateurs. Le mécanisme de récupération de mot de passe + fonctionne en deux parties : + + + + + +Dans un premier lieu, l'utilisateur ayant perdu son mot de passe accède +à l'interface de récupération à partir de la page de connexion. L'interface lui +demande de saisir son identifiant et éventuellement de sélectionner le serveur +LDAP concerné. Une fois ces informations saisies, une recherche de l'utilisateur +est effectuée dans l'annuaire et si celui-ci est trouvé, la valeur de l'attribut +recoveryHashAttr de l'objet est alors redéfinie avec une valeur +aléatoire. +Un mail est ensuite envoyé à l'utilisateur en utilisant la première valeur +de l'attribut mailAttr comme adresse. Ce mail est formé à +partir des paramètres du tableau associatif recoveryHashMail. +Celui-ci doit contenir le sujet du mail dans subject et le +corps du message dans msg. Ces deux informations sont des +formats paramètrables composés avec, comme valeur clé, +l'URL de retour à laquelle l'utilisateur devra se rendre pour accèder à la +seconde étape de la récupération de son mot de passe. + + + + + +L'utilisateur doit donc se rendre sur l'interface par l'intermédiaire +de l'URL qui lui aura été fournie dans le mail de l'étape précédente. Cette URL +contient la valeur de l'attribut recoveryHashAttr précédement +définie. A partir de cette information, une recherche est effectuée dans l'annuaire +pour retrouver l'utilisateur correspondant. +Si l'utilisateur est retrouvé, un nouveau mot de passe lui est généré en +utilisant les paramètres de configuration éventuellement définis dans la +configuration HTML de l'attribut "mot de passe". Pour avoir plus d'information +sur ces paramètres, consulter la documentation du type d'attribut HTML +LSattr_html_password. +L'attribut recoveryHashAttr est quant à lui +supprimé. +Ensuite, un mail est composé à partir des paramètres du tableau associatif +newPasswordMail et est envoyé à l'utilisateur. Ce tableau +doit contenir le sujet du mail dans subject et le corps du +message dans msg. Ces deux informations sont des +formats paramètrables composés avec, comme valeur clé, le +nouveau mot de passe de l'utilisateur. + + + + + + + + + + + Structure... + array( + 'mailAttr' => '[attribut mail]', + 'recoveryHashAttr' => '[attribut hash]', + 'recoveryEmailSender' => '[adresse mail utilisée par LdapSaisie pour l'envoi des mails]', + 'recoveryHashMail' => array( // 1er mail : avec l'URL pour l'accès à la 2nde partie + 'subject' => '[sujet du mail]', + 'msg' => "[message contenant le mot clé %{url}]" + ), + 'newPasswordMail' => array( // 2nd mail : avec le mot de passe + 'subject' => '[sujet du mail]', + 'msg' => "[message contenant le mot clé %{mdp}]" + ) +),]]> +... + + + + + diff --git a/doc/conf/srv-ldap.docbook b/doc/conf/srv-ldap.docbook new file mode 100644 index 00000000..80f75af1 --- /dev/null +++ b/doc/conf/srv-ldap.docbook @@ -0,0 +1,189 @@ + + + Configuration des serveurs LDAP + +Cette section décrit le tableau de configuration des différents serveurs +LDAP utilisés par l'application. Ce tableau contient lui même un tableau par +serveur LDAP. + + + Structure... + array( + array ( + 'name' => [nom de l'annuaire], + 'ldap_config'=> array( + // Définition des paramètres de connexion à l'annuaire + ), + 'LSprofiles' => array ( + // Définition des LSprofiles + ), + 'cacheLSprofiles' => [boolean], + 'cacheSearch' => [boolean], + 'authObjectType' => [LSobject], + 'authObjectTypeAttrPwd' => [attribut], + 'LSaccess' => array ( + [Type LSobject 1], + [Type LSobject 2], + ... + ), + 'subDn' => array( + // Définition des sous-niveaux de l'annuaire + ), + 'subDnLabel' => [nom des sous-niveaux], + 'recoverPassword' => array( + // Définition des paramètres de configuration de la récupération de mot de passe + ), + 'emailSender' => [email], + 'keepLSsessionActive' => [booléen] + ) + ... +);]]> +... + + + + +Paramètres de configuration + + + name + + Le nom d'affichage de ce serveur Ldap + (utilisé lorsque plusieurs serveur LDAP sont déclarés). + + + + + + ldap_config + + Informations de connexion au serveur LDAP. Ces informations sont + structurées selon les attentes de la librairie &netldap;. + + Plus d'informations + + + + + + + LSprofiles + + Définition des profils d'utilisateurs se connectant à l'annuaire. + Voir la section concernée. + + + + + + + cacheLSprofiles + + Activation/Désactivation de la mise en cache des &LSprofiles; des + utilisateurs connectés à ce serveur. + + + + + + cacheSearch + + Activation/Désactivation de la mise en cache du résultat des + recherches sur ce serveur. + + + + + + authObjectType + + Nom du type d'&LSobject; pouvant être utilisé pour authentifier un + utilisateur se connectant à l'interface. + + + + + + authObjectTypeAttrPwd + + Nom de l'attribut "mot de passe" du type d'&LSobject; utilisé pour + l'authentification des utilisateurs se connectant à l'interface. + + + + + + LSaccess + + Définition des types d'&LSobjects; devant apparaître dans le menu de + l'interface. + Ce paramètre n'est utilisé que pour les annuaires n'ayant + pas de sous-niveaux (&subDn;). + + + + + + subDn + + Définition des sous-niveaux de connexion à l'annuaire. + Voir section concernée. + Ce paramètre remplace le paramètre + LSaccess dans le cas d'un annuaire + multi-niveaux. + + + + + + subDnLabel + + Définition du label utilisé pour qualifier les sous-niveaux de + connexion. + Ce paramètre est utile uniquement dans le cas d'un annuaire + multi-niveaux. + + + + + + recoverPassword + + Définition des paramètres de la récupération de mot de passe. + Voir la section concernée. + + + + + + emailSender + + Adresse mail utilisée par &LdapSaisie; pour envoyer des e-mails en + relation avec cet annuaire. Cette adresse est celle utilisée par défaut. + L'adresse utilisée peut également être configurée dans le contexte de + configuration du module devant envoyer des e-mails. + + + + + keepLSsessionActive + + Activation/Désactivation du maintient de la LSsession active. + Valeurs possibles : True ou + False + + + + + + + +&conf-LSprofile; + +&conf-subDn; + +&conf-recoverPassword; + + diff --git a/doc/conf/subDn.docbook b/doc/conf/subDn.docbook new file mode 100644 index 00000000..276a5e06 --- /dev/null +++ b/doc/conf/subDn.docbook @@ -0,0 +1,97 @@ + + + + Sous-niveaux de connexion + + Cette section décrit la manière de définir des sous-niveaux de connexion + à l'annuaire (subDn). Le concept de sous-niveau de + connexion sert à déclarer les niveaux logiques de l'annuaire. Par exemple, dans un + annuaire dans lequel sont stockés des objets concernant plusieurs organisations + et que celles-ci se distinguent grâce à la présence d'une séparation dans + l'arbre, il sera alors possible de définir des sous-niveaux de connexion pour + chacune des organisations. + + + Exemple d'arborescence d'annuaire utilisant le concept de + sous-niveaux correspondant à des sociétés +|- o=ls +| |- ou=companies +| | |- ou=company1 +| | | |- ou=people +| | | |- ou=groups +| | |- ou=company2 +| | | |- ou=people +| | | |- ou=groups +| |- ou=people +| |- ou=groups + + + +Explications : Il est possible dans cet exemple de définir des +sous-niveaux de connexion correspondants aux sociétés. Dans chacune de ces +sociétés, on retrouve les OU correspondant au type +d'LSobjets. Lors de la connexion à l'interface, l'utilisateur +devra choisir dans quel sous-niveau de l'annuaire il souhaite se connecter. Une +fois connecté, l'utilisateur manipulera uniquement les objets du sous-niveau de +l'annuaire dans lequel il se trouve. Il lui sera également possible de changer +de sous-niveau de connexion à travers l'interface : une liste déroulante est +disponible pour cela dans le menu. + + +Il existe deux manières de déclarer des sous-niveaux de connexion à l'annuaire : + + + + +En déclarant manuellement un subDn de l'annuaire +et en lui donnant un nom. + + + + + +En listant les LSobjets d'un type précis et en +utilisant leurs données pour constituer le nom des sous-niveaux. Cette liste est +constituée en effectuant une recherche dans l'annuaire. Il est possible de définir +un basedn particulier pour cette recherche. + + + + + +Pour chacune de ces méthodes on définira également les types +d'LSobjets qui sont présents dans cette branche de +l'annuaire. + + + + Structure... + array( + // Déclaration manuelle + '[Nom du sous-niveau]' => array( + 'dn' => '[basedn du sous-niveau]', + 'LSobjects' => array( // Liste des types d'LSobjets présents dans le sous-niveau + [LSobject1], + [LSobject2], + ... + ) + ), + // Liste de LSobjets + 'LSobject' => array( + '[type d'LSobject]' => array( // le type d'LSobjet à lister + 'basedn' => '[basedn]', // Le basedn de la recherche + 'displayValue' => '[format]', // Format du nom des sous-niveaux + 'LSobjects' => array( // Liste des types d'LSobjets présents dans les sous-niveaux + [LSobject1], + [LSobject2], + ... + ) + ) + ) +),]]> +... + + + + + diff --git a/doc/exports/Makefile b/doc/exports/Makefile new file mode 100644 index 00000000..3c81608f --- /dev/null +++ b/doc/exports/Makefile @@ -0,0 +1,23 @@ +DOCBOOK_FILE=../LdapSaisie.docbook + +all: html pdf + +# HTML +html: html/LdapSaisie.html + +html/LdapSaisie.html: + cd html; make html + +clean_html: + cd html; make clean + +# PDF +pdf: pdf/LdapSaisie.pdf + +pdf/LdapSaisie.pdf: + cd pdf; make pdf + +clean_pdf: + cd pdf; make clean + +clean: clean_html clean_pdf diff --git a/doc/exports/html/Makefile b/doc/exports/html/Makefile new file mode 100644 index 00000000..8629159d --- /dev/null +++ b/doc/exports/html/Makefile @@ -0,0 +1,23 @@ +DOCBOOK_FILE=../../LdapSaisie.docbook +XSL_FILE=../../styles/LS.xsl +XSL_MULTI_FILE=../../styles/LS-multi.xsl +XSL_HELP_FILE=../../styles/LS-help.xsl + +XSLTPROC=xsltproc + +all: html + +html: all-in-one/LdapSaisie.html online/index.html help/index.html + +all-in-one/LdapSaisie.html: $(DOCBOOK_FILE) + $(XSLTPROC) --output all-in-one/LdapSaisie.html $(XSL_FILE) $(DOCBOOK_FILE) + +online/index.html: $(DOCBOOK_FILE) + cd online; $(XSLTPROC) -stringparam chunker.output.indent yes \ + ../$(XSL_MULTI_FILE) ../$(DOCBOOK_FILE) + +help/index.html: $(DOCBOOK_FILE) + cd help; $(XSLTPROC) ../$(XSL_HELP_FILE) ../$(DOCBOOK_FILE) + +clean: + rm -f all-in-one/LdapSaisie.html online/* help/* diff --git a/doc/exports/pdf/Makefile b/doc/exports/pdf/Makefile new file mode 100644 index 00000000..d2a720ce --- /dev/null +++ b/doc/exports/pdf/Makefile @@ -0,0 +1,13 @@ +DOCBOOK_FILE=../../LdapSaisie.docbook +JW=jw +PDF_FILE=LdapSaisie.pdf + +all: pdf + +pdf: LdapSaisie.pdf + +LdapSaisie.pdf: $(DOCBOOK_FILE) + SP_ENCODING=XML $(JW) -f docbook -b pdf "$(DOCBOOK_FILE)" + +clean: + rm -f $(PDF_FILE) diff --git a/doc/images/important.png b/doc/images/important.png new file mode 100644 index 00000000..dc8c8a45 Binary files /dev/null and b/doc/images/important.png differ diff --git a/doc/images/note.png b/doc/images/note.png new file mode 100644 index 00000000..df1e0a92 Binary files /dev/null and b/doc/images/note.png differ diff --git a/doc/images/tip.png b/doc/images/tip.png new file mode 100644 index 00000000..2000f208 Binary files /dev/null and b/doc/images/tip.png differ diff --git a/doc/images/warning.png b/doc/images/warning.png new file mode 100644 index 00000000..3c8a37df Binary files /dev/null and b/doc/images/warning.png differ diff --git a/doc/install/arbo.docbook b/doc/install/arbo.docbook new file mode 100644 index 00000000..ad4c0983 --- /dev/null +++ b/doc/install/arbo.docbook @@ -0,0 +1,128 @@ + + + Arborescence du projet + + + Racine + + + conf/ + + Contient les fichiers de configuration. + + + + + + LSobjects/ + + Configuration des LSobjets. + + + + + LSaddons/ + + Configuration des LSaddons. + + + + + + + + + + + + + includes/ + + + Contient les fichiers des ressources. + + + + + + addons/ + + Les addons au projet. + + + + + class/ + + Les fichiers de définition des classes &php;. + + + + + js/ + + Les fichiers Javascript. + + + + + libs/ + + Les librairies utilisées. + + + + + + + + + + + + l10n/ + + Les fichiers d'internationalisation. + + + + + lsexample/ + + Les fichiers relatifs à l'annuaire d'exemple. + + + + + templates/ + + Les fichiers template de l'interface. + Il y a un sous-dossier par template. + + + + + css/ + + Les fichiers css de l'interface. Il y a un sous-dossier par + template CSS. + + + + + images/ + + Les images de l'interface. Il y a un sous-dossier par template + d'image. + + + + + tmp/ + + Les fichiers temporaires (y compris le cache des templates). + + + + + diff --git a/doc/install/install.docbook b/doc/install/install.docbook new file mode 100644 index 00000000..ff41a96c --- /dev/null +++ b/doc/install/install.docbook @@ -0,0 +1,117 @@ + + + +Installation + + + Pré-requis + + &php; 5 avec magic_quotes_gpc à off + Le support LDAP dans &php; (paquet php5-ldap dans Debian) + Le support mhash dans &php; (paquet php5-mash dans Debian) + &netldap; + &smarty; + L'utisateur exécutant le serveur web doit avoir les droits d'écriture sur le dossier 'tmp'. + + La librairie &netldap; oblige le fait que la racine DSE de + l'annuaire soit lisible en anonyme sinon la connexion à l'annuaire échouera + systématiquement. + + + + Téléchargement + Il n'existe pas encore de version stable publiée. Vous pouvez obtenir le + code source soit en le rapatriant à partir du serveur Subversion, soit en téléchargeant + le dernier snapshot nocturne de l'arbre Subversion. + + + + A partir de Subversion + Le dépôt Subversion peut être récupéré anonymement en utilisant la + commande suivante : + + svn checkout svn://labs.libre-entreprise.org/svnroot/ldapsaisie + + La racine web de l'application se trouvera alors dans le dossier + /ldapsaisie/trunk/. + + + + + A partir des snapshot + Toutes les nuits, un snapshot de l'arbre Subversion est réalisé et est + téléchargeable au format tar.gz à l'adresse suivante : + + http://labs.libre-entreprise.org/snapshots.php?group_id=118 + + + + + +&install-arbo; + + + Les étapes de l'installation + Cette section décrit rapidement les différentes étapes de l'installation + de LdapSaisie. + + + Téléchargement et décompression si nécessaire. + Plus de détails + + Configuration globale : Cette partie est principalement + contenue dans le fichier conf/config.inc.php.Il s'agit en + particulier de configurer la connexion à votre annuaire. Pour plus de détails, + reportez-vous à la section concernée. + + Il est possible de passer l'application en mode debug + ce qui peut être utile par la suite. + + + Configuration des types de &LSobjects; : Chaque type d'objet + manipulé par LdapSaisie doit correspondre avec un type de LSobject. + + + + Création du fichier de classe : Ce fichier contient la + déclaration de la classe PHP correspondant au type de LSobject. Cette classe + étend la classe LSldapObject qui contient pour ainsi dire + toute les méthodes et proprités nécessaires pour les types de LSobject simples + (sans &LSrelation;). Les fichiers des classes sont contenus dans le dossier + /includes/class/ et portent les noms composés de la + manière suivante : + class.LSobjects.[nom du type d'LSobject].php + Le plus simple pour cette étape est de recopier un des fichiers d'exemple et + de l'adapter en changeant le nom du type d'objet dans l'ensemble du fichier. + Pour cela, le fichier de classe du type LSeepeople est + le plus simple car il ne contient que le strict minimum. + + Configurer vos LSobject : Cette partie est certainement la + plus longue et consiste à déclarer l'ensemble des informations relatives aux + types des objets LDAP manipulés. Les fichiers d'exemples fournis vous seront + certainement d'une aide précieuse. Pour plus de détails, reportez-vous à + la section concernée. + + + Configurer si nécessaire les relations entre les objets + appelés &LSrelations;. Cette opération consiste dans un premier temps à écrire + les méthodes PHP nécessaires pour gérer ces relations : pour cela regardez le + fichier de classe du type LSeegroup. Il faudra ensuite + déclarer ces relations dans la configuration des types d'LSobjects : Pour plus + de détails, reportez-vous à la + section concernée. + + + + + + + Personnaliser l'interface : Il est possible de personnaliser + à votre goût l'interface en écrivant votre template ou en modifiant simplement + les fichiers CSS. Une partie de cette documentation concernera bientôt cette + problématique. Patience... + + + + + diff --git a/doc/intro/intro.docbook b/doc/intro/intro.docbook new file mode 100644 index 00000000..e85f7614 --- /dev/null +++ b/doc/intro/intro.docbook @@ -0,0 +1,97 @@ + +Introduction +LdapSaisie est une application web d'administration d'annuaire LDAP développée +en PHP/Javascript. Cette application a pour but d'abstraire la complexité d'un +annuaire par l'intermédiraire d'une interface d'administration simple et intuitive. +L'application a été concue avec pour objectif premier une modularité maximum, ce +qui permet l'extention ou l'adaptation facile de l'application par l'intermédiaire +de modules, d'extentions et de greffons. Cette application peut être utilisée pour +administrer le système d'information basé sur l'annuaire LDAP et également en +paralèlle pour permettre aux utilisateurs d'avoir accès aux données les concernants +et éventuellement de les modifier. + + +Fonctionnalités +De part sa modularité, &LdapSaisie; est facilement extensible. Cependant, +voici une liste non-exhaustive de ses fonctionnalités : + +Gestion d'annuaire simple et multi-branches +Gestion d'un nombre illimité de types d'objets +Gestion d'un nombre illimité de populations se connectant à +l'interface +Gestion fine des droits des utilisateurs, permettant la +maitrise des droits d'accès sur les objets de l'annuaire et leurs atributs, tout +en permettant la délégation de droits. + +Gestion d'un grand nombre de types d'attributs : + + + Texte (court ou long) + Date (format paramétrable) + Booléen (valeurs paramétrables) + Image/Photo + Mot de passe (génération de mot passe avec gestion d'une + politique fine) + Adresse mail + Flux RSS + Lien web (URL) + Adresse XMPP + Maildir + Quota de mails + Clef publique SSH + Liste déroulante à choix simple ou multiple + Relation à d'autres objets de l'annuaire/ Exemple : membres + d'un groupe, parrain d'un utilisateur, ... (valeur clé paramétrable) + + + Chaque type d'attribut à des fonctionnalités qui lui sont propres + et qui rendent plus facile et agréable l'utilisation de l'interface (génération + automatique de mot de passe, génération des valeurs d'un champ à partir + d'autres, ...). + + + +Gestion d'un grand nombre de règles de vérification des valeurs + des attributs : + + + Alpha-numérique + Lettres uniquement + Longeur maximale/minimale d'une chaine de caractères + Valeur différente de zéro + Pas de signe de ponctuation + Valeur numérique + Comparaison de valeur + Date + Adresse mail + Poids d'une image + Taille d'une image + Type de fichiers images + Politique de mot de passe (longueur/caractères + autorisés/caractères obligatoires) + + + + +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. + + + + diff --git a/doc/styles/LS-help.xsl b/doc/styles/LS-help.xsl new file mode 100644 index 00000000..e1060541 --- /dev/null +++ b/doc/styles/LS-help.xsl @@ -0,0 +1,20 @@ + + + + + + + + + + +../../../images/ +.png + + +5 + + diff --git a/doc/styles/LS-multi.xsl b/doc/styles/LS-multi.xsl new file mode 100644 index 00000000..c6ee8251 --- /dev/null +++ b/doc/styles/LS-multi.xsl @@ -0,0 +1,20 @@ + + + + + + + + + + +../../../images/ +.png + + +5 + + diff --git a/doc/styles/LS.css b/doc/styles/LS.css new file mode 100644 index 00000000..286780b5 --- /dev/null +++ b/doc/styles/LS.css @@ -0,0 +1,147 @@ +body { + font-family: sans-serif; +} + +hr { + border: none; + border-bottom: 1px solid; +} + +/* + * Title + */ +h2.title, h3.title, h4.title, h5.title, h6.title{ + color: #000; + font-weight: bold; + border-bottom: 1px solid; +} + +h2.title { + font-size: 24px; +} + +h3.title { + font-size: 20px; +} + +h4.title { + font-size: 16px; +} + +h5.title, h6.title { + font-size: 14px; +} + +h5.title { + margin-left: 2em; +} + +/* + * Menu + */ +div.toc a { + text-decoration: none; +} + +/* + * Code + */ +pre.programlisting { + border-style: solid; + border-color: #60B7D4; + -moz-border-radius: 6px; + border-width: 1px 1px 1px 6px; + opacity: 0.7; + background-color: #D4E8EE; + padding: 0.5em; + width: 90%; + margin: auto; + color: #111; +} + +em.citetitle { + -moz-border-radius: 6px; + background-color: #60B7D4; + font-family: sans-serif; + font-size: 1em; + font-style: normal; + padding: 5px; + margin: 0.2em; + margin-top: -1em; + display: block; + width: 50%; + -moz-border-radius: 6px; +} + +/* + * Warning / Important / Note + */ +div.warning, div.important, div.note { + margin: 10px; + padding: 10px; + -moz-border-radius: 20px; +} + +div.warning table, div.important table, div.note table { + color: #fff; + border: none; +} + +div.warning table th, div.important table th, div.note table th { + background-color: transparent; + font-size: 1.2em; +} + +div.warning a, div.important a, div.note a { + color: #fff; + font-weight: bold; +} + +/* + * Warning + */ +div.warning { + background-color: #FF3B3B; +} + + +/* + * Important + */ +div.important { + background-color: #366CEB; +} + +/* + * Note + */ +div.note { + background-color: #4D4D4D; +} + +/* + * Tableau + */ +table { + border: 1px solid #000; + border-collapse: collapse; +} + +td { + padding: 0.3em; +} + +th { + background-color: #D4E8EE; + font-weight: bold; +} + +div.navheader th { + background-color: transparent; +} + +span.term { + font-family: courier; + font-size: 1.1em; + margin: 5px; +} diff --git a/doc/styles/LS.xsl b/doc/styles/LS.xsl new file mode 100644 index 00000000..83aa89fb --- /dev/null +++ b/doc/styles/LS.xsl @@ -0,0 +1,17 @@ + + + + + + + + +../../../images/ +.png + + +5 +