mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-11-26 03:43:08 +01:00
- Ajout d'un module de récupération de mot de passe (Feature Requests #1662)
- Externalisation de la fonction generatePassword() - LSform : ajout de la méthode setPostData() - LSsession_login.js : externalisation du code pour masque la sélection du niveau - LSformRule : externalisation de la fonction checkMail() - debug : gestion de l'affichage de dump d'objet - Mise à jour de LSexample
This commit is contained in:
parent
7d9399bffe
commit
1c2991bc5b
20 changed files with 750 additions and 1010 deletions
|
@ -257,7 +257,8 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
|
||||||
'required' => 1,
|
'required' => 1,
|
||||||
'check_data' => array (
|
'check_data' => array (
|
||||||
'email' => array(
|
'email' => array(
|
||||||
'msg' => _("L'adresse e-mail entrée n'est pas valide.")
|
'msg' => _("L'adresse e-mail entrée n'est pas valide."),
|
||||||
|
'param' => array('checkDomain' => false)
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
'rights' => array(
|
'rights' => array(
|
||||||
|
@ -293,100 +294,6 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
|
||||||
'Mlle' => 'Mlle'
|
'Mlle' => 'Mlle'
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
'maildrop' => array (
|
|
||||||
'label' => _('Mail indésirable'),
|
|
||||||
'ldap_type' => 'ascii',
|
|
||||||
'html_type' => 'text',
|
|
||||||
'multiple' => true,
|
|
||||||
'check_data' => array (
|
|
||||||
'email' => array(
|
|
||||||
'msg' => _("L'adresse e-mail entrée n'est pas valide.")
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'rights' => array(
|
|
||||||
'self' => 'w',
|
|
||||||
'admin' => 'w'
|
|
||||||
),
|
|
||||||
'view' => 1,
|
|
||||||
'form' => array (
|
|
||||||
'modify' => 1,
|
|
||||||
)
|
|
||||||
),
|
|
||||||
'vacationActive' => array (
|
|
||||||
'label' => _('Réponse automatique'),
|
|
||||||
'ldap_type' => 'ascii',
|
|
||||||
'html_type' => 'select_list',
|
|
||||||
'default_value' => '',
|
|
||||||
'check_data' => array (
|
|
||||||
'email' => array(
|
|
||||||
'msg' => _("L'adresse e-mail entrée n'est pas valide.")
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'rights' => array(
|
|
||||||
'self' => 'w',
|
|
||||||
'admin' => 'w',
|
|
||||||
'user' => 'r'
|
|
||||||
),
|
|
||||||
'view' => 1,
|
|
||||||
'form' => array (
|
|
||||||
'modify' => 1,
|
|
||||||
),
|
|
||||||
'possible_values' => array(
|
|
||||||
'' => 'Non',
|
|
||||||
'%{uid}@autoreponse.example.fr' => 'Oui'
|
|
||||||
)
|
|
||||||
),
|
|
||||||
'vacationInfo' => array (
|
|
||||||
'label' => _('Message en reponse'),
|
|
||||||
'ldap_type' => 'ascii',
|
|
||||||
'html_type' => 'textarea',
|
|
||||||
'multiple' => true,
|
|
||||||
'rights' => array(
|
|
||||||
'self' => 'w',
|
|
||||||
'admin' => 'w'
|
|
||||||
),
|
|
||||||
'view' => 1,
|
|
||||||
'form' => array (
|
|
||||||
'modify' => 1,
|
|
||||||
)
|
|
||||||
),
|
|
||||||
'vacationForward' => array (
|
|
||||||
'label' => _('Transfert de mail'),
|
|
||||||
'ldap_type' => 'ascii',
|
|
||||||
'html_type' => 'text',
|
|
||||||
'check_data' => array (
|
|
||||||
'email' => array(
|
|
||||||
'msg' => _("L'adresse e-mail entrée n'est pas valide.")
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'rights' => array(
|
|
||||||
'self' => 'w',
|
|
||||||
'user' => 'r',
|
|
||||||
'admin' => 'w'
|
|
||||||
),
|
|
||||||
'view' => 1,
|
|
||||||
'form' => array (
|
|
||||||
'modify' => 1,
|
|
||||||
)
|
|
||||||
),
|
|
||||||
'mailQuota' => array (
|
|
||||||
'label' => _('Quota boite mail'),
|
|
||||||
'ldap_type' => 'ascii',
|
|
||||||
'html_type' => 'text',
|
|
||||||
'check_data' => array (
|
|
||||||
'numeric' => array(
|
|
||||||
'msg' => _("Le quota de l'adresse mail entrée n'est pas valide.")
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'rights' => array(
|
|
||||||
'self' => 'r',
|
|
||||||
'admin' => 'w'
|
|
||||||
),
|
|
||||||
'view' => 1,
|
|
||||||
'form' => array (
|
|
||||||
'modify' => 1,
|
|
||||||
)
|
|
||||||
),
|
|
||||||
'description' => array (
|
'description' => array (
|
||||||
'label' => _('Description'),
|
'label' => _('Description'),
|
||||||
'ldap_type' => 'ascii',
|
'ldap_type' => 'ascii',
|
||||||
|
@ -423,7 +330,21 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
|
||||||
),
|
),
|
||||||
'form' => array (
|
'form' => array (
|
||||||
'modify' => 1,
|
'modify' => 1,
|
||||||
'create' => 1
|
'create' => 1,
|
||||||
|
'lostPassword' => 1
|
||||||
|
)
|
||||||
|
),
|
||||||
|
'lsRecoveryHash' => array (
|
||||||
|
'label' => _('Hash de recouvrement du mot de passe'),
|
||||||
|
'ldap_type' => 'ascii',
|
||||||
|
'html_type' => 'text',
|
||||||
|
'required' => 0,
|
||||||
|
'form' => array (
|
||||||
|
'lostPassword' => 1
|
||||||
|
),
|
||||||
|
'rights' => array(
|
||||||
|
'self' => 'w',
|
||||||
|
'admin' => 'w'
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
'sambaLMPassword' => array (
|
'sambaLMPassword' => array (
|
||||||
|
|
|
@ -43,11 +43,11 @@ $GLOBALS['LSerror_code'] = array (
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
4 => array (
|
4 => array (
|
||||||
'msg' => _("LSldap : Erreur durant la récupération de l'entrée Ldap."),
|
'msg' => _("LSldap : Erreur durant la récupération de l'entrée Ldap."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
5 => array (
|
5 => array (
|
||||||
'msg' => _("LSldap : Erreur durant la mise à jour de l'entrée Ldap (DN : %{dn})."),
|
'msg' => _("LSldap : Erreur durant la mise à jour de l'entrée Ldap (DN : %{dn})."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
6 => array (
|
6 => array (
|
||||||
|
@ -73,43 +73,43 @@ $GLOBALS['LSerror_code'] = array (
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
25 => array (
|
25 => array (
|
||||||
'msg' => _("LSldapObject : Des données de configuration sont manquant pour la validation de l'attribut %{attr} de l'objet %{obj}."),
|
'msg' => _("LSldapObject : Des données de configuration sont manquant pour la validation de l'attribut %{attr} de l'objet %{obj}."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
26 => array (
|
26 => array (
|
||||||
'msg' => _("LSldapObject : Erreur de configuration : L'objet %{obj} ne possède pas d'attribut %{attr}."),
|
'msg' => _("LSldapObject : Erreur de configuration : L'objet %{obj} ne possède pas d'attribut %{attr}."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
27 => array (
|
27 => array (
|
||||||
'msg' => _("LSldapObject : La fonction %{func} devant être executée avant l'enregistrement n'existe pas."),
|
'msg' => _("LSldapObject : La fonction %{func} devant être executée avant l'enregistrement n'existe pas."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
28 => array (
|
28 => array (
|
||||||
'msg' => _("LSldapObject : L'execution de la fonction %{func} devant être executée avant l'enregistrement a échouée."),
|
'msg' => _("LSldapObject : L'execution de la fonction %{func} devant être executée avant l'enregistrement a échouée."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
29 => array (
|
29 => array (
|
||||||
'msg' => _("LSldapObject : La fonction %{func} devant être executée après l'enregistrement n'existe pas."),
|
'msg' => _("LSldapObject : La fonction %{func} devant être executée après l'enregistrement n'existe pas."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
30 => array (
|
30 => array (
|
||||||
'msg' => _("LSldapObject : L'execution de la fonction %{func} devant être executée après l'enregistrement a échouée."),
|
'msg' => _("LSldapObject : L'execution de la fonction %{func} devant être executée après l'enregistrement a échouée."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
31 => array (
|
31 => array (
|
||||||
'msg' => _("LSldapObject : Il manque des informations de configuration du type d'objet %{obj} pour la création du nouveau DN."),
|
'msg' => _("LSldapObject : Il manque des informations de configuration du type d'objet %{obj} pour la création du nouveau DN."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
32 => array (
|
32 => array (
|
||||||
'msg' => _("LSldapObject : L'attribut %{attr} de l'objet n'est pas encore définis. Il est impossible de generer un nouveau DN."),
|
'msg' => _("LSldapObject : L'attribut %{attr} de l'objet n'est pas encore définis. Il est impossible de generer un nouveau DN."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
33 => array (
|
33 => array (
|
||||||
'msg' => _("LSldapObject : Sans DN, l'objet n'a put être modifié."),
|
'msg' => _("LSldapObject : Sans DN, l'objet n'a put être modifié."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
34 => array (
|
34 => array (
|
||||||
'msg' => _("LSldapObject : L'attribut %{attr_depend} dépendant de l'attribut %{attr} n'existe pas."),
|
'msg' => _("LSldapObject : L'attribut %{attr_depend} dépendant de l'attribut %{attr} n'existe pas."),
|
||||||
'level' => 'w'
|
'level' => 'w'
|
||||||
),
|
),
|
||||||
35 => array (
|
35 => array (
|
||||||
|
@ -127,11 +127,11 @@ $GLOBALS['LSerror_code'] = array (
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
43 => array (
|
43 => array (
|
||||||
'msg' => _("LSattribute : La règle %{rule} pour valider l'attribut %{attr} est inconnue."),
|
'msg' => _("LSattribute : La règle %{rule} pour valider l'attribut %{attr} est inconnue."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
44 => array (
|
44 => array (
|
||||||
'msg' => _("LSattribute : Les données de configuration pour vérifié l'attribut %{attr} sont incorrects."),
|
'msg' => _("LSattribute : Les données de configuration pour vérifié l'attribut %{attr} sont incorrects."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
45 => array (
|
45 => array (
|
||||||
|
@ -139,43 +139,43 @@ $GLOBALS['LSerror_code'] = array (
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
46 => array (
|
46 => array (
|
||||||
'msg' => _("LSattribute : La valeur de l'attribut %{attr} ne peut pas être générée."),
|
'msg' => _("LSattribute : La valeur de l'attribut %{attr} ne peut pas être générée."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
47 => array (
|
47 => array (
|
||||||
'msg' => _("LSattribute : La valeur de l'attribut %{attr} n'a pas put être générée."),
|
'msg' => _("LSattribute : La valeur de l'attribut %{attr} n'a pas put être générée."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
48 => array (
|
48 => array (
|
||||||
'msg' => _("LSattribute : La génération de l'attribut %{attr} n'a pas retourné une valeur correcte."),
|
'msg' => _("LSattribute : La génération de l'attribut %{attr} n'a pas retourné une valeur correcte."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
|
|
||||||
// LSattr_html
|
// LSattr_html
|
||||||
101 => array (
|
101 => array (
|
||||||
'msg' => _("LSattr_html : La fonction addToForm() du type html de l'attribut %{attr} n'est pas définie."),
|
'msg' => _("LSattr_html : La fonction addToForm() du type html de l'attribut %{attr} n'est pas définie."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
102 => array (
|
102 => array (
|
||||||
'msg' => _("LSattr_html_select_list : Des données de configuration sont manquante pour la génération de la liste deroulante de l'attribut %{attr}."),
|
'msg' => _("LSattr_html_select_list : Des données de configuration sont manquante pour la génération de la liste deroulante de l'attribut %{attr}."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
103 => array (
|
103 => array (
|
||||||
'msg' => _("LSattr_html_%{type} : Les données multiples ne sont pas gérés pour ce type d'attribut."),
|
'msg' => _("LSattr_html_%{type} : Les données multiples ne sont pas gérés pour ce type d'attribut."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
|
|
||||||
// LSform
|
// LSform
|
||||||
201 => array(
|
201 => array(
|
||||||
'msg' => _("LSform : Erreur durant la recupération des valeurs du formulaire."),
|
'msg' => _("LSform : Erreur durant la recupération des valeurs du formulaire."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
202 => array(
|
202 => array(
|
||||||
'msg' => _("LSform : Erreur durant la récupération de la valeur du formulaire du champ '%{element}'."),
|
'msg' => _("LSform : Erreur durant la récupération de la valeur du formulaire du champ '%{element}'."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
203 => array(
|
203 => array(
|
||||||
'msg' => _("LSform : Les données du champ %{element} ne sont pas valides."),
|
'msg' => _("LSform : Les données du champ %{element} ne sont pas valides."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
204 => array(
|
204 => array(
|
||||||
|
@ -187,16 +187,16 @@ $GLOBALS['LSerror_code'] = array (
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
206 => array(
|
206 => array(
|
||||||
'msg' => _("LSform : Erreur durant la création de l'élement '%{element}'."),
|
'msg' => _("LSform : Erreur durant la création de l'élement '%{element}'."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
207 => array(
|
207 => array(
|
||||||
'msg' => _("LSform : Aucune valeur de rentrée pour le champs '%{element}'."),
|
'msg' => _("LSform : Aucune valeur de rentrée pour le champs '%{element}'."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
|
|
||||||
301 => array(
|
301 => array(
|
||||||
'msg' => _("LSformRule : Aucune regex n'a été fournis pour la validation des données."),
|
'msg' => _("LSformRule : Aucune regex n'a été fournis pour la validation des données."),
|
||||||
'level' => 'w'
|
'level' => 'w'
|
||||||
),
|
),
|
||||||
|
|
||||||
|
@ -208,15 +208,15 @@ $GLOBALS['LSerror_code'] = array (
|
||||||
|
|
||||||
// LSsession
|
// LSsession
|
||||||
1001 => array (
|
1001 => array (
|
||||||
'msg' => _("LSsession : La constante %{const} n'est pas définie."),
|
'msg' => _("LSsession : La constante %{const} n'est pas définie."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
1002 => array (
|
1002 => array (
|
||||||
'msg' => _("LSsession : Le support %{addon} n'est pas assuré. Vérifier la compatibilité du système et la configuration de l'addon"),
|
'msg' => _("LSsession : Le support %{addon} n'est pas assuré. Vérifier la compatibilité du système et la configuration de l'addon"),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
1003 => array (
|
1003 => array (
|
||||||
'msg' => _("LSsession : Données de configuration du serveur LDAP invalide. Impossible d'établir une connexion."),
|
'msg' => _("LSsession : Données de configuration du serveur LDAP invalide. Impossible d'établir une connexion."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
1004 => array (
|
1004 => array (
|
||||||
|
@ -232,7 +232,7 @@ $GLOBALS['LSerror_code'] = array (
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
1007 => array (
|
1007 => array (
|
||||||
'msg' => _("LSsession : Impossible de vous identifier : Duplication d'authentité."),
|
'msg' => _("LSsession : Impossible de vous identifier : Duplication d'authentité."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
1008 => array (
|
1008 => array (
|
||||||
|
@ -248,7 +248,7 @@ $GLOBALS['LSerror_code'] = array (
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
1011 => array (
|
1011 => array (
|
||||||
'msg' => _("LSsession : Vous n'êtes pas authorisé à effectuer cette action."),
|
'msg' => _("LSsession : Vous n'êtes pas authorisé à effectuer cette action."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
1012 => array (
|
1012 => array (
|
||||||
|
@ -260,7 +260,7 @@ $GLOBALS['LSerror_code'] = array (
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
1014 => array (
|
1014 => array (
|
||||||
'msg' => _("LSrelations : La fonction de mise à jour pour la relation %{relation} est inconnu."),
|
'msg' => _("LSrelations : La fonction de mise à jour pour la relation %{relation} est inconnu."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
),
|
),
|
||||||
1015 => array (
|
1015 => array (
|
||||||
|
@ -274,6 +274,18 @@ $GLOBALS['LSerror_code'] = array (
|
||||||
1017 => array (
|
1017 => array (
|
||||||
'msg' => _("LSsession : Impossible de créer correctement la liste des niveaux. Vérifier la configuration."),
|
'msg' => _("LSsession : Impossible de créer correctement la liste des niveaux. Vérifier la configuration."),
|
||||||
'level' => 'c'
|
'level' => 'c'
|
||||||
|
),
|
||||||
|
1018 => array (
|
||||||
|
'msg' => _("LSsession : La récupération de mot de passe est désactivée pour ce serveur LDAP."),
|
||||||
|
'level' => 'c'
|
||||||
|
),
|
||||||
|
1019 => array (
|
||||||
|
'msg' => _("LSsession : Des informations sont manquantes pour la récupération de votre mot de passe. Contactez l'administrateur du système."),
|
||||||
|
'level' => 'c'
|
||||||
|
),
|
||||||
|
1020 => array (
|
||||||
|
'msg' => _("LSsession : Erreur durant la récupération de votre mot de passe. Contactez l'administrateur du système."),
|
||||||
|
'level' => 'c'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -34,7 +34,7 @@ $GLOBALS['LSconfig'] = array(
|
||||||
'port' => 389,
|
'port' => 389,
|
||||||
'version' => 3,
|
'version' => 3,
|
||||||
'starttls' => false,
|
'starttls' => false,
|
||||||
'binddn' => 'uid=eeggs,ou=people,o=ls',
|
'binddn' => 'uid=ldapsaisie,ou=sysaccounts,o=ls',
|
||||||
'bindpw' => 'toto',
|
'bindpw' => 'toto',
|
||||||
'basedn' => 'o=ls',
|
'basedn' => 'o=ls',
|
||||||
'options' => array(),
|
'options' => array(),
|
||||||
|
@ -55,6 +55,21 @@ $GLOBALS['LSconfig'] = array(
|
||||||
'cacheLSrights' => false,
|
'cacheLSrights' => false,
|
||||||
'authobject' => 'LSeepeople',
|
'authobject' => 'LSeepeople',
|
||||||
'authobject_pwdattr' => 'userPassword',
|
'authobject_pwdattr' => 'userPassword',
|
||||||
|
'recoverPassword' => array(
|
||||||
|
'mailAttr' => 'mail',
|
||||||
|
'passwordAttr' => 'userPassword',
|
||||||
|
'recoveryHashAttr' => 'lsRecoveryHash',
|
||||||
|
'recoveryEmailSender' => 'noreply-recover@lsexample.net',
|
||||||
|
'recoveryHashMail' => array(
|
||||||
|
'subject' => 'LSexample : Récupération de votre mot de passe.',
|
||||||
|
'msg' => "Pour poursuivre le processus de récupération de votre mot de passe,\nmerci de cliquer de vous rendre à l'adresse suivante :\n%{url}"
|
||||||
|
),
|
||||||
|
'newPasswordMail' => array(
|
||||||
|
'subject' => 'LSexample : Votre nouveau mot de passe.',
|
||||||
|
'msg' => "Votre nouveau mot de passe : %{mdp}"
|
||||||
|
)
|
||||||
|
),
|
||||||
|
'emailSender' => 'noreply@lsexample.net',
|
||||||
'LSobjects' => array (
|
'LSobjects' => array (
|
||||||
'LSeepeople',
|
'LSeepeople',
|
||||||
'LSeegroup',
|
'LSeegroup',
|
||||||
|
|
|
@ -266,6 +266,35 @@ class LSform {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Défini arbitrairement des données en POST
|
||||||
|
*
|
||||||
|
* @author Benjamin Renard <brenard@easter-eggs.com>
|
||||||
|
*
|
||||||
|
* @param[in] $data array('attr' => array(values)) Tableau des données du formulaire
|
||||||
|
* @param[in] $consideredAsSubmit Définie si on force le formualaire comme envoyer
|
||||||
|
*
|
||||||
|
* @retval boolean true si les données ont été définies, false sinon
|
||||||
|
*/
|
||||||
|
function setPostData($data,$consideredAsSubmit=false) {
|
||||||
|
if (is_array($data)) {
|
||||||
|
foreach($data as $key => $values) {
|
||||||
|
if (!is_array($values)) {
|
||||||
|
$values = array($values);
|
||||||
|
}
|
||||||
|
$_POST[$key] = $values;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($consideredAsSubmit) {
|
||||||
|
$_POST['validate']='LSform';
|
||||||
|
$_POST['idForm']=$this -> idForm;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Récupère les valeurs postées dans le formulaire
|
* Récupère les valeurs postées dans le formulaire
|
||||||
*
|
*
|
||||||
|
|
|
@ -96,7 +96,7 @@ class LSformElement_password extends LSformElement {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (empty($this -> values)) {
|
if (empty($this -> values)) {
|
||||||
$return['html'] = _('Aucunes valeur definie');
|
$return['html'] = _('Aucune valeur definie');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$return['html'] = "********";
|
$return['html'] = "********";
|
||||||
|
@ -107,25 +107,7 @@ class LSformElement_password extends LSformElement {
|
||||||
}
|
}
|
||||||
|
|
||||||
function generatePassword() {
|
function generatePassword() {
|
||||||
if (isset($this -> params['html_options']['chars'])) {
|
return generatePassword($this -> params['html_options']['chars'],$this -> params['html_options']['lenght']);
|
||||||
$chars=$this -> params['html_options']['chars'];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$chars='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-';
|
|
||||||
}
|
|
||||||
$nbChars=strlen($chars);
|
|
||||||
|
|
||||||
if (isset($this -> params['html_options']['lenght'])) {
|
|
||||||
$lenght=$this -> params['html_options']['lenght'];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$lenght=8;
|
|
||||||
}
|
|
||||||
$retVal='';
|
|
||||||
for($i=0;$i<$lenght;$i++){
|
|
||||||
$retVal.=$chars[rand(0,$nbChars-1)];
|
|
||||||
}
|
|
||||||
return $retVal;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,7 @@ class LSformElement_text extends LSformElement {
|
||||||
else {
|
else {
|
||||||
$return['html'] = "<ul class='LSform'>\n";
|
$return['html'] = "<ul class='LSform'>\n";
|
||||||
if (empty($this -> values)) {
|
if (empty($this -> values)) {
|
||||||
$return['html'] .= "<li>"._('Aucunes valeur definie')."</li>\n";
|
$return['html'] .= "<li>"._('Aucune valeur definie')."</li>\n";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
foreach ($this -> values as $value) {
|
foreach ($this -> values as $value) {
|
||||||
|
|
|
@ -57,7 +57,7 @@ class LSformElement_textarea extends LSformElement {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (empty($this -> values)) {
|
if (empty($this -> values)) {
|
||||||
$return['html'].="<li class='LSform'>"._('Aucunes valeur definie')."</li>\n";
|
$return['html'].="<li class='LSform'>"._('Aucune valeur definie')."</li>\n";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
foreach ($this -> values as $value) {
|
foreach ($this -> values as $value) {
|
||||||
|
|
|
@ -38,20 +38,7 @@ class LSformRule_email extends LSformRule {
|
||||||
* @return boolean true si la valeur est valide, false sinon
|
* @return boolean true si la valeur est valide, false sinon
|
||||||
*/
|
*/
|
||||||
function validate($value,$option=array(),$formElement) {
|
function validate($value,$option=array(),$formElement) {
|
||||||
$regex = '/^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/';
|
return checkEmail($value,$option['param']['checkDomain']);
|
||||||
|
|
||||||
if (!preg_match($regex, $value)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($option['params']['checkDomain'] && function_exists('checkdnsrr')) {
|
|
||||||
$tokens = explode('@', $email);
|
|
||||||
if (!(checkdnsrr($tokens[1], 'MX') || checkdnsrr($tokens[1], 'A'))) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@ define('LS_DEFAULT_CONF_DIR','conf');
|
||||||
/**
|
/**
|
||||||
* Gestion des sessions
|
* Gestion des sessions
|
||||||
*
|
*
|
||||||
* Cette classe gère les sessions d'utilisateurs.
|
* Cette classe gère les sessions d'utilisateurs.
|
||||||
*
|
*
|
||||||
* @author Benjamin Renard <brenard@easter-eggs.com>
|
* @author Benjamin Renard <brenard@easter-eggs.com>
|
||||||
*/
|
*/
|
||||||
|
@ -67,11 +67,11 @@ class LSsession {
|
||||||
/**
|
/**
|
||||||
* Chargement de la configuration
|
* Chargement de la configuration
|
||||||
*
|
*
|
||||||
* Chargement des fichiers de configuration et création de l'objet Smarty.
|
* Chargement des fichiers de configuration et création de l'objet Smarty.
|
||||||
*
|
*
|
||||||
* @author Benjamin Renard <brenard@easter-eggs.com>
|
* @author Benjamin Renard <brenard@easter-eggs.com>
|
||||||
*
|
*
|
||||||
* @retval true si tout c'est bien passé, false sinon
|
* @retval true si tout c'est bien passé, false sinon
|
||||||
*/
|
*/
|
||||||
function loadConfig() {
|
function loadConfig() {
|
||||||
if (loadDir($this -> confDir, '^config\..*\.php$')) {
|
if (loadDir($this -> confDir, '^config\..*\.php$')) {
|
||||||
|
@ -93,11 +93,11 @@ class LSsession {
|
||||||
/**
|
/**
|
||||||
* Initialisation de la gestion des erreurs
|
* Initialisation de la gestion des erreurs
|
||||||
*
|
*
|
||||||
* Création de l'objet LSerror
|
* Création de l'objet LSerror
|
||||||
*
|
*
|
||||||
* @author Benjamin Renard <brenard@easter-eggs.com
|
* @author Benjamin Renard <brenard@easter-eggs.com
|
||||||
*
|
*
|
||||||
* @retval boolean true si l'initialisation a réussi, false sinon.
|
* @retval boolean true si l'initialisation a réussi, false sinon.
|
||||||
*/
|
*/
|
||||||
function startLSerror() {
|
function startLSerror() {
|
||||||
if(!$this -> loadLSclass('LSerror'))
|
if(!$this -> loadLSclass('LSerror'))
|
||||||
|
@ -109,12 +109,12 @@ class LSsession {
|
||||||
/**
|
/**
|
||||||
* Chargement d'une classe d'LdapSaisie
|
* Chargement d'une classe d'LdapSaisie
|
||||||
*
|
*
|
||||||
* @param[in] $class Nom de la classe à charger (Exemple : LSeepeople)
|
* @param[in] $class Nom de la classe à charger (Exemple : LSeepeople)
|
||||||
* @param[in] $type (Optionnel) Type de classe à charger (Exemple : LSobjects)
|
* @param[in] $type (Optionnel) Type de classe à charger (Exemple : LSobjects)
|
||||||
*
|
*
|
||||||
* @author Benjamin Renard <brenard@easter-eggs.com
|
* @author Benjamin Renard <brenard@easter-eggs.com
|
||||||
*
|
*
|
||||||
* @retval boolean true si le chargement a réussi, false sinon.
|
* @retval boolean true si le chargement a réussi, false sinon.
|
||||||
*/
|
*/
|
||||||
function loadLSclass($class,$type='') {
|
function loadLSclass($class,$type='') {
|
||||||
if (class_exists($class))
|
if (class_exists($class))
|
||||||
|
@ -127,9 +127,9 @@ class LSsession {
|
||||||
/**
|
/**
|
||||||
* Chargement d'un object LdapSaisie
|
* Chargement d'un object LdapSaisie
|
||||||
*
|
*
|
||||||
* @param[in] $object Nom de l'objet à charger
|
* @param[in] $object Nom de l'objet à charger
|
||||||
*
|
*
|
||||||
* @retval boolean true si le chargement a réussi, false sinon.
|
* @retval boolean true si le chargement a réussi, false sinon.
|
||||||
*/
|
*/
|
||||||
function loadLSobject($object) {
|
function loadLSobject($object) {
|
||||||
$this -> loadLSclass('LSldapObject');
|
$this -> loadLSclass('LSldapObject');
|
||||||
|
@ -148,7 +148,7 @@ class LSsession {
|
||||||
* Chargement des LSobjects contenue dans la variable
|
* Chargement des LSobjects contenue dans la variable
|
||||||
* $this -> ldapServer['LSobjects']
|
* $this -> ldapServer['LSobjects']
|
||||||
*
|
*
|
||||||
* @retval boolean true si le chargement a réussi, false sinon.
|
* @retval boolean true si le chargement a réussi, false sinon.
|
||||||
*/
|
*/
|
||||||
function loadLSobjects() {
|
function loadLSobjects() {
|
||||||
|
|
||||||
|
@ -170,11 +170,11 @@ class LSsession {
|
||||||
/**
|
/**
|
||||||
* Chargement d'un addons d'LdapSaisie
|
* Chargement d'un addons d'LdapSaisie
|
||||||
*
|
*
|
||||||
* @param[in] $addon Nom de l'addon à charger (Exemple : samba)
|
* @param[in] $addon Nom de l'addon à charger (Exemple : samba)
|
||||||
*
|
*
|
||||||
* @author Benjamin Renard <brenard@easter-eggs.com
|
* @author Benjamin Renard <brenard@easter-eggs.com
|
||||||
*
|
*
|
||||||
* @retval boolean true si le chargement a réussi, false sinon.
|
* @retval boolean true si le chargement a réussi, false sinon.
|
||||||
*/
|
*/
|
||||||
function loadLSaddon($addon) {
|
function loadLSaddon($addon) {
|
||||||
return require_once LS_ADDONS_DIR .'LSaddons.'.$addon.'.php';
|
return require_once LS_ADDONS_DIR .'LSaddons.'.$addon.'.php';
|
||||||
|
@ -186,7 +186,7 @@ class LSsession {
|
||||||
* Chargement des LSaddons contenue dans la variable
|
* Chargement des LSaddons contenue dans la variable
|
||||||
* $GLOBALS['LSaddons']['loads']
|
* $GLOBALS['LSaddons']['loads']
|
||||||
*
|
*
|
||||||
* @retval boolean true si le chargement a réussi, false sinon.
|
* @retval boolean true si le chargement a réussi, false sinon.
|
||||||
*/
|
*/
|
||||||
function loadLSaddons() {
|
function loadLSaddons() {
|
||||||
if(!is_array($GLOBALS['LSaddons']['loads'])) {
|
if(!is_array($GLOBALS['LSaddons']['loads'])) {
|
||||||
|
@ -207,19 +207,19 @@ class LSsession {
|
||||||
* Initialisation de la session LdapSaisie
|
* Initialisation de la session LdapSaisie
|
||||||
*
|
*
|
||||||
* Initialisation d'une LSsession :
|
* Initialisation d'une LSsession :
|
||||||
* - Authentification et activation du mécanisme de session de LdapSaisie
|
* - Authentification et activation du mécanisme de session de LdapSaisie
|
||||||
* - ou Chargement des paramètres de la session à partir de la variable
|
* - ou Chargement des paramètres de la session à partir de la variable
|
||||||
* $_SESSION['LSsession'].
|
* $_SESSION['LSsession'].
|
||||||
* - ou Destruction de la session en cas de $_GET['LSsession_logout'].
|
* - ou Destruction de la session en cas de $_GET['LSsession_logout'].
|
||||||
*
|
*
|
||||||
* @retval boolean True si l'initialisation à réussi (utilisateur authentifié), false sinon.
|
* @retval boolean True si l'initialisation à réussi (utilisateur authentifié), false sinon.
|
||||||
*/
|
*/
|
||||||
function startLSsession() {
|
function startLSsession() {
|
||||||
$this -> loadLSaddons();
|
$this -> loadLSaddons();
|
||||||
session_start();
|
session_start();
|
||||||
|
|
||||||
// Déconnexion
|
// Déconnexion
|
||||||
if (isset($_GET['LSsession_logout'])) {
|
if (isset($_GET['LSsession_logout'])||isset($_GET['LSsession_recoverPassword'])) {
|
||||||
session_destroy();
|
session_destroy();
|
||||||
|
|
||||||
if (is_array($_SESSION['LSsession']['tmp_file'])) {
|
if (is_array($_SESSION['LSsession']['tmp_file'])) {
|
||||||
|
@ -229,6 +229,10 @@ class LSsession {
|
||||||
unset($_SESSION['LSsession']);
|
unset($_SESSION['LSsession']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Récupération de mot de passe
|
||||||
|
if (isset($_GET['recoveryHash'])) {
|
||||||
|
$_POST['LSsession_user'] = 'a determiner plus tard';
|
||||||
|
}
|
||||||
|
|
||||||
if(isset($_SESSION['LSsession'])) {
|
if(isset($_SESSION['LSsession'])) {
|
||||||
// Session existante
|
// Session existante
|
||||||
|
@ -272,6 +276,7 @@ class LSsession {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Session inexistante
|
// Session inexistante
|
||||||
|
$recoveryPasswordInfos=array();
|
||||||
|
|
||||||
if (isset($_POST['LSsession_user'])) {
|
if (isset($_POST['LSsession_user'])) {
|
||||||
if (isset($_POST['LSsession_ldapserver'])) {
|
if (isset($_POST['LSsession_ldapserver'])) {
|
||||||
|
@ -297,20 +302,165 @@ class LSsession {
|
||||||
|
|
||||||
if ( $this -> loadLSobject($this -> ldapServer['authobject']) ) {
|
if ( $this -> loadLSobject($this -> ldapServer['authobject']) ) {
|
||||||
$authobject = new $this -> ldapServer['authobject']();
|
$authobject = new $this -> ldapServer['authobject']();
|
||||||
|
$find=true;
|
||||||
|
if (isset($_GET['recoveryHash'])) {
|
||||||
|
$filter=$this -> ldapServer['recoverPassword']['recoveryHashAttr']."=".$_GET['recoveryHash'];
|
||||||
|
$result = $authobject -> listObjects($filter,$this -> topDn);
|
||||||
|
$nbresult=count($result);
|
||||||
|
if ($nbresult==1) {
|
||||||
|
$_POST['LSsession_user'] = $result[0] -> getValue('rdn');
|
||||||
|
$find=false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($find) {
|
||||||
$result = $authobject -> searchObject($_POST['LSsession_user'],$this -> topDn);
|
$result = $authobject -> searchObject($_POST['LSsession_user'],$this -> topDn);
|
||||||
$nbresult=count($result);
|
$nbresult=count($result);
|
||||||
|
}
|
||||||
if ($nbresult==0) {
|
if ($nbresult==0) {
|
||||||
// identifiant incorrect
|
// identifiant incorrect
|
||||||
debug('identifiant incorrect');
|
debug('identifiant incorrect');
|
||||||
$GLOBALS['LSerror'] -> addErrorCode(1006);
|
$GLOBALS['LSerror'] -> addErrorCode(1006);
|
||||||
}
|
}
|
||||||
else if ($nbresult>1) {
|
else if ($nbresult>1) {
|
||||||
// duplication d'authentité
|
// duplication d'authentité
|
||||||
$GLOBALS['LSerror'] -> addErrorCode(1007);
|
$GLOBALS['LSerror'] -> addErrorCode(1007);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
if (isset($_GET['LSsession_recoverPassword'])) {
|
||||||
|
debug('Recover : Id trouvé');
|
||||||
|
if ($this -> ldapServer['recoverPassword']) {
|
||||||
|
debug('Récupération active');
|
||||||
|
$user=$result[0];
|
||||||
|
$emailAddress = $user -> getValue($this -> ldapServer['recoverPassword']['mailAttr']);
|
||||||
|
|
||||||
|
// Header des mails
|
||||||
|
$headers="Content-Type: text/plain; charset=UTF-8; format=flowed";
|
||||||
|
if ($this -> ldapServer['recoverPassword']['recoveryEmailSender']) {
|
||||||
|
$headers.="\nFrom: ".$this -> ldapServer['recoverPassword']['recoveryEmailSender'];
|
||||||
|
}
|
||||||
|
else if($this -> ldapServer['emailSender']) {
|
||||||
|
$headers.="\nFrom: ".$this -> ldapServer['emailSender'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (checkEmail($emailAddress)) {
|
||||||
|
debug('Email : '.$emailAddress);
|
||||||
|
$this -> dn = $user -> getDn();
|
||||||
|
// 1ère étape : envoie du recoveryHash
|
||||||
|
if (!isset($_GET['recoveryHash'])) {
|
||||||
|
// Generer un hash
|
||||||
|
$recovery_hash = md5($user -> getValue('rdn') . strval(time()) . strval(rand()));
|
||||||
|
|
||||||
|
$lostPasswdForm = $user -> getForm('lostPassword');
|
||||||
|
$lostPasswdForm -> setPostData(
|
||||||
|
array(
|
||||||
|
$this -> ldapServer['recoverPassword']['recoveryHashAttr'] => $recovery_hash
|
||||||
|
)
|
||||||
|
,true
|
||||||
|
);
|
||||||
|
|
||||||
|
if($lostPasswdForm -> validate()) {
|
||||||
|
if ($user -> updateData('lostPassword')) {
|
||||||
|
// recoveryHash de l'utilisateur mis à jour
|
||||||
|
if ($_SERVER['HTTPS']=='on') {
|
||||||
|
$recovery_url='https://';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$recovery_url='http://';
|
||||||
|
}
|
||||||
|
$recovery_url .= $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'&recoveryHash='.$recovery_hash;
|
||||||
|
|
||||||
|
if (
|
||||||
|
mail(
|
||||||
|
$emailAddress,
|
||||||
|
$this -> ldapServer['recoverPassword']['recoveryHashMail']['subject'],
|
||||||
|
getFData($this -> ldapServer['recoverPassword']['recoveryHashMail']['msg'],$recovery_url),
|
||||||
|
$headers
|
||||||
|
)
|
||||||
|
){
|
||||||
|
// Mail a bien été envoyé
|
||||||
|
$recoveryPasswordInfos['recoveryHashMail']=$emailAddress;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Problème durant l'envoie du mail
|
||||||
|
debug("Problème durant l'envoie du mail");
|
||||||
|
$GLOBALS['LSerror'] -> addErrorCode(1020);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Erreur durant la mise à jour de l'objet
|
||||||
|
debug("Erreur durant la mise à jour de l'objet");
|
||||||
|
$GLOBALS['LSerror'] -> addErrorCode(1020);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Erreur durant la validation du formulaire de modification de perte de password
|
||||||
|
debug("Erreur durant la validation du formulaire de modification de perte de password");
|
||||||
|
$GLOBALS['LSerror'] -> addErrorCode(1020);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 2nd étape : génération du mot de passe + envoie par mail
|
||||||
|
else {
|
||||||
|
$attr=$user -> attrs[$this -> ldapServer['recoverPassword']['passwordAttr']];
|
||||||
|
if ($attr instanceof LSattribute) {
|
||||||
|
$mdp = generatePassword($attr -> config['html_options']['chars'],$attr -> config['html_options']['lenght']);
|
||||||
|
debug('Nvx mpd : '.$mdp);
|
||||||
|
$lostPasswdForm = $user -> getForm('lostPassword');
|
||||||
|
$lostPasswdForm -> setPostData(
|
||||||
|
array(
|
||||||
|
$this -> ldapServer['recoverPassword']['recoveryHashAttr'] => array(''),
|
||||||
|
$this -> ldapServer['recoverPassword']['passwordAttr'] => array($mdp)
|
||||||
|
)
|
||||||
|
,true
|
||||||
|
);
|
||||||
|
if($lostPasswdForm -> validate()) {
|
||||||
|
if ($user -> updateData('lostPassword')) {
|
||||||
|
if (
|
||||||
|
mail(
|
||||||
|
$emailAddress,
|
||||||
|
$this -> ldapServer['recoverPassword']['newPasswordMail']['subject'],
|
||||||
|
getFData($this -> ldapServer['recoverPassword']['newPasswordMail']['msg'],$mdp),
|
||||||
|
$headers
|
||||||
|
)
|
||||||
|
){
|
||||||
|
// Mail a bien été envoyé
|
||||||
|
$recoveryPasswordInfos['newPasswordMail']=$emailAddress;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Problème durant l'envoie du mail
|
||||||
|
debug("Problème durant l'envoie du mail");
|
||||||
|
$GLOBALS['LSerror'] -> addErrorCode(1020);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Erreur durant la mise à jour de l'objet
|
||||||
|
debug("Erreur durant la mise à jour de l'objet");
|
||||||
|
$GLOBALS['LSerror'] -> addErrorCode(1020);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Erreur durant la validation du formulaire de modification de perte de password
|
||||||
|
debug("Erreur durant la validation du formulaire de modification de perte de password");
|
||||||
|
$GLOBALS['LSerror'] -> addErrorCode(1020);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// l'attribut password n'existe pas
|
||||||
|
debug("L'attribut password n'existe pas");
|
||||||
|
$GLOBALS['LSerror'] -> addErrorCode(1020);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$GLOBALS['LSerror'] -> addErrorCode(1019);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$GLOBALS['LSerror'] -> addErrorCode(1018);
|
||||||
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
if ( $this -> checkUserPwd($result[0],$_POST['LSsession_pwd']) ) {
|
if ( $this -> checkUserPwd($result[0],$_POST['LSsession_pwd']) ) {
|
||||||
// Authentification réussi
|
// Authentification réussi
|
||||||
$this -> LSuserObject = $result[0];
|
$this -> LSuserObject = $result[0];
|
||||||
$this -> dn = $result[0]->getValue('dn');
|
$this -> dn = $result[0]->getValue('dn');
|
||||||
$this -> rdn = $_POST['LSsession_user'];
|
$this -> rdn = $_POST['LSsession_user'];
|
||||||
|
@ -326,6 +476,7 @@ class LSsession {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
$GLOBALS['LSerror'] -> addErrorCode(1010);
|
$GLOBALS['LSerror'] -> addErrorCode(1010);
|
||||||
}
|
}
|
||||||
|
@ -338,15 +489,20 @@ class LSsession {
|
||||||
$GLOBALS['Smarty'] -> assign('ldapServerId',$this -> ldapServerId);
|
$GLOBALS['Smarty'] -> assign('ldapServerId',$this -> ldapServerId);
|
||||||
}
|
}
|
||||||
$GLOBALS['Smarty'] -> assign('topDn',$this -> topDn);
|
$GLOBALS['Smarty'] -> assign('topDn',$this -> topDn);
|
||||||
|
if (isset($_GET['LSsession_recoverPassword'])) {
|
||||||
|
$this -> displayRecoverPasswordForm($recoveryPasswordInfos);
|
||||||
|
}
|
||||||
|
else {
|
||||||
$this -> displayLoginForm();
|
$this -> displayLoginForm();
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Définition du serveur Ldap de la session
|
* Définition du serveur Ldap de la session
|
||||||
*
|
*
|
||||||
* Définition du serveur Ldap de la session à partir de son ID dans
|
* Définition du serveur Ldap de la session à partir de son ID dans
|
||||||
* le tableau $GLOBALS['LSconfig']['ldap_servers'].
|
* le tableau $GLOBALS['LSconfig']['ldap_servers'].
|
||||||
*
|
*
|
||||||
* @param[in] integer Index du serveur Ldap
|
* @param[in] integer Index du serveur Ldap
|
||||||
|
@ -440,12 +596,12 @@ class LSsession {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retourne les options d'une liste déroulante pour le choix du topDn
|
* Retourne les options d'une liste déroulante pour le choix du topDn
|
||||||
* de connexion au serveur Ldap
|
* de connexion au serveur Ldap
|
||||||
*
|
*
|
||||||
* Liste les subdn ($this ->ldapServer['subDn'])
|
* Liste les subdn ($this ->ldapServer['subDn'])
|
||||||
*
|
*
|
||||||
* @retval string Les options (<option>) pour la sélection du topDn.
|
* @retval string Les options (<option>) pour la sélection du topDn.
|
||||||
*/
|
*/
|
||||||
function getSubDnLdapServerOptions($selected=NULL) {
|
function getSubDnLdapServerOptions($selected=NULL) {
|
||||||
$list = $this -> getSubDnLdapServer();
|
$list = $this -> getSubDnLdapServer();
|
||||||
|
@ -483,9 +639,9 @@ class LSsession {
|
||||||
* Test un bind sur le serveur avec le dn de l'objet et le mot de passe fourni.
|
* Test un bind sur le serveur avec le dn de l'objet et le mot de passe fourni.
|
||||||
*
|
*
|
||||||
* @param[in] LSobject L'object "user" pour l'authentification
|
* @param[in] LSobject L'object "user" pour l'authentification
|
||||||
* @param[in] string Le mot de passe à tester
|
* @param[in] string Le mot de passe à tester
|
||||||
*
|
*
|
||||||
* @retval boolean True si l'authentification à réussi, false sinon.
|
* @retval boolean True si l'authentification à réussi, false sinon.
|
||||||
*/
|
*/
|
||||||
function checkUserPwd($object,$pwd) {
|
function checkUserPwd($object,$pwd) {
|
||||||
return $GLOBALS['LSldap'] -> checkBind($object -> getValue('dn'),$pwd);
|
return $GLOBALS['LSldap'] -> checkBind($object -> getValue('dn'),$pwd);
|
||||||
|
@ -494,7 +650,7 @@ class LSsession {
|
||||||
/**
|
/**
|
||||||
* Affiche le formulaire de login
|
* Affiche le formulaire de login
|
||||||
*
|
*
|
||||||
* Défini les informations pour le template Smarty du formulaire de login.
|
* Défini les informations pour le template Smarty du formulaire de login.
|
||||||
*
|
*
|
||||||
* @retval void
|
* @retval void
|
||||||
*/
|
*/
|
||||||
|
@ -523,12 +679,72 @@ class LSsession {
|
||||||
$GLOBALS['Smarty'] -> assign('loginform_label_user',_('Identifiant'));
|
$GLOBALS['Smarty'] -> assign('loginform_label_user',_('Identifiant'));
|
||||||
$GLOBALS['Smarty'] -> assign('loginform_label_pwd',_('Mot de passe'));
|
$GLOBALS['Smarty'] -> assign('loginform_label_pwd',_('Mot de passe'));
|
||||||
$GLOBALS['Smarty'] -> assign('loginform_label_submit',_('Connexion'));
|
$GLOBALS['Smarty'] -> assign('loginform_label_submit',_('Connexion'));
|
||||||
|
$GLOBALS['Smarty'] -> assign('loginform_label_lostpassword',_('Mot de passe oublié ?'));
|
||||||
|
|
||||||
|
$this -> setTemplate('login.tpl');
|
||||||
$this -> addJSscript('LSsession_login.js');
|
$this -> addJSscript('LSsession_login.js');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Défini le template Smarty à utiliser
|
* Affiche le formulaire de récupération de mot de passe
|
||||||
|
*
|
||||||
|
* Défini les informations pour le template Smarty du formulaire de
|
||||||
|
* récupération de mot de passe
|
||||||
|
*
|
||||||
|
* @param[in] $infos array() Information sur le status du processus de
|
||||||
|
* recouvrement de mot de passe
|
||||||
|
*
|
||||||
|
* @retval void
|
||||||
|
*/
|
||||||
|
function displayRecoverPasswordForm($recoveryPasswordInfos) {
|
||||||
|
$GLOBALS['Smarty'] -> assign('pagetitle',_('Récupération de votre mot de passe'));
|
||||||
|
$GLOBALS['Smarty'] -> assign('recoverpasswordform_action','index.php?LSsession_recoverPassword');
|
||||||
|
|
||||||
|
if (count($GLOBALS['LSconfig']['ldap_servers'])==1) {
|
||||||
|
$GLOBALS['Smarty'] -> assign('recoverpasswordform_ldapserver_style','style="display: none"');
|
||||||
|
}
|
||||||
|
|
||||||
|
$GLOBALS['Smarty'] -> assign('recoverpasswordform_label_ldapserver',_('Serveur LDAP'));
|
||||||
|
$ldapservers_name=array();
|
||||||
|
$ldapservers_index=array();
|
||||||
|
foreach($GLOBALS['LSconfig']['ldap_servers'] as $id => $infos) {
|
||||||
|
$ldapservers_index[]=$id;
|
||||||
|
$ldapservers_name[]=$infos['name'];
|
||||||
|
}
|
||||||
|
$GLOBALS['Smarty'] -> assign('recoverpasswordform_ldapservers_name',$ldapservers_name);
|
||||||
|
$GLOBALS['Smarty'] -> assign('recoverpasswordform_ldapservers_index',$ldapservers_index);
|
||||||
|
|
||||||
|
$GLOBALS['Smarty'] -> assign('recoverpasswordform_label_user',_('Identifiant'));
|
||||||
|
$GLOBALS['Smarty'] -> assign('recoverpasswordform_label_submit',_('Valider'));
|
||||||
|
$GLOBALS['Smarty'] -> assign('recoverpasswordform_label_back',_('Retour'));
|
||||||
|
|
||||||
|
if (isset($recoveryPasswordInfos['recoveryHashMail'])) {
|
||||||
|
$GLOBALS['Smarty'] -> assign(
|
||||||
|
'recoverpassword_msg',
|
||||||
|
getFData(
|
||||||
|
_("Un mail vient de vous être envoyé à l'adresse %{mail}. " .
|
||||||
|
"Merci de suivre les indications contenus dans ce mail."),
|
||||||
|
$recoveryPasswordInfos['recoveryHashMail']
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($recoveryPasswordInfos['newPasswordMail'])) {
|
||||||
|
$GLOBALS['Smarty'] -> assign(
|
||||||
|
'recoverpassword_msg',
|
||||||
|
getFData(
|
||||||
|
_("Votre nouveau mot de passe vient de vous être envoyé à l'adresse %{mail}. "),
|
||||||
|
$recoveryPasswordInfos['newPasswordMail']
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this -> setTemplate('recoverpassword.tpl');
|
||||||
|
$this -> addJSscript('LSsession_recoverpassword.js');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Défini le template Smarty à utiliser
|
||||||
*
|
*
|
||||||
* Remarque : les fichiers de templates doivent se trouver dans le dossier
|
* Remarque : les fichiers de templates doivent se trouver dans le dossier
|
||||||
* templates/.
|
* templates/.
|
||||||
|
@ -544,9 +760,9 @@ class LSsession {
|
||||||
/**
|
/**
|
||||||
* Ajoute un script JS au chargement de la page
|
* Ajoute un script JS au chargement de la page
|
||||||
*
|
*
|
||||||
* Remarque : les scripts doivents être dans le dossier LS_JS_DIR.
|
* Remarque : les scripts doivents être dans le dossier LS_JS_DIR.
|
||||||
*
|
*
|
||||||
* @param[in] $script Le nom du fichier de script à charger.
|
* @param[in] $script Le nom du fichier de script à charger.
|
||||||
*
|
*
|
||||||
* @retval void
|
* @retval void
|
||||||
*/
|
*/
|
||||||
|
@ -559,9 +775,9 @@ class LSsession {
|
||||||
/**
|
/**
|
||||||
* Ajoute une feuille de style au chargement de la page
|
* Ajoute une feuille de style au chargement de la page
|
||||||
*
|
*
|
||||||
* Remarque : les scripts doivents être dans le dossiers templates/css/.
|
* Remarque : les scripts doivents être dans le dossiers templates/css/.
|
||||||
*
|
*
|
||||||
* @param[in] $script Le nom du fichier css à charger.
|
* @param[in] $script Le nom du fichier css à charger.
|
||||||
*
|
*
|
||||||
* @retval void
|
* @retval void
|
||||||
*/
|
*/
|
||||||
|
@ -572,7 +788,7 @@ class LSsession {
|
||||||
/**
|
/**
|
||||||
* Affiche le template Smarty
|
* Affiche le template Smarty
|
||||||
*
|
*
|
||||||
* Charge les dépendances et affiche le template Smarty
|
* Charge les dépendances et affiche le template Smarty
|
||||||
*
|
*
|
||||||
* @retval void
|
* @retval void
|
||||||
*/
|
*/
|
||||||
|
@ -631,7 +847,7 @@ class LSsession {
|
||||||
/**
|
/**
|
||||||
* Charge les droits LS de l'utilisateur
|
* Charge les droits LS de l'utilisateur
|
||||||
*
|
*
|
||||||
* @retval boolean True si le chargement à réussi, false sinon.
|
* @retval boolean True si le chargement à réussi, false sinon.
|
||||||
**/
|
**/
|
||||||
function loadLSrights() {
|
function loadLSrights() {
|
||||||
if (is_array($this -> ldapServer['LSadmins'])) {
|
if (is_array($this -> ldapServer['LSadmins'])) {
|
||||||
|
@ -650,11 +866,11 @@ class LSsession {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
debug('Impossible de chargé le dn : '.$dn);
|
debug('Impossible de chargé le dn : '.$dn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
debug('Impossible de créer l\'objet de type : '.$conf['LSobject']);
|
debug('Impossible de créer l\'objet de type : '.$conf['LSobject']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -682,7 +898,7 @@ class LSsession {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Charge les droits d'accès de l'utilisateur pour construire le menu de l'interface
|
* Charge les droits d'accès de l'utilisateur pour construire le menu de l'interface
|
||||||
*
|
*
|
||||||
* @retval void
|
* @retval void
|
||||||
*/
|
*/
|
||||||
|
@ -710,7 +926,7 @@ class LSsession {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dit si l'utilisateur est admin de le DN spécifié
|
* Dit si l'utilisateur est admin de le DN spécifié
|
||||||
*
|
*
|
||||||
* @param[in] string DN de l'objet
|
* @param[in] string DN de l'objet
|
||||||
*
|
*
|
||||||
|
@ -729,11 +945,11 @@ class LSsession {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retourne qui est l'utilisateur par rapport à l'object
|
* Retourne qui est l'utilisateur par rapport à l'object
|
||||||
*
|
*
|
||||||
* @param[in] string Le DN de l'objet
|
* @param[in] string Le DN de l'objet
|
||||||
*
|
*
|
||||||
* @retval string 'admin'/'self'/'user' pour Admin , l'utilisateur lui même ou un simple utilisateur
|
* @retval string 'admin'/'self'/'user' pour Admin , l'utilisateur lui même ou un simple utilisateur
|
||||||
*/
|
*/
|
||||||
function whoami($dn) {
|
function whoami($dn) {
|
||||||
if ($this -> isAdmin($dn)) {
|
if ($this -> isAdmin($dn)) {
|
||||||
|
@ -748,14 +964,14 @@ class LSsession {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retourne le droit de l'utilisateur à accèder à un objet
|
* Retourne le droit de l'utilisateur à accèder à un objet
|
||||||
*
|
*
|
||||||
* @param[in] string $LSobject Le type de l'objet
|
* @param[in] string $LSobject Le type de l'objet
|
||||||
* @param[in] string $dn Le DN de l'objet (le container_dn du type de l'objet par défaut)
|
* @param[in] string $dn Le DN de l'objet (le container_dn du type de l'objet par défaut)
|
||||||
* @param[in] string $right Le type de droit d'accès à tester ('r'/'w')
|
* @param[in] string $right Le type de droit d'accès à tester ('r'/'w')
|
||||||
* @param[in] string $attr Le nom de l'attribut auquel on test l'accès
|
* @param[in] string $attr Le nom de l'attribut auquel on test l'accès
|
||||||
*
|
*
|
||||||
* @retval boolean True si l'utilisateur a accès, false sinon
|
* @retval boolean True si l'utilisateur a accès, false sinon
|
||||||
*/
|
*/
|
||||||
function canAccess($LSobject,$dn=NULL,$right=NULL,$attr=NULL) {
|
function canAccess($LSobject,$dn=NULL,$right=NULL,$attr=NULL) {
|
||||||
if (!$this -> loadLSobject($LSobject))
|
if (!$this -> loadLSobject($LSobject))
|
||||||
|
@ -812,49 +1028,49 @@ class LSsession {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retourne le droit de l'utilisateur à editer à un objet
|
* Retourne le droit de l'utilisateur à editer à un objet
|
||||||
*
|
*
|
||||||
* @param[in] string $LSobject Le type de l'objet
|
* @param[in] string $LSobject Le type de l'objet
|
||||||
* @param[in] string $dn Le DN de l'objet (le container_dn du type de l'objet par défaut)
|
* @param[in] string $dn Le DN de l'objet (le container_dn du type de l'objet par défaut)
|
||||||
* @param[in] string $attr Le nom de l'attribut auquel on test l'accès
|
* @param[in] string $attr Le nom de l'attribut auquel on test l'accès
|
||||||
*
|
*
|
||||||
* @retval boolean True si l'utilisateur a accès, false sinon
|
* @retval boolean True si l'utilisateur a accès, false sinon
|
||||||
*/
|
*/
|
||||||
function canEdit($LSobject,$dn=NULL,$attr=NULL) {
|
function canEdit($LSobject,$dn=NULL,$attr=NULL) {
|
||||||
return $this -> canAccess($LSobject,$dn,'w',$attr);
|
return $this -> canAccess($LSobject,$dn,'w',$attr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retourne le droit de l'utilisateur à supprimer un objet
|
* Retourne le droit de l'utilisateur à supprimer un objet
|
||||||
*
|
*
|
||||||
* @param[in] string $LSobject Le type de l'objet
|
* @param[in] string $LSobject Le type de l'objet
|
||||||
* @param[in] string $dn Le DN de l'objet (le container_dn du type de l'objet par défaut)
|
* @param[in] string $dn Le DN de l'objet (le container_dn du type de l'objet par défaut)
|
||||||
*
|
*
|
||||||
* @retval boolean True si l'utilisateur a accès, false sinon
|
* @retval boolean True si l'utilisateur a accès, false sinon
|
||||||
*/
|
*/
|
||||||
function canRemove($LSobject,$dn) {
|
function canRemove($LSobject,$dn) {
|
||||||
return $this -> canAccess($LSobject,$dn,'w','rdn');
|
return $this -> canAccess($LSobject,$dn,'w','rdn');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retourne le droit de l'utilisateur à créer un objet
|
* Retourne le droit de l'utilisateur à créer un objet
|
||||||
*
|
*
|
||||||
* @param[in] string $LSobject Le type de l'objet
|
* @param[in] string $LSobject Le type de l'objet
|
||||||
*
|
*
|
||||||
* @retval boolean True si l'utilisateur a accès, false sinon
|
* @retval boolean True si l'utilisateur a accès, false sinon
|
||||||
*/
|
*/
|
||||||
function canCreate($LSobject) {
|
function canCreate($LSobject) {
|
||||||
return $this -> canAccess($LSobject,NULL,'w','rdn');
|
return $this -> canAccess($LSobject,NULL,'w','rdn');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retourne le droit de l'utilisateur à gérer la relation d'objet
|
* Retourne le droit de l'utilisateur à gérer la relation d'objet
|
||||||
*
|
*
|
||||||
* @param[in] string $dn Le DN de l'objet (le container_dn du type de l'objet par défaut)
|
* @param[in] string $dn Le DN de l'objet (le container_dn du type de l'objet par défaut)
|
||||||
* @param[in] string $relationName Le nom de la relation avec l'objet
|
* @param[in] string $relationName Le nom de la relation avec l'objet
|
||||||
* @param[in] string $right Le type de droit a vérifier ('r' ou 'w')
|
* @param[in] string $right Le type de droit a vérifier ('r' ou 'w')
|
||||||
*
|
*
|
||||||
* @retval boolean True si l'utilisateur a accès, false sinon
|
* @retval boolean True si l'utilisateur a accès, false sinon
|
||||||
*/
|
*/
|
||||||
function relationCanAccess($dn,$relationName,$right=NULL) {
|
function relationCanAccess($dn,$relationName,$right=NULL) {
|
||||||
$LSobject=$this -> LSuserObject -> getType();
|
$LSobject=$this -> LSuserObject -> getType();
|
||||||
|
@ -876,12 +1092,12 @@ class LSsession {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retourne le droit de l'utilisateur à modifier la relation d'objet
|
* Retourne le droit de l'utilisateur à modifier la relation d'objet
|
||||||
*
|
*
|
||||||
* @param[in] string $dn Le DN de l'objet (le container_dn du type de l'objet par défaut)
|
* @param[in] string $dn Le DN de l'objet (le container_dn du type de l'objet par défaut)
|
||||||
* @param[in] string $relationName Le nom de la relation avec l'objet
|
* @param[in] string $relationName Le nom de la relation avec l'objet
|
||||||
*
|
*
|
||||||
* @retval boolean True si l'utilisateur a accès, false sinon
|
* @retval boolean True si l'utilisateur a accès, false sinon
|
||||||
*/
|
*/
|
||||||
function relationCanEdit($dn,$relationName) {
|
function relationCanEdit($dn,$relationName) {
|
||||||
return $this -> relationCanAccess($dn,$relationName,'w');
|
return $this -> relationCanAccess($dn,$relationName,'w');
|
||||||
|
@ -922,8 +1138,8 @@ class LSsession {
|
||||||
/**
|
/**
|
||||||
* Retourne le chemin du fichier temporaire
|
* Retourne le chemin du fichier temporaire
|
||||||
*
|
*
|
||||||
* Retourne le chemin du fichier temporaire qu'il créera à partir de la valeur
|
* Retourne le chemin du fichier temporaire qu'il créera à partir de la valeur
|
||||||
* s'il n'existe pas déjà.
|
* s'il n'existe pas déjà .
|
||||||
*
|
*
|
||||||
* @author Benjamin Renard <brenard@easter-eggs.com>
|
* @author Benjamin Renard <brenard@easter-eggs.com>
|
||||||
*
|
*
|
||||||
|
|
|
@ -112,7 +112,7 @@ function return_data($data) {
|
||||||
|
|
||||||
function debug($data,$get=true) {
|
function debug($data,$get=true) {
|
||||||
if ($get) {
|
if ($get) {
|
||||||
if (is_array($data)) {
|
if (is_array($data)||is_object($data)) {
|
||||||
$GLOBALS['LSdebug']['fields'][]=$data;
|
$GLOBALS['LSdebug']['fields'][]=$data;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -126,7 +126,7 @@ function debug_print($return=false) {
|
||||||
if (( $GLOBALS['LSdebug']['fields'] ) && ( $GLOBALS['LSdebug']['active'] )) {
|
if (( $GLOBALS['LSdebug']['fields'] ) && ( $GLOBALS['LSdebug']['active'] )) {
|
||||||
$txt='<ul>';
|
$txt='<ul>';
|
||||||
foreach($GLOBALS['LSdebug']['fields'] as $debug) {
|
foreach($GLOBALS['LSdebug']['fields'] as $debug) {
|
||||||
if (is_array($debug)) {
|
if (is_array($debug)||is_object($debug)) {
|
||||||
$txt.='<li><pre>'.print_r($debug,true).'</pre></li>';
|
$txt.='<li><pre>'.print_r($debug,true).'</pre></li>';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -224,4 +224,39 @@ function debug_print($return=false) {
|
||||||
return $basedn;
|
return $basedn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function checkEmail($value,$checkDns=true) {
|
||||||
|
$regex = '/^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/';
|
||||||
|
|
||||||
|
if (!preg_match($regex, $value)) {
|
||||||
|
debug('checkEmail : regex fail');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($checkDns && function_exists('checkdnsrr')) {
|
||||||
|
$tokens = explode('@', $value);
|
||||||
|
if (!(checkdnsrr($tokens[1], 'MX') || checkdnsrr($tokens[1], 'A'))) {
|
||||||
|
debug('checkEmail : DNS fail');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function generatePassword($chars=NULL,$lenght=NULL) {
|
||||||
|
if (!$chars) {
|
||||||
|
$chars='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-';
|
||||||
|
}
|
||||||
|
$nbChars=strlen($chars);
|
||||||
|
|
||||||
|
if (!$lenght) {
|
||||||
|
$lenght=8;
|
||||||
|
}
|
||||||
|
$retVal='';
|
||||||
|
for($i=0;$i<$lenght;$i++){
|
||||||
|
$retVal.=$chars[rand(0,$nbChars-1)];
|
||||||
|
}
|
||||||
|
return $retVal;
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -43,6 +43,7 @@ var LSsession_login = new Class({
|
||||||
}
|
}
|
||||||
if (data.LSerror) {
|
if (data.LSerror) {
|
||||||
varLSdefault.displayError(data.LSerror);
|
varLSdefault.displayError(data.LSerror);
|
||||||
|
this.loginformLevelHide();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (data.list_topDn) {
|
if (data.list_topDn) {
|
||||||
|
@ -53,19 +54,21 @@ var LSsession_login = new Class({
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$$('.loginform-level').each(function(el) {
|
this.loginformLevelHide();
|
||||||
el.setStyle('display','none');
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
this.loginformLevelHide();
|
||||||
|
}
|
||||||
|
this.enableInput();
|
||||||
|
},
|
||||||
|
|
||||||
|
loginformLevelHide: function(){
|
||||||
$$('.loginform-level').each(function(el) {
|
$$('.loginform-level').each(function(el) {
|
||||||
el.setStyle('display','none');
|
el.setStyle('display','none');
|
||||||
});
|
});
|
||||||
$('LSsession_topDn').empty();
|
$('LSsession_topDn').empty();
|
||||||
}
|
}
|
||||||
this.enableInput();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
window.addEvent(window.ie ? 'load' : 'domready', function() {
|
window.addEvent(window.ie ? 'load' : 'domready', function() {
|
||||||
varLSsession_login = new LSsession_login();
|
varLSsession_login = new LSsession_login();
|
||||||
|
|
|
@ -33,9 +33,6 @@ if($LSsession -> startLSsession()) {
|
||||||
// Template
|
// Template
|
||||||
$GLOBALS['LSsession'] -> setTemplate('accueil.tpl');
|
$GLOBALS['LSsession'] -> setTemplate('accueil.tpl');
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
$GLOBALS['LSsession'] -> setTemplate('login.tpl');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Affichage des retours d'erreurs
|
// Affichage des retours d'erreurs
|
||||||
$GLOBALS['LSsession'] -> displayTemplate();
|
$GLOBALS['LSsession'] -> displayTemplate();
|
||||||
|
|
|
@ -1,175 +1,48 @@
|
||||||
# Easter-eggs OID: 1.3.6.1.4.1.10650
|
# LdapSaisie - LDAP Schema - Example
|
||||||
# 1.3.6.1.4.1.10650.2 LDAP OID
|
# Web Site : http://ldapsaisie.labs.libre-entreprise.org
|
||||||
# 1.3.6.1.4.1.10650.3 Customers OID
|
objectIdentifier EeRoot 1.3.6.1.4.1.10650
|
||||||
#
|
objectIdentifier LeRoot EeRoot:4
|
||||||
# 1.3.6.1.4.1.10650.2.1 Ldap Attributes
|
objectIdentifier LsRoot LeRoot:10000
|
||||||
# 1.3.6.1.4.1.10650.2.1.1 Admin sys Ldap Attributes
|
objectIdentifier LsLDAP LsRoot:2
|
||||||
# 1.3.6.1.4.1.10650.2.1.2 Dev Ldap Attributes
|
objectIdentifier LsLDAPAttribute LsLDAP:1
|
||||||
# 1.3.6.1.4.1.10650.2.1.3 Global Attributes
|
objectIdentifier LsLDAPObjectClass LsLDAP:2
|
||||||
# 1.3.6.1.4.1.10650.2.2 Ldap Objectclass
|
|
||||||
# 1.3.6.1.4.1.10650.2.2.1 Admin sys Ldap Objectclass
|
|
||||||
# 1.3.6.1.4.1.10650.2.2.2 Dev Ldap Objectclass
|
|
||||||
# 1.3.6.1.4.1.10650.2.2.3 Global OC
|
|
||||||
|
|
||||||
# Ost
|
# <Ls attributes>
|
||||||
# 1.3.6.1.4.1.10650.3.1127.2.1 Ldap attributes
|
attributetype (LsLDAPAttribute:1
|
||||||
# 1.3.6.1.4.1.10650.3.1127.2.2 Ldap OC
|
NAME 'lsAllowedServices'
|
||||||
|
|
||||||
|
|
||||||
# <Ee attributes>
|
|
||||||
attributetype (1.3.6.1.4.1.10650.2.1.1.1
|
|
||||||
NAME 'eeallowedservices'
|
|
||||||
DESC 'List of allowed services'
|
DESC 'List of allowed services'
|
||||||
EQUALITY caseIgnoreMatch
|
EQUALITY caseIgnoreMatch
|
||||||
SUBSTR caseIgnoreSubstringsMatch
|
SUBSTR caseIgnoreSubstringsMatch
|
||||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )
|
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )
|
||||||
|
|
||||||
# </Ee attributes>
|
attributetype ( LsLDAPAttribute:2 NAME 'lsRecoveryHash'
|
||||||
|
DESC 'Password Recover Hash'
|
||||||
|
EQUALITY caseIgnoreMatch
|
||||||
|
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||||
|
# </Ls attributes>
|
||||||
|
|
||||||
# <From qmail schema>
|
# <Ls Objectclass>
|
||||||
attributetype ( 1.3.6.1.4.1.7914.1.2.1.4 NAME 'mailAlternateAddress'
|
objectclass (LsLDAPObjectClass:1
|
||||||
SUBSTR caseIgnoreSubstringsMatch
|
|
||||||
DESC 'Secondary (alias) mailaddresses for the same user'
|
|
||||||
EQUALITY caseIgnoreIA5Match
|
|
||||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
|
|
||||||
|
|
||||||
attributetype ( 1.3.6.1.4.1.7914.1.2.1.7 NAME 'mailForwardingAddress'
|
|
||||||
DESC 'Address(es) to forward all incoming messages to.'
|
|
||||||
EQUALITY caseIgnoreIA5Match
|
|
||||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
|
|
||||||
|
|
||||||
# </From qmail schema>
|
|
||||||
|
|
||||||
# <From courier.schema>
|
|
||||||
attributetype ( 1.3.6.1.4.1.10018.1.1.1 NAME 'mailbox'
|
|
||||||
DESC 'The absolute path to the mailbox for a mail account in a non-default location'
|
|
||||||
EQUALITY caseExactIA5Match
|
|
||||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
|
|
||||||
|
|
||||||
|
|
||||||
attributetype ( 1.3.6.1.4.1.10018.1.1.4 NAME 'maildrop'
|
|
||||||
DESC 'RFC822 Mailbox - mail alias'
|
|
||||||
EQUALITY caseIgnoreIA5Match
|
|
||||||
SUBSTR caseIgnoreIA5SubstringsMatch
|
|
||||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
|
|
||||||
# </From courier.schema>
|
|
||||||
|
|
||||||
# <From postfix>
|
|
||||||
attributetype ( 1.3.6.1.4.1.7914.1.2.1.5 NAME 'mailQuota'
|
|
||||||
DESC 'The amount of space the user can use until all further messages get bounced.'
|
|
||||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.44
|
|
||||||
SINGLE-VALUE )
|
|
||||||
# </From postfix>
|
|
||||||
|
|
||||||
# <From gnarwl>
|
|
||||||
# Original
|
|
||||||
#attributetype ( 1.3.6.1.4.1.11048.1.1.1.1
|
|
||||||
# NAME 'vacationActive'
|
|
||||||
# SINGLE-VALUE
|
|
||||||
# EQUALITY booleanMatch
|
|
||||||
# DESC 'A flag, for marking the user as being away'
|
|
||||||
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )
|
|
||||||
|
|
||||||
# Ee
|
|
||||||
attributetype ( 1.3.6.1.4.1.11048.1.1.1.1
|
|
||||||
NAME 'vacationActive'
|
|
||||||
SINGLE-VALUE
|
|
||||||
DESC 'Equal to uid@autoreponse.foo.bar, for marking the user as being away'
|
|
||||||
EQUALITY caseIgnoreIA5Match
|
|
||||||
SUBSTR caseIgnoreIA5SubstringsMatch
|
|
||||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
|
|
||||||
|
|
||||||
attributetype ( 1.3.6.1.4.1.11048.1.1.1.3
|
|
||||||
NAME 'vacationInfo'
|
|
||||||
SINGLE-VALUE
|
|
||||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.40
|
|
||||||
DESC 'Absentee note to leave behind, while on vacation'
|
|
||||||
EQUALITY octetStringMatch )
|
|
||||||
|
|
||||||
attributetype ( 1.3.6.1.4.1.11048.1.1.1.4
|
|
||||||
NAME 'vacationStart'
|
|
||||||
SINGLE-VALUE
|
|
||||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.40
|
|
||||||
DESC 'Beginning of vacation'
|
|
||||||
EQUALITY octetStringMatch )
|
|
||||||
|
|
||||||
# Original
|
|
||||||
#attributetype ( 1.3.6.1.4.1.11048.1.1.1.5
|
|
||||||
# NAME 'vacationEnd'
|
|
||||||
# SINGLE-VALUE
|
|
||||||
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.40
|
|
||||||
# DESC 'End of vacation'
|
|
||||||
# EQUALITY octetStringMatch )
|
|
||||||
|
|
||||||
# Ee
|
|
||||||
attributetype ( 1.3.6.1.4.1.11048.1.1.1.5
|
|
||||||
NAME 'vacationEnd'
|
|
||||||
SINGLE-VALUE
|
|
||||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
|
|
||||||
DESC 'End of vacation'
|
|
||||||
ORDERING generalizedTimeOrderingMatch
|
|
||||||
EQUALITY generalizedTimeMatch )
|
|
||||||
|
|
||||||
attributetype (1.3.6.1.4.1.11048.1.1.1.10
|
|
||||||
NAME 'vacationForward'
|
|
||||||
EQUALITY caseIgnoreIA5Match
|
|
||||||
SUBSTR caseIgnoreIA5SubstringsMatch
|
|
||||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256}
|
|
||||||
DESC 'Where to forward mails to, while on vacation' )
|
|
||||||
|
|
||||||
# </From gnarwl>
|
|
||||||
|
|
||||||
## Objectclasses
|
|
||||||
# LS people
|
|
||||||
objectclass (1.3.6.1.4.1.10650.3.1127.2.2.1
|
|
||||||
NAME 'lspeople'
|
NAME 'lspeople'
|
||||||
DESC 'LS people Objectclass'
|
DESC 'LS people Objectclass'
|
||||||
STRUCTURAL
|
STRUCTURAL
|
||||||
MUST ( uid $ cn )
|
MUST ( uid $ cn )
|
||||||
MAY ( jpegPhoto $ sn $ givenName $ postalAddress $ postalCode $ l $ st $ c $ telephoneNumber $ mobile $ fax $ mail $ mailalternateaddress $ personalTitle $ description $ userPassword $ eeallowedservices $ mailforwardingaddress $ maildrop $ mailquota $ mailbox $ vacationActive $ vacationInfo $ vacationEnd $ vacationForward ))
|
MAY ( jpegPhoto $ sn $ givenName $ postalAddress $ postalCode $ l $ st $ c $
|
||||||
|
telephoneNumber $ mobile $ fax $ mail $ personalTitle $ description $
|
||||||
|
userPassword $ lsallowedservices $ lsRecoveryHash ))
|
||||||
|
|
||||||
# LS Alias
|
objectclass (LsLDAPObjectClass:3
|
||||||
objectclass (1.3.6.1.4.1.10650.3.1127.2.2.2
|
|
||||||
NAME 'lsalias'
|
|
||||||
DESC 'LS alias Objectclass'
|
|
||||||
STRUCTURAL
|
|
||||||
MUST ( mail $ maildrop )
|
|
||||||
MAY ( mailalternateaddress $ description ))
|
|
||||||
|
|
||||||
# LS group
|
|
||||||
objectclass (1.3.6.1.4.1.10650.3.1127.2.2.3
|
|
||||||
NAME 'lsgroup'
|
NAME 'lsgroup'
|
||||||
DESC 'LS group Objectclass'
|
DESC 'LS group Objectclass'
|
||||||
STRUCTURAL
|
STRUCTURAL
|
||||||
MUST ( cn )
|
MUST ( cn )
|
||||||
MAY ( uniquemember $ description ))
|
MAY ( uniquemember $ description ))
|
||||||
|
|
||||||
# LS system account
|
objectclass (LsLDAPObjectClass:4
|
||||||
objectclass (1.3.6.1.4.1.10650.3.1127.2.2.4
|
|
||||||
NAME 'lssysaccount'
|
NAME 'lssysaccount'
|
||||||
DESC 'LS system account Objectclass'
|
DESC 'LS system account Objectclass'
|
||||||
STRUCTURAL
|
STRUCTURAL
|
||||||
MUST ( uid )
|
MUST ( uid )
|
||||||
MAY (userpassword $ description))
|
MAY (userPassword $ description))
|
||||||
|
# </Ls Objectclass>
|
||||||
# Ost mailbox
|
|
||||||
objectclass (1.3.6.1.4.1.10650.3.1127.2.2.5
|
|
||||||
NAME 'lsmailbox'
|
|
||||||
DESC 'LS custom mailbox Objectclass'
|
|
||||||
STRUCTURAL
|
|
||||||
MUST ( uid )
|
|
||||||
MAY ( userPassword $ description $ eeallowedservices $ maildrop $ mailbox $ mail $ mailalternateaddress $ mailforwardingaddress $ mailquota ))
|
|
||||||
|
|
||||||
# Ost computer
|
|
||||||
objectclass (1.3.6.1.4.1.10650.3.1127.2.2.6
|
|
||||||
NAME 'lscomputer'
|
|
||||||
DESC 'LS computer Objectclass'
|
|
||||||
STRUCTURAL
|
|
||||||
MUST ( uid ))
|
|
||||||
|
|
||||||
# Ost samba domains
|
|
||||||
objectclass (1.3.6.1.4.1.10650.3.1127.2.2.8
|
|
||||||
NAME 'lssambadomain'
|
|
||||||
DESC 'LS samba domain Objectclass'
|
|
||||||
STRUCTURAL)
|
|
||||||
|
|
||||||
|
|
|
@ -3,110 +3,39 @@ objectClass: top
|
||||||
objectClass: organization
|
objectClass: organization
|
||||||
o: ls
|
o: ls
|
||||||
structuralObjectClass: organization
|
structuralObjectClass: organization
|
||||||
entryUUID: 2229e388-825b-1029-838c-b10e837060e0
|
|
||||||
creatorsName: cn=anonymous
|
|
||||||
modifiersName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111624Z
|
|
||||||
modifyTimestamp: 20050706111624Z
|
|
||||||
entryCSN: 20050706111624.000000Z#000001#000#000000
|
|
||||||
|
|
||||||
dn: ou=sysaccounts,o=ls
|
dn: ou=sysaccounts,o=ls
|
||||||
objectClass: top
|
objectClass: top
|
||||||
objectClass: organizationalUnit
|
objectClass: organizationalUnit
|
||||||
ou: sysaccounts
|
ou: sysaccounts
|
||||||
structuralObjectClass: organizationalUnit
|
structuralObjectClass: organizationalUnit
|
||||||
entryUUID: 2238a738-825b-1029-838d-b10e837060e0
|
|
||||||
creatorsName: cn=anonymous
|
|
||||||
modifiersName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111624Z
|
|
||||||
modifyTimestamp: 20050706111624Z
|
|
||||||
entryCSN: 20050706111624.000000Z#000002#000#000000
|
|
||||||
|
|
||||||
dn: ou=people,o=ls
|
dn: uid=mail,ou=sysaccounts,o=ls
|
||||||
objectClass: top
|
objectClass: top
|
||||||
objectClass: organizationalUnit
|
objectClass: lssysaccount
|
||||||
ou: people
|
uid: mail
|
||||||
structuralObjectClass: organizationalUnit
|
structuralObjectClass: lssysaccount
|
||||||
entryUUID: 223b67e8-825b-1029-838e-b10e837060e0
|
userPassword: toto
|
||||||
creatorsName: cn=anonymous
|
|
||||||
modifiersName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111624Z
|
|
||||||
modifyTimestamp: 20050706111624Z
|
|
||||||
entryCSN: 20050706111624.000000Z#000003#000#000000
|
|
||||||
|
|
||||||
dn: ou=mailboxes,o=ls
|
dn: uid=samba,ou=sysaccounts,o=ls
|
||||||
objectClass: top
|
objectClass: top
|
||||||
objectClass: organizationalUnit
|
objectClass: lssysaccount
|
||||||
ou: mailboxes
|
uid: samba
|
||||||
structuralObjectClass: organizationalUnit
|
structuralObjectClass: lssysaccount
|
||||||
entryUUID: 2240f622-825b-1029-8390-b10e837060e0
|
userPassword: toto
|
||||||
creatorsName: cn=anonymous
|
|
||||||
modifiersName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111624Z
|
|
||||||
modifyTimestamp: 20050706111624Z
|
|
||||||
entryCSN: 20050706111624.000000Z#000005#000#000000
|
|
||||||
|
|
||||||
dn: ou=aliases,o=ls
|
dn: uid=ldapsaisie,ou=sysaccounts,o=ls
|
||||||
objectClass: top
|
objectClass: top
|
||||||
objectClass: organizationalUnit
|
objectClass: lssysaccount
|
||||||
ou: aliases
|
uid: ldapsaisie
|
||||||
structuralObjectClass: organizationalUnit
|
structuralObjectClass: lssysaccount
|
||||||
entryUUID: 2243b88a-825b-1029-8391-b10e837060e0
|
userPassword: toto
|
||||||
creatorsName: cn=anonymous
|
|
||||||
modifiersName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111624Z
|
|
||||||
modifyTimestamp: 20050706111624Z
|
|
||||||
entryCSN: 20050706111624.000000Z#000006#000#000000
|
|
||||||
|
|
||||||
dn: ou=computers,o=ls
|
|
||||||
objectClass: top
|
|
||||||
objectClass: organizationalUnit
|
|
||||||
ou: computers
|
|
||||||
structuralObjectClass: organizationalUnit
|
|
||||||
entryUUID: 22468588-825b-1029-8392-b10e837060e0
|
|
||||||
creatorsName: cn=anonymous
|
|
||||||
modifiersName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111624Z
|
|
||||||
modifyTimestamp: 20050706111624Z
|
|
||||||
entryCSN: 20050706111624.000000Z#000007#000#000000
|
|
||||||
|
|
||||||
dn: ou=sambadomains,o=ls
|
|
||||||
objectClass: top
|
|
||||||
objectClass: organizationalUnit
|
|
||||||
ou: sambadomains
|
|
||||||
structuralObjectClass: organizationalUnit
|
|
||||||
entryUUID: 224cf30a-825b-1029-8394-b10e837060e0
|
|
||||||
creatorsName: cn=anonymous
|
|
||||||
modifiersName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111624Z
|
|
||||||
modifyTimestamp: 20050706111624Z
|
|
||||||
entryCSN: 20050706111624.000000Z#000009#000#000000
|
|
||||||
|
|
||||||
dn: sambaDomainName=LS_NT,ou=sambadomains,o=ls
|
|
||||||
objectClass: top
|
|
||||||
objectClass: lssambadomain
|
|
||||||
objectClass: sambaDomain
|
|
||||||
sambaDomainName: LS_NT
|
|
||||||
sambaSID: S-1-5-21-2421470416-3566881284-3047381809
|
|
||||||
structuralObjectClass: lssambadomain
|
|
||||||
entryUUID: 2250d4ac-825b-1029-8395-b10e837060e0
|
|
||||||
creatorsName: cn=anonymous
|
|
||||||
modifiersName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111624Z
|
|
||||||
modifyTimestamp: 20050706111624Z
|
|
||||||
entryCSN: 20050706111624.000000Z#00000a#000#000000
|
|
||||||
|
|
||||||
dn: ou=groups,o=ls
|
dn: ou=groups,o=ls
|
||||||
objectClass: top
|
objectClass: top
|
||||||
objectClass: organizationalUnit
|
objectClass: organizationalUnit
|
||||||
ou: groups
|
ou: groups
|
||||||
structuralObjectClass: organizationalUnit
|
structuralObjectClass: organizationalUnit
|
||||||
entryUUID: 224947d2-825b-1029-8393-b10e837060e0
|
|
||||||
creatorsName: cn=anonymous
|
|
||||||
modifiersName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111624Z
|
|
||||||
modifyTimestamp: 20050706111624Z
|
|
||||||
entryCSN: 20050706111624.000000Z#000008#000#000000
|
|
||||||
|
|
||||||
dn: cn=adminldap,ou=groups,o=ls
|
dn: cn=adminldap,ou=groups,o=ls
|
||||||
objectClass: top
|
objectClass: top
|
||||||
|
@ -118,91 +47,81 @@ gidNumber: 70000
|
||||||
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-70000
|
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-70000
|
||||||
sambaGroupType: 2
|
sambaGroupType: 2
|
||||||
structuralObjectClass: lsgroup
|
structuralObjectClass: lsgroup
|
||||||
entryUUID: 226bb240-825b-1029-8396-b10e837060e0
|
|
||||||
creatorsName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111625Z
|
|
||||||
uniqueMember: uid=eeggs,ou=people,o=ls
|
uniqueMember: uid=eeggs,ou=people,o=ls
|
||||||
entryCSN: 20080211142717.746402Z#000000#000#000000
|
|
||||||
modifiersName: uid=eeggs,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20080211142717Z
|
|
||||||
|
|
||||||
dn: uid=mail,ou=sysaccounts,o=ls
|
dn: cn=invite,ou=groups,o=ls
|
||||||
objectClass: top
|
objectClass: top
|
||||||
objectClass: lssysaccount
|
objectClass: lsgroup
|
||||||
uid: mail
|
objectClass: posixGroup
|
||||||
structuralObjectClass: lssysaccount
|
objectClass: sambaGroupMapping
|
||||||
userPassword: toto
|
cn: invite
|
||||||
entryUUID: 22958d72-825b-1029-839c-b10e837060e0
|
gidNumber: 101009
|
||||||
creatorsName: cn=anonymous
|
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-203019
|
||||||
modifiersName: cn=anonymous
|
sambaGroupType: 2
|
||||||
createTimestamp: 20050706111625Z
|
structuralObjectClass: lsgroup
|
||||||
modifyTimestamp: 20050706111625Z
|
|
||||||
entryCSN: 20050706111625.000000Z#000007#000#000000
|
|
||||||
|
|
||||||
dn: uid=ftp,ou=sysaccounts,o=ls
|
dn: cn=ls,ou=groups,o=ls
|
||||||
objectClass: top
|
objectClass: top
|
||||||
objectClass: lssysaccount
|
objectClass: lsgroup
|
||||||
uid: ftp
|
objectClass: posixGroup
|
||||||
structuralObjectClass: lssysaccount
|
objectClass: sambaGroupMapping
|
||||||
userPassword: toto
|
cn: ls
|
||||||
entryUUID: 22a46608-825b-1029-839d-b10e837060e0
|
gidNumber: 102001
|
||||||
creatorsName: cn=anonymous
|
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-205003
|
||||||
modifiersName: cn=anonymous
|
sambaGroupType: 2
|
||||||
createTimestamp: 20050706111625Z
|
structuralObjectClass: lsgroup
|
||||||
modifyTimestamp: 20050706111625Z
|
uniqueMember: uid=secretariat,ou=people,o=ls
|
||||||
entryCSN: 20050706111625.000000Z#000008#000#000000
|
|
||||||
|
|
||||||
dn: uid=http,ou=sysaccounts,o=ls
|
dn: cn=informatique,ou=groups,o=ls
|
||||||
objectClass: top
|
objectClass: top
|
||||||
objectClass: lssysaccount
|
objectClass: lsgroup
|
||||||
uid: http
|
objectClass: posixGroup
|
||||||
structuralObjectClass: lssysaccount
|
objectClass: sambaGroupMapping
|
||||||
userPassword: toto
|
gidNumber: 102009
|
||||||
entryUUID: 22a7274e-825b-1029-839e-b10e837060e0
|
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-205019
|
||||||
creatorsName: cn=anonymous
|
sambaGroupType: 2
|
||||||
modifiersName: cn=anonymous
|
structuralObjectClass: lsgroup
|
||||||
createTimestamp: 20050706111625Z
|
cn: informatique
|
||||||
modifyTimestamp: 20050706111625Z
|
uniqueMember: uid=eeggs,ou=people,o=ls
|
||||||
entryCSN: 20050706111625.000000Z#000009#000#000000
|
|
||||||
|
|
||||||
dn: uid=samba,ou=sysaccounts,o=ls
|
dn: cn=direction,ou=groups,o=ls
|
||||||
objectClass: top
|
objectClass: top
|
||||||
objectClass: lssysaccount
|
objectClass: lsgroup
|
||||||
uid: samba
|
objectClass: posixGroup
|
||||||
structuralObjectClass: lssysaccount
|
objectClass: sambaGroupMapping
|
||||||
entryUUID: 22a9f44c-825b-1029-839f-b10e837060e0
|
cn: direction
|
||||||
creatorsName: cn=anonymous
|
gidNumber: 102007
|
||||||
createTimestamp: 20050706111625Z
|
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-205015
|
||||||
userPassword: toto
|
sambaGroupType: 2
|
||||||
entryCSN: 20050706115506.000000Z#000001#000#000000
|
structuralObjectClass: lsgroup
|
||||||
modifiersName: uid=eeggs,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20050706115506Z
|
|
||||||
|
|
||||||
dn: uid=ldapsaisie,ou=sysaccounts,o=ls
|
dn: cn=administratif,ou=groups,o=ls
|
||||||
objectClass: top
|
objectClass: top
|
||||||
objectClass: lssysaccount
|
objectClass: lsgroup
|
||||||
uid: ldapsaisie
|
objectClass: posixGroup
|
||||||
structuralObjectClass: lssysaccount
|
objectClass: sambaGroupMapping
|
||||||
userPassword: toto
|
cn: administratif
|
||||||
entryUUID: 22acb6aa-825b-1029-83a0-b10e837060e0
|
gidNumber: 102005
|
||||||
creatorsName: cn=anonymous
|
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-205011
|
||||||
modifiersName: cn=anonymous
|
sambaGroupType: 2
|
||||||
createTimestamp: 20050706111625Z
|
structuralObjectClass: lsgroup
|
||||||
modifyTimestamp: 20050706111625Z
|
|
||||||
entryCSN: 20050706111625.000000Z#00000b#000#000000
|
|
||||||
|
|
||||||
dn: uid=nss,ou=sysaccounts,o=ls
|
dn: cn=communication,ou=groups,o=ls
|
||||||
objectClass: top
|
objectClass: top
|
||||||
objectClass: lssysaccount
|
objectClass: lsgroup
|
||||||
uid: nss
|
objectClass: posixGroup
|
||||||
structuralObjectClass: lssysaccount
|
objectClass: sambaGroupMapping
|
||||||
entryUUID: 22b06d40-825b-1029-83a1-b10e837060e0
|
cn: communication
|
||||||
creatorsName: cn=anonymous
|
gidNumber: 102003
|
||||||
createTimestamp: 20050706111625Z
|
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-205007
|
||||||
userPassword: toto
|
sambaGroupType: 2
|
||||||
entryCSN: 20050706115152.000000Z#000001#000#000000
|
structuralObjectClass: lsgroup
|
||||||
modifiersName: uid=eeggs,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20050706115152Z
|
dn: ou=people,o=ls
|
||||||
|
objectClass: top
|
||||||
|
objectClass: organizationalUnit
|
||||||
|
ou: people
|
||||||
|
structuralObjectClass: organizationalUnit
|
||||||
|
|
||||||
dn: uid=eeggs,ou=people,o=ls
|
dn: uid=eeggs,ou=people,o=ls
|
||||||
objectClass: top
|
objectClass: top
|
||||||
|
@ -213,35 +132,22 @@ uid: eeggs
|
||||||
uidNumber: 100000
|
uidNumber: 100000
|
||||||
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-201000
|
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-201000
|
||||||
structuralObjectClass: lspeople
|
structuralObjectClass: lspeople
|
||||||
entryUUID: 22b70a42-825b-1029-83a3-b10e837060e0
|
|
||||||
creatorsName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111625Z
|
|
||||||
gidNumber: 102009
|
gidNumber: 102009
|
||||||
mail: eeggs@ldapsaisie.biz
|
mail: eeggs@ldapsaisie.biz
|
||||||
facsimileTelephoneNumber: 030000000
|
facsimileTelephoneNumber: 030000000
|
||||||
vacationInfo: Je suis absent pour le moment
|
lsallowedservices: MAIL
|
||||||
vacationEnd: 20070101000000Z
|
lsallowedservices: FTP
|
||||||
vacationForward: brenard@easter-eggs.com
|
|
||||||
eeallowedservices: MAIL
|
|
||||||
eeallowedservices: FTP
|
|
||||||
description: Utilisateur test Easter-eggs
|
description: Utilisateur test Easter-eggs
|
||||||
cn: Easter Eggs
|
cn: Easter Eggs
|
||||||
sambaPrimaryGroupSID: S-1-5-21-2421470416-3566881284-3047381809-205019
|
sambaPrimaryGroupSID: S-1-5-21-2421470416-3566881284-3047381809-205019
|
||||||
mailbox: eeggs/
|
|
||||||
personalTitle: M.
|
personalTitle: M.
|
||||||
userPassword: toto
|
userPassword: toto
|
||||||
sambaLMPassword: AAD3B435B51404EEAAD3B435B51404EE
|
sambaLMPassword: AAD3B435B51404EEAAD3B435B51404EE
|
||||||
sambaNTPassword: 31D6CFE0D16AE931B73C59D7E0C089C0
|
sambaNTPassword: 31D6CFE0D16AE931B73C59D7E0C089C0
|
||||||
mailQuota: 5
|
|
||||||
homeDirectory: /home/eeggs
|
homeDirectory: /home/eeggs
|
||||||
loginShell: /bin/false
|
loginShell: /bin/false
|
||||||
givenName: Easter
|
givenName: Easter
|
||||||
maildrop: eeggs@ldapsaisie.biz
|
|
||||||
vacationActive:
|
|
||||||
sn: Eggs
|
sn: Eggs
|
||||||
entryCSN: 20080211134602.394624Z#000000#000#000000
|
|
||||||
modifiersName: uid=eeggs,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20080211134602Z
|
|
||||||
|
|
||||||
dn: uid=invite,ou=people,o=ls
|
dn: uid=invite,ou=people,o=ls
|
||||||
objectClass: top
|
objectClass: top
|
||||||
|
@ -260,22 +166,13 @@ userPassword: toto
|
||||||
sambaAcctFlags: [U ]
|
sambaAcctFlags: [U ]
|
||||||
sambaPrimaryGroupSID: S-1-5-21-2421470416-3566881284-3047381809-203019
|
sambaPrimaryGroupSID: S-1-5-21-2421470416-3566881284-3047381809-203019
|
||||||
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-203024
|
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-203024
|
||||||
mailbox: invite/
|
lsallowedservices: MAIL
|
||||||
mailQuota: 52428800
|
lsallowedservices: SAMBA
|
||||||
eeallowedservices: MAIL
|
lsallowedservices: FTP
|
||||||
eeallowedservices: SAMBA
|
|
||||||
eeallowedservices: FTP
|
|
||||||
mail: invite@ldapsaisie.biz
|
mail: invite@ldapsaisie.biz
|
||||||
maildrop: invite@ldapsaisie.biz
|
|
||||||
structuralObjectClass: lspeople
|
structuralObjectClass: lspeople
|
||||||
entryUUID: 233dd144-825b-1029-9a9d-8f6e2b792dd2
|
|
||||||
creatorsName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111626Z
|
|
||||||
sambaNTPassword: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
sambaNTPassword: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||||
sambaLMPassword: NO PASSWORDXXXXXXXXXXXXXXXXXXXXX
|
sambaLMPassword: NO PASSWORDXXXXXXXXXXXXXXXXXXXXX
|
||||||
entryCSN: 20050706133832.000000Z#000008#000#000000
|
|
||||||
modifiersName: uid=eeggs,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20050706133832Z
|
|
||||||
|
|
||||||
dn: uid=hmartin,ou=people,o=ls
|
dn: uid=hmartin,ou=people,o=ls
|
||||||
objectClass: top
|
objectClass: top
|
||||||
|
@ -289,30 +186,19 @@ uidNumber: 101022
|
||||||
sambaAcctFlags: [U ]
|
sambaAcctFlags: [U ]
|
||||||
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-203044
|
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-203044
|
||||||
structuralObjectClass: lspeople
|
structuralObjectClass: lspeople
|
||||||
entryUUID: 234393a4-825b-1029-9a9f-8f6e2b792dd2
|
|
||||||
creatorsName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111626Z
|
|
||||||
givenName: Henri
|
givenName: Henri
|
||||||
sn: MARTIN
|
sn: MARTIN
|
||||||
gidNumber: 102001
|
gidNumber: 102001
|
||||||
mail: henri.martin@ldapsaisie.biz
|
mail: henri.martin@ldapsaisie.biz
|
||||||
maildrop: henri.martin@ldapsaisie.biz
|
lsallowedservices: MAIL
|
||||||
mailAlternateAddress: hmartin@ldapsaisie.biz
|
lsallowedservices: SAMBA
|
||||||
vacationEnd: 20060101000000Z
|
lsallowedservices: FTP
|
||||||
mailQuota: 52428800
|
|
||||||
eeallowedservices: MAIL
|
|
||||||
eeallowedservices: SAMBA
|
|
||||||
eeallowedservices: FTP
|
|
||||||
cn: Henri MARTIN
|
cn: Henri MARTIN
|
||||||
sambaPrimaryGroupSID: S-1-5-21-2421470416-3566881284-3047381809-205003
|
sambaPrimaryGroupSID: S-1-5-21-2421470416-3566881284-3047381809-205003
|
||||||
mailbox: hmartin/
|
|
||||||
personalTitle: M.
|
personalTitle: M.
|
||||||
userPassword: toto
|
userPassword: toto
|
||||||
sambaLMPassword: AAD3B435B51404EEAAD3B435B51404EE
|
sambaLMPassword: AAD3B435B51404EEAAD3B435B51404EE
|
||||||
sambaNTPassword: 31D6CFE0D16AE931B73C59D7E0C089C0
|
sambaNTPassword: 31D6CFE0D16AE931B73C59D7E0C089C0
|
||||||
entryCSN: 20080211164417.161923Z#000000#000#000000
|
|
||||||
modifiersName: uid=eeggs,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20080211164417Z
|
|
||||||
|
|
||||||
dn: uid=secretariat,ou=people,o=ls
|
dn: uid=secretariat,ou=people,o=ls
|
||||||
objectClass: top
|
objectClass: top
|
||||||
|
@ -327,27 +213,17 @@ userPassword: toto
|
||||||
sambaAcctFlags: [U ]
|
sambaAcctFlags: [U ]
|
||||||
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-203072
|
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-203072
|
||||||
structuralObjectClass: lspeople
|
structuralObjectClass: lspeople
|
||||||
entryUUID: 239920bc-825b-1029-9abb-8f6e2b792dd2
|
|
||||||
creatorsName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111627Z
|
|
||||||
sambaNTPassword: 8DB716B655D71DF6BD056A41B22B9EA9
|
sambaNTPassword: 8DB716B655D71DF6BD056A41B22B9EA9
|
||||||
sambaLMPassword: 6CE56DC112C920EF0F5E44C88BF9DC39
|
sambaLMPassword: 6CE56DC112C920EF0F5E44C88BF9DC39
|
||||||
givenName: Secretariat
|
givenName: Secretariat
|
||||||
sn: Secretariat
|
sn: Secretariat
|
||||||
gidNumber: 70513
|
gidNumber: 70513
|
||||||
mail: secretariat@ldapsaisie.biz
|
mail: secretariat@ldapsaisie.biz
|
||||||
maildrop: secretariat@ldapsaisie.biz
|
lsallowedservices: MAIL
|
||||||
vacationEnd: 20050101000000Z
|
lsallowedservices: SAMBA
|
||||||
mailQuota: 52428800
|
lsallowedservices: FTP
|
||||||
eeallowedservices: MAIL
|
|
||||||
eeallowedservices: SAMBA
|
|
||||||
eeallowedservices: FTP
|
|
||||||
cn: Secretariat Secretariat
|
cn: Secretariat Secretariat
|
||||||
mailbox: secretariat/
|
|
||||||
sambaPrimaryGroupSID: S-1-5-21-2421470416-3566881284-3047381809-513
|
sambaPrimaryGroupSID: S-1-5-21-2421470416-3566881284-3047381809-513
|
||||||
entryCSN: 20050706144306.000000Z#000001#000#000000
|
|
||||||
modifiersName: uid=eeggs,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20050706144306Z
|
|
||||||
|
|
||||||
dn: uid=ls,ou=people,o=ls
|
dn: uid=ls,ou=people,o=ls
|
||||||
objectClass: top
|
objectClass: top
|
||||||
|
@ -364,192 +240,15 @@ sambaLMPassword: 6E72264E11F708C0AAD3B435B51404EE
|
||||||
sambaNTPassword: 8D9B9B87EE8C0423691F4F0E00C5BDE1
|
sambaNTPassword: 8D9B9B87EE8C0423691F4F0E00C5BDE1
|
||||||
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-203136
|
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-203136
|
||||||
structuralObjectClass: lspeople
|
structuralObjectClass: lspeople
|
||||||
entryUUID: 23afa346-825b-1029-9ac3-8f6e2b792dd2
|
|
||||||
creatorsName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111627Z
|
|
||||||
givenName: _
|
givenName: _
|
||||||
sn: LdapSaisie
|
sn: LdapSaisie
|
||||||
gidNumber: 102001
|
gidNumber: 102001
|
||||||
mail: ls@ldapsaisie.biz
|
mail: ls@ldapsaisie.biz
|
||||||
maildrop: ls@ldapsaisie.biz
|
lsallowedservices: MAIL
|
||||||
vacationEnd: 20060101000000Z
|
lsallowedservices: SAMBA
|
||||||
mailQuota: 52428800
|
lsallowedservices: FTP
|
||||||
eeallowedservices: MAIL
|
|
||||||
eeallowedservices: SAMBA
|
|
||||||
eeallowedservices: FTP
|
|
||||||
cn: LS
|
cn: LS
|
||||||
sambaPrimaryGroupSID: S-1-5-21-2421470416-3566881284-3047381809-205003
|
sambaPrimaryGroupSID: S-1-5-21-2421470416-3566881284-3047381809-205003
|
||||||
mailbox: ls/
|
|
||||||
entryCSN: 20061212145541.000000Z#000001#000#000000
|
|
||||||
modifiersName: uid=catbo,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20061212145541Z
|
|
||||||
|
|
||||||
dn: cn=invite,ou=groups,o=ls
|
|
||||||
objectClass: top
|
|
||||||
objectClass: lsgroup
|
|
||||||
objectClass: posixGroup
|
|
||||||
objectClass: sambaGroupMapping
|
|
||||||
cn: invite
|
|
||||||
gidNumber: 101009
|
|
||||||
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-203019
|
|
||||||
sambaGroupType: 2
|
|
||||||
structuralObjectClass: lsgroup
|
|
||||||
entryUUID: 2425636a-825b-1029-9ae1-8f6e2b792dd2
|
|
||||||
creatorsName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111628Z
|
|
||||||
entryCSN: 20070308165544.000000Z#000000#000#000000
|
|
||||||
modifiersName: uid=eeggs,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20070308165544Z
|
|
||||||
|
|
||||||
dn: cn=ls,ou=groups,o=ls
|
|
||||||
objectClass: top
|
|
||||||
objectClass: lsgroup
|
|
||||||
objectClass: posixGroup
|
|
||||||
objectClass: sambaGroupMapping
|
|
||||||
cn: ls
|
|
||||||
gidNumber: 102001
|
|
||||||
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-205003
|
|
||||||
sambaGroupType: 2
|
|
||||||
structuralObjectClass: lsgroup
|
|
||||||
entryUUID: 242bef1e-825b-1029-9ae3-8f6e2b792dd2
|
|
||||||
creatorsName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111628Z
|
|
||||||
uniqueMember: uid=secretariat,ou=people,o=ls
|
|
||||||
entryCSN: 20080211142555.171664Z#000000#000#000000
|
|
||||||
modifiersName: uid=eeggs,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20080211142555Z
|
|
||||||
|
|
||||||
dn: cn=informatique,ou=groups,o=ls
|
|
||||||
objectClass: top
|
|
||||||
objectClass: lsgroup
|
|
||||||
objectClass: posixGroup
|
|
||||||
objectClass: sambaGroupMapping
|
|
||||||
gidNumber: 102009
|
|
||||||
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-205019
|
|
||||||
sambaGroupType: 2
|
|
||||||
structuralObjectClass: lsgroup
|
|
||||||
entryUUID: 2438d9d6-825b-1029-9ae7-8f6e2b792dd2
|
|
||||||
creatorsName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111628Z
|
|
||||||
cn: informatique
|
|
||||||
uniqueMember: uid=eeggs,ou=people,o=ls
|
|
||||||
entryCSN: 20070309093000.000000Z#000000#000#000000
|
|
||||||
modifiersName: uid=eeggs,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20070309093000Z
|
|
||||||
|
|
||||||
dn: cn=direction,ou=groups,o=ls
|
|
||||||
objectClass: top
|
|
||||||
objectClass: lsgroup
|
|
||||||
objectClass: posixGroup
|
|
||||||
objectClass: sambaGroupMapping
|
|
||||||
cn: direction
|
|
||||||
gidNumber: 102007
|
|
||||||
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-205015
|
|
||||||
sambaGroupType: 2
|
|
||||||
structuralObjectClass: lsgroup
|
|
||||||
entryUUID: 243f7a34-825b-1029-9ae9-8f6e2b792dd2
|
|
||||||
creatorsName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111628Z
|
|
||||||
entryCSN: 20070309093009.000000Z#000000#000#000000
|
|
||||||
modifiersName: uid=eeggs,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20070309093009Z
|
|
||||||
|
|
||||||
dn: cn=administratif,ou=groups,o=ls
|
|
||||||
objectClass: top
|
|
||||||
objectClass: lsgroup
|
|
||||||
objectClass: posixGroup
|
|
||||||
objectClass: sambaGroupMapping
|
|
||||||
cn: administratif
|
|
||||||
gidNumber: 102005
|
|
||||||
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-205011
|
|
||||||
sambaGroupType: 2
|
|
||||||
structuralObjectClass: lsgroup
|
|
||||||
entryUUID: 245e0cb0-825b-1029-9af4-8f6e2b792dd2
|
|
||||||
creatorsName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111628Z
|
|
||||||
entryCSN: 20070308180424.000000Z#000001#000#000000
|
|
||||||
modifiersName: uid=eeggs,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20070308180424Z
|
|
||||||
|
|
||||||
dn: cn=communication,ou=groups,o=ls
|
|
||||||
objectClass: top
|
|
||||||
objectClass: lsgroup
|
|
||||||
objectClass: posixGroup
|
|
||||||
objectClass: sambaGroupMapping
|
|
||||||
cn: communication
|
|
||||||
gidNumber: 102003
|
|
||||||
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-205007
|
|
||||||
sambaGroupType: 2
|
|
||||||
structuralObjectClass: lsgroup
|
|
||||||
entryUUID: 2460db34-825b-1029-9af5-8f6e2b792dd2
|
|
||||||
creatorsName: cn=anonymous
|
|
||||||
createTimestamp: 20050706111628Z
|
|
||||||
entryCSN: 20070308180413.000000Z#000000#000#000000
|
|
||||||
modifiersName: uid=eeggs,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20070308180413Z
|
|
||||||
|
|
||||||
dn: uid=spam,ou=mailboxes,o=ls
|
|
||||||
uid: spam
|
|
||||||
userPassword: toto
|
|
||||||
mailQuota: 104857600
|
|
||||||
eeallowedservices: MAIL
|
|
||||||
mail: spam@ldapsaisie.biz
|
|
||||||
maildrop: spam@ldapsaisie.biz
|
|
||||||
mailbox: spam/
|
|
||||||
objectClass: top
|
|
||||||
objectClass: lsmailbox
|
|
||||||
structuralObjectClass: lsmailbox
|
|
||||||
entryUUID: c88b9eb4-8301-1029-9567-dda2c03231d0
|
|
||||||
creatorsName: uid=eeggs,ou=people,o=ls
|
|
||||||
createTimestamp: 20050707070920Z
|
|
||||||
entryCSN: 20050707070920.000000Z#000001#000#000000
|
|
||||||
modifiersName: uid=eeggs,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20050707070920Z
|
|
||||||
|
|
||||||
dn: uid=virus,ou=mailboxes,o=ls
|
|
||||||
uid: virus
|
|
||||||
userPassword: toto
|
|
||||||
mailbox: virus/
|
|
||||||
objectClass: top
|
|
||||||
objectClass: lsmailbox
|
|
||||||
structuralObjectClass: lsmailbox
|
|
||||||
entryUUID: 974dac8c-8303-1029-9569-dda2c03231d0
|
|
||||||
creatorsName: uid=eeggs,ou=people,o=ls
|
|
||||||
createTimestamp: 20050707072216Z
|
|
||||||
mailQuota: 104857600
|
|
||||||
eeallowedservices: MAIL
|
|
||||||
mail: virus@ldapsaisie.biz
|
|
||||||
maildrop: virus@ldapsaisie.biz
|
|
||||||
entryCSN: 20050707072249.000000Z#000001#000#000000
|
|
||||||
modifiersName: uid=eeggs,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20050707072249Z
|
|
||||||
|
|
||||||
dn: uid=gnarwl,ou=sysaccounts,o=ls
|
|
||||||
objectClass: top
|
|
||||||
objectClass: lssysaccount
|
|
||||||
uid: gnarwl
|
|
||||||
structuralObjectClass: lssysaccount
|
|
||||||
entryUUID: f55954e0-fdcc-1029-9d72-de06c303d7ef
|
|
||||||
creatorsName: uid=eeggs,ou=people,o=ls
|
|
||||||
createTimestamp: 20051210133105Z
|
|
||||||
userPassword: toto
|
|
||||||
entryCSN: 20051210133237.000000Z#000001#000#000000
|
|
||||||
modifiersName: uid=eeggs,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20051210133237Z
|
|
||||||
|
|
||||||
dn: mail=informatique@ldapsaisie.biz,ou=aliases,o=ls
|
|
||||||
objectClass: top
|
|
||||||
objectClass: lsalias
|
|
||||||
structuralObjectClass: lsalias
|
|
||||||
entryUUID: 081e6612-fdd0-1029-9d73-de06c303d7ef
|
|
||||||
creatorsName: uid=eeggs,ou=people,o=ls
|
|
||||||
createTimestamp: 20051210135305Z
|
|
||||||
mail: informatique@ldapsaisie.biz
|
|
||||||
description: Service Informatique
|
|
||||||
maildrop: eeggs@ldapsaisie.biz
|
|
||||||
entryCSN: 20051210141428.000000Z#000001#000#000000
|
|
||||||
modifiersName: uid=eeggs,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20051210141428Z
|
|
||||||
|
|
||||||
dn: uid=erwpa,ou=people,o=ls
|
dn: uid=erwpa,ou=people,o=ls
|
||||||
uid: erwpa
|
uid: erwpa
|
||||||
|
@ -563,42 +262,16 @@ homeDirectory: /home/erwpa
|
||||||
loginShell: /bin/false
|
loginShell: /bin/false
|
||||||
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-203164
|
sambaSID: S-1-5-21-2421470416-3566881284-3047381809-203164
|
||||||
structuralObjectClass: lspeople
|
structuralObjectClass: lspeople
|
||||||
entryUUID: aa7fcb30-b1a3-102a-875e-dcce935f6f2c
|
|
||||||
sn: PAGEARD
|
sn: PAGEARD
|
||||||
gidNumber: 102009
|
gidNumber: 102009
|
||||||
mail: erwan.page@ldapsaisie.biz
|
mail: erwan.page@ldapsaisie.biz
|
||||||
maildrop: erwan.page@ldapsaisie.biz
|
lsallowedservices: MAIL
|
||||||
vacationEnd: 20060101000000Z
|
lsallowedservices: SAMBA
|
||||||
eeallowedservices: MAIL
|
lsallowedservices: FTP
|
||||||
eeallowedservices: SAMBA
|
|
||||||
eeallowedservices: FTP
|
|
||||||
cn: Erwan PAGE
|
cn: Erwan PAGE
|
||||||
sambaPrimaryGroupSID: S-1-5-21-2421470416-3566881284-3047381809-205019
|
sambaPrimaryGroupSID: S-1-5-21-2421470416-3566881284-3047381809-205019
|
||||||
mailbox: erwpa/
|
|
||||||
personalTitle: M.
|
personalTitle: M.
|
||||||
givenName: Erwan
|
givenName: Erwan
|
||||||
userPassword: toto
|
userPassword: toto
|
||||||
sambaLMPassword: BAC14D04669EE1D1AAD3B435B51404EE
|
sambaLMPassword: BAC14D04669EE1D1AAD3B435B51404EE
|
||||||
sambaNTPassword: FBBF55D0EF0E34D39593F55C5F2CA5F2
|
sambaNTPassword: FBBF55D0EF0E34D39593F55C5F2CA5F2
|
||||||
entryCSN: 20080211170049.821887Z#000000#000#000000
|
|
||||||
modifiersName: uid=eeggs,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20080211170049Z
|
|
||||||
|
|
||||||
dn: cn=test,ou=groups,o=ls
|
|
||||||
cn: test
|
|
||||||
description: test BR
|
|
||||||
objectClass: top
|
|
||||||
objectClass: lsgroup
|
|
||||||
objectClass: sambaGroupMapping
|
|
||||||
objectClass: posixGroup
|
|
||||||
sambaGroupType: 2
|
|
||||||
gidNumber: 102012
|
|
||||||
sambaSID: 42
|
|
||||||
structuralObjectClass: lsgroup
|
|
||||||
entryUUID: 91b290d2-6117-102b-9c6f-91889acd20dc
|
|
||||||
creatorsName: uid=eeggs,ou=people,o=ls
|
|
||||||
createTimestamp: 20070307164933Z
|
|
||||||
entryCSN: 20070308165811.000000Z#000000#000#000000
|
|
||||||
modifiersName: uid=eeggs,ou=people,o=ls
|
|
||||||
modifyTimestamp: 20070308165811Z
|
|
||||||
|
|
||||||
|
|
|
@ -1,89 +1,28 @@
|
||||||
## Racine
|
## Racine
|
||||||
access to dn.regex="^o=ls$" attrs="entry,children,objectclass"
|
access to dn.regex="^o=ls$" attrs="entry,children,objectclass"
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
||||||
|
by dn="uid=ldapsaisie,ou=sysaccounts,o=ls" write
|
||||||
by users read
|
by users read
|
||||||
by * read
|
by * read
|
||||||
|
|
||||||
## Sysaccounts
|
|
||||||
### Ajout d'entrees par les admins
|
|
||||||
access to dn.regex="^ou=sysaccounts,o=ls$" attrs="children"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by users read
|
|
||||||
by * none
|
|
||||||
|
|
||||||
access to dn.regex="^uid=[^,]+,ou=sysaccounts,o=ls$" attrs="entry,objectclass"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by users read
|
|
||||||
by * none
|
|
||||||
|
|
||||||
### Les admins peuvent modifier le mot de passe, les autres peuvent s'en servir pour l'authentification
|
|
||||||
access to dn.regex="^uid=[^,]+,ou=sysaccounts,o=ls$" attrs="userPassword"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by anonymous auth
|
|
||||||
by * none
|
|
||||||
|
|
||||||
### Les admins peuvent modifier tous les attributs, les autres ne voient rien
|
|
||||||
access to dn.regex="^uid=[^,]+,ou=sysaccounts,o=ls$"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by * none
|
|
||||||
|
|
||||||
## Aliases
|
|
||||||
### Ajout d'entrees par les admins
|
|
||||||
access to dn.regex="^ou=aliases,o=ls$" attrs="children,objectclass"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by * read
|
|
||||||
|
|
||||||
access to dn.regex="^mail=[^,]+,ou=aliases,o=ls$" attrs="entry,objectclass"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by * read
|
|
||||||
|
|
||||||
### Les admins peuvent modifier tous les attributs, tout le monde peut voir
|
|
||||||
access to dn.regex="^mail=[^,]+,ou=aliases,o=ls$"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by * read
|
|
||||||
|
|
||||||
## Mailboxes
|
|
||||||
### Ajout d'entrees par les admins
|
|
||||||
access to dn.regex="^ou=mailboxes,o=ls$" attrs="children,objectclass"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by * read
|
|
||||||
|
|
||||||
access to dn.regex="^uid=[^,]+,ou=mailboxes,o=ls$" attrs="entry,objectclass"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by * read
|
|
||||||
|
|
||||||
### Les admins peuvent modifier le mot de passe, les autres peuvent s'en servir pour l'authentification
|
|
||||||
access to dn.regex="^uid=[^,]+,ou=mailboxes,o=ls$" attrs="userPassword"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by anonymous auth
|
|
||||||
by * none
|
|
||||||
|
|
||||||
### Les admins peuvent modifier ces attributs, l'appli mail le voir, les autres aucun droits
|
|
||||||
access to dn.regex="^uid=[^,]+,ou=mailboxes,o=ls$" attrs="mailbox,mailforwardingaddress"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by dn="uid=mail,ou=sysaccounts,o=ls" read
|
|
||||||
by * none
|
|
||||||
|
|
||||||
### Les admins peuvent modifier ces attributs, les authentifies peuvent les voir
|
|
||||||
access to dn.regex="^uid=[^,]+,ou=mailboxes,o=ls$" attrs="uid,description,mail,mailalternateaddress,mailquota,eeallowedservices"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by * read
|
|
||||||
|
|
||||||
## Groups
|
## Groups
|
||||||
### Ajout d'entrees par les admins
|
### Ajout d'entrees par les admins
|
||||||
access to dn.regex="^ou=groups,o=ls$" attrs="children,objectclass"
|
access to dn.regex="^ou=groups,o=ls$" attrs="children,objectclass"
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
||||||
|
by dn="uid=ldapsaisie,ou=sysaccounts,o=ls" write
|
||||||
by users read
|
by users read
|
||||||
by * none
|
by * none
|
||||||
|
|
||||||
access to dn.regex="^cn=[^,]+,ou=groups,o=ls$" attrs="entry,objectclass"
|
access to dn.regex="^cn=[^,]+,ou=groups,o=ls$" attrs="entry,objectclass"
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
||||||
|
by dn="uid=ldapsaisie,ou=sysaccounts,o=ls" write
|
||||||
by users read
|
by users read
|
||||||
by * none
|
by * none
|
||||||
|
|
||||||
### Les admins peuvent tout modifier, les authentifies peuvent tout voir
|
### Les admins peuvent tout modifier, les authentifies peuvent tout voir
|
||||||
access to dn.regex="^cn=[^,]+,ou=groups,o=ls$"
|
access to dn.regex="^cn=[^,]+,ou=groups,o=ls$"
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
||||||
|
by dn="uid=ldapsaisie,ou=sysaccounts,o=ls" write
|
||||||
by users read
|
by users read
|
||||||
by * none
|
by * none
|
||||||
|
|
||||||
|
@ -92,11 +31,13 @@ access to dn.regex="^cn=[^,]+,ou=groups,o=ls$"
|
||||||
### Ajout d'entrees par les admins
|
### Ajout d'entrees par les admins
|
||||||
access to dn.regex="^ou=people,o=ls$" attrs="children,objectclass"
|
access to dn.regex="^ou=people,o=ls$" attrs="children,objectclass"
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
||||||
|
by dn="uid=ldapsaisie,ou=sysaccounts,o=ls" write
|
||||||
by users read
|
by users read
|
||||||
by * read
|
by * read
|
||||||
|
|
||||||
access to dn.regex="^uid=[^,]+,ou=people,o=ls$" attrs="entry,objectclass"
|
access to dn.regex="^uid=[^,]+,ou=people,o=ls$" attrs="entry,objectclass"
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
||||||
|
by dn="uid=ldapsaisie,ou=sysaccounts,o=ls" write
|
||||||
by users read
|
by users read
|
||||||
by * read
|
by * read
|
||||||
|
|
||||||
|
@ -105,104 +46,49 @@ access to dn.regex="^uid=[^,]+,ou=people,o=ls$" attrs="entry,objectclass"
|
||||||
access to dn.regex="^uid=[^,]+,ou=people,o=ls$" attrs="userPassword"
|
access to dn.regex="^uid=[^,]+,ou=people,o=ls$" attrs="userPassword"
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
||||||
by dn="uid=samba,ou=sysaccounts,o=ls" write
|
by dn="uid=samba,ou=sysaccounts,o=ls" write
|
||||||
|
by dn="uid=ldapsaisie,ou=sysaccounts,o=ls" write
|
||||||
by self write
|
by self write
|
||||||
by anonymous auth
|
by anonymous auth
|
||||||
by * none
|
by * none
|
||||||
|
|
||||||
### Les admins peuvent modifier ces attributs, l'appli mail les voir, les autres aucun droits
|
access to dn.regex="^uid=[^,]+,ou=sysaccounts,o=ls$" attrs="userPassword"
|
||||||
access to dn.regex="^uid=[^,]+,ou=people,o=ls$" attrs="mailbox"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
||||||
by dn="uid=mail,ou=sysaccounts,o=ls" read
|
by dn="uid=ldapsaisie,ou=sysaccounts,o=ls" write
|
||||||
|
by anonymous auth
|
||||||
by * none
|
by * none
|
||||||
|
|
||||||
### Les admins peuvent modifier ces attributs, les authentifies peuvent les voir
|
### Les admins peuvent modifier ces attributs, les authentifies peuvent les voir
|
||||||
access to dn.regex="^uid=[^,]+,ou=people,o=ls$" attrs="uid,mailquota,eeallowedservices,uidNumber,gidNumber,homeDirectory,loginShell,sambaSID,sambaAcctFlags,sambaPrimaryGroupSID"
|
access to dn.regex="^uid=[^,]+,ou=people,o=ls$" attrs="uid,lsallowedservices,uidNumber,gidNumber,homeDirectory,loginShell,sambaSID,sambaAcctFlags,sambaPrimaryGroupSID"
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
||||||
|
by dn="uid=ldapsaisie,ou=sysaccounts,o=ls" write
|
||||||
by users read
|
by users read
|
||||||
by * none
|
by * none
|
||||||
|
|
||||||
### Les admins peuvent modifier ces attributs, le proprio aussi, gnarwl peut les modifier et mail les voir
|
|
||||||
access to dn.regex="^uid=[^,]+,ou=people,o=ls$" attrs="mailforwardingaddress"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by dn="uid=gnarwl,ou=sysaccounts,o=ls" write
|
|
||||||
by self write
|
|
||||||
by dn="uid=mail,ou=sysaccounts,o=ls" read
|
|
||||||
by * none
|
|
||||||
|
|
||||||
### Les admins peuvent modifier ces attributs, le proprio aussi, les authentifies peuvent les voir, gnarwl peut les modifier
|
|
||||||
access to dn.regex="^uid=[^,]+,ou=people,o=ls$" attrs="vacationActive"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by dn="uid=gnarwl,ou=sysaccounts,o=ls" write
|
|
||||||
by self write
|
|
||||||
by users read
|
|
||||||
by * none
|
|
||||||
|
|
||||||
### Les admins peuvent modifier ces attributs, le proprio aussi, mail et gnarwl peuvent les voir
|
|
||||||
access to dn.regex="^uid=[^,]+,ou=people,o=ls$" attrs="vacationForward"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by self write
|
|
||||||
by dn="uid=mail,ou=sysaccounts,o=ls" read
|
|
||||||
by dn="uid=gnarwl,ou=sysaccounts,o=ls" read
|
|
||||||
by * none
|
|
||||||
|
|
||||||
### Les admins peuvent modifier ces attributs, le proprio aussi, samba aussi
|
### Les admins peuvent modifier ces attributs, le proprio aussi, samba aussi
|
||||||
access to dn.regex="^uid=[^,]+,ou=people,o=ls$" attrs="sambaLMPassword,sambaNTPassword"
|
access to dn.regex="^uid=[^,]+,ou=people,o=ls$" attrs="sambaLMPassword,sambaNTPassword"
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
||||||
|
by dn="uid=ldapsaisie,ou=sysaccounts,o=ls" write
|
||||||
by dn="uid=samba,ou=sysaccounts,o=ls" write
|
by dn="uid=samba,ou=sysaccounts,o=ls" write
|
||||||
by self write
|
by self write
|
||||||
by * none
|
by * none
|
||||||
|
|
||||||
### Les admins peuvent modifier ces attributs, le proprio aussi, les authentifies peuvent les voir
|
### Les admins peuvent modifier ces attributs, le proprio aussi, les authentifies peuvent les voir
|
||||||
access to dn.regex="^uid=[^,]+,ou=people,o=ls$" attrs="c,cn,jpegPhoto,personalTitle,sn,givenName,postalAddress,postalCode,l,st,telephoneNumber,mobile,fax,mail,mailalternateaddress,maildrop,description,vacationInfo,vacationEnd"
|
access to dn.regex="^uid=[^,]+,ou=people,o=ls$" attrs="c,cn,jpegPhoto,personalTitle,sn,givenName,postalAddress,postalCode,l,st,telephoneNumber,mobile,fax,mail,description"
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
||||||
|
by dn="uid=ldapsaisie,ou=sysaccounts,o=ls" write
|
||||||
by self write
|
by self write
|
||||||
by users read
|
by users read
|
||||||
by * read
|
by * read
|
||||||
|
|
||||||
## Computers
|
|
||||||
### Ajout d'entrees par les admins
|
|
||||||
access to dn.regex="^ou=computers,o=ls$" attrs="children,objectclass"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by dn="uid=samba,ou=sysaccounts,o=ls" write
|
|
||||||
by users read
|
|
||||||
by * none
|
|
||||||
|
|
||||||
access to dn.regex="^uid=[^,]+,ou=computers,o=ls$" attrs="entry,objectclass"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by dn="uid=samba,ou=sysaccounts,o=ls" write
|
|
||||||
by users read
|
|
||||||
by * none
|
|
||||||
|
|
||||||
|
|
||||||
### Les admins peuvent modifier ces attributs, samba peut les voir
|
|
||||||
access to dn.regex="^uid=[^,]+,ou=computers,o=ls$" attrs="sambaLMPassword,sambaNTPassword"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by dn="uid=samba,ou=sysaccounts,o=ls" write
|
|
||||||
by * none
|
|
||||||
|
|
||||||
### Les admins peuvent modifier ces attributs, les authentifiés peuvent les voir
|
|
||||||
access to dn.regex="^uid=[^,]+,ou=computers,o=ls$" attrs="cn,uid,uidNumber,gidNumber,homeDirectory,sambaSID,sambaPrimaryGroupSID,sambaAcctFlags,sambaPwdCanChange,sambaPwdMustChange,sambaPwdLastSet"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by dn="uid=samba,ou=sysaccounts,o=ls" write
|
|
||||||
by users read
|
|
||||||
by * none
|
|
||||||
|
|
||||||
|
|
||||||
## Les authentifies peuvent voir les noeuds et les admins peuvent en ajouter
|
## Les authentifies peuvent voir les noeuds et les admins peuvent en ajouter
|
||||||
access to * attrs="entry"
|
access to * attrs="entry"
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
||||||
by users read
|
by dn="uid=ldapsaisie,ou=sysaccounts,o=ls" write
|
||||||
by * none
|
|
||||||
|
|
||||||
## SambaDomains
|
|
||||||
### Ajout d'entrees par les admins
|
|
||||||
access to dn.regex="^ou=sambadomains,o=ls$"
|
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
|
||||||
by dn="uid=samba,ou=sysaccounts,o=ls" read
|
|
||||||
by users read
|
by users read
|
||||||
by * none
|
by * none
|
||||||
|
|
||||||
## Le reste
|
## Le reste
|
||||||
access to *
|
access to *
|
||||||
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
by group/lsgroup/uniqueMember="cn=adminldap,ou=groups,o=ls" write
|
||||||
|
by dn="uid=ldapsaisie,ou=sysaccounts,o=ls" write
|
||||||
by * none
|
by * none
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
# LSexample - Config
|
||||||
include /etc/ldap/schema/ls.schema
|
include /etc/ldap/schema/ls.schema
|
||||||
|
|
||||||
|
|
||||||
|
@ -14,10 +15,9 @@ index objectClass eq
|
||||||
index uid pres,eq
|
index uid pres,eq
|
||||||
index uidNumber eq
|
index uidNumber eq
|
||||||
index gidNumber eq
|
index gidNumber eq
|
||||||
index eeallowedservices eq
|
index lsallowedservices eq
|
||||||
index cn pres,eq
|
index cn pres,eq
|
||||||
index mail pres,eq
|
index mail pres,eq
|
||||||
index mailalternateaddress pres,eq
|
|
||||||
index sambasid eq
|
index sambasid eq
|
||||||
index sambaDomainName eq
|
index sambaDomainName eq
|
||||||
index memberUid eq
|
index memberUid eq
|
||||||
|
|
|
@ -53,3 +53,11 @@ dl.loginform {
|
||||||
float: right;
|
float: right;
|
||||||
margin-left: 1em;
|
margin-left: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#LSsession_lostPassword {
|
||||||
|
float: right;
|
||||||
|
font-size: 0.8em;
|
||||||
|
text-decoration: none;
|
||||||
|
color: #69c;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
60
trunk/templates/css/recoverpassword.css
Normal file
60
trunk/templates/css/recoverpassword.css
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
#recoverpasswordform-logo {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.recoverpasswordform {
|
||||||
|
margin: auto;
|
||||||
|
margin-top: 10%;
|
||||||
|
border: 1px solid #69c;
|
||||||
|
padding: 1em;
|
||||||
|
width: 30em;
|
||||||
|
background: transparent url(../images/login_fd.png) no-repeat scroll 98% 98%;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl.recoverpasswordform {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recoverpasswordform dt {
|
||||||
|
position: relative;
|
||||||
|
left: 0;
|
||||||
|
top: 1.1em;
|
||||||
|
width: 8em;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recoverpasswordform dd {
|
||||||
|
margin: 0 0 0 9em;
|
||||||
|
padding: 0 0 0em 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recoverpasswordform input, .recoverpasswordform select {
|
||||||
|
border: 1px inset #ccc;
|
||||||
|
width: 13em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.recoverpasswordform input[type='submit'] {
|
||||||
|
border: 1px outset #ccc;
|
||||||
|
width: 11em;
|
||||||
|
margin: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#loading_zone {
|
||||||
|
float: right;
|
||||||
|
margin-left: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#recoverpassword_msg {
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
#recoverpassword_back {
|
||||||
|
float: right;
|
||||||
|
font-size: 0.8em;
|
||||||
|
text-decoration: none;
|
||||||
|
color: #69c;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
|
@ -2,6 +2,7 @@
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
"http://www.w3.org/TR/html4/loose.dtd">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||||
<title>LdapSaisie{if $pagetitle != ''} - {$pagetitle}{/if}</title>
|
<title>LdapSaisie{if $pagetitle != ''} - {$pagetitle}{/if}</title>
|
||||||
<link rel="stylesheet" type="text/css" href="templates/css/login.css" media="screen" title="Normal" />
|
<link rel="stylesheet" type="text/css" href="templates/css/login.css" media="screen" title="Normal" />
|
||||||
{$LSsession_css}
|
{$LSsession_css}
|
||||||
|
@ -33,6 +34,7 @@
|
||||||
<dd><input type='submit' value='{$loginform_label_submit}' /></dd>
|
<dd><input type='submit' value='{$loginform_label_submit}' /></dd>
|
||||||
</dl>
|
</dl>
|
||||||
</form>
|
</form>
|
||||||
|
<a href='index.php?LSsession_recoverPassword' id='LSsession_lostPassword'>{$loginform_label_lostpassword}</a>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
41
trunk/templates/recoverpassword.tpl
Normal file
41
trunk/templates/recoverpassword.tpl
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||||
|
"http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||||
|
<title>LdapSaisie{if $pagetitle != ''} - {$pagetitle}{/if}</title>
|
||||||
|
<link rel="stylesheet" type="text/css" href="templates/css/recoverpassword.css" media="screen" title="Normal" />
|
||||||
|
{$LSsession_css}
|
||||||
|
{$LSsession_js}
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id='LSerror'>
|
||||||
|
{$LSerrors}
|
||||||
|
</div>
|
||||||
|
<div id='LSdebug'>
|
||||||
|
<a href='#' id='LSdebug_hidden'>X</a>
|
||||||
|
<div id='LSdebug_infos'>{if $LSdebug != ''}{$LSdebug}{/if}</div>
|
||||||
|
</div>
|
||||||
|
<div class='recoverpasswordform'>
|
||||||
|
<img src='templates/images/logo.png' alt='Logo' id='recoverpasswordform_logo' />
|
||||||
|
<div id='loading_zone'></div>
|
||||||
|
<form action='{$recoverpasswordform_action}' method='post'>
|
||||||
|
<dl class='recoverpasswordform'>
|
||||||
|
<dt {$recoverpasswordform_ldapserver_style}>{$recoverpasswordform_label_ldapserver}</dt>
|
||||||
|
<dd {$recoverpasswordform_ldapserver_style}>
|
||||||
|
<select name='LSsession_ldapserver' id='LSsession_ldapserver'>{html_options values=$recoverpasswordform_ldapservers_index output=$recoverpasswordform_ldapservers_name selected=$ldapServerId}</select>
|
||||||
|
</dd>
|
||||||
|
<dt>{$recoverpasswordform_label_user}</dt>
|
||||||
|
<dd><input type='text' name='LSsession_user' /></dd>
|
||||||
|
<dd><input type='submit' value='{$recoverpasswordform_label_submit}' /></dd>
|
||||||
|
</dl>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
{if recoverpassword_msg!=''}
|
||||||
|
<p id='recoverpassword_msg'>{$recoverpassword_msg}</p>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<a href='index.php' id='recoverpassword_back'>{$recoverpasswordform_label_back}</a>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in a new issue