Note :
Ce module contient de nombreuses fonctions qui sont utilisées par l'interface de gestion des droits.
Fonction de manipulation d'utilisateur :
- auth_newuser : créer un nouvel utilisateur
- auth_deluser : supprime un utilisateur
- auth_setprivuser : définit le niveau de privilège d'un utilisateur sur une ou plusieurs zones
-
auth_listuser
: lister les comptes utilisateurs de Templeet
auth_listuserfld : renvoie une propriété d'un compte utilisateur listé par la fonction auth_listuser
auth_nbrows : renvoie le nombre de comptes utilisateur sélectionnés par la fonction auth_listuser -
authlist
: lister les propriétés d'un compte
authfld : renvoie la valeur d'une propriété d'un compte listé par la fonction authlist - auth_passwd : modifie le mot de passe d'un utilisateur
- auth_loginnick : modifie l'identifiant de connexion (login) et le pseudo (nickname) d'un utilisateur
- auth_newmail : demande de modification d'adresse électronique d'un utilisateur
- auth_setnewmail : validation de la demande de modification de l'adresse électronique d'un utilisateur
Fonction de manipulation des zones :
- auth_newarea : création d'une nouvelle zone
- auth_delarea : suppression d'une zone
- auth_setarea : modification du champ label d'une zone
-
auth_listarea
: lister les zones existantes
auth_listareafld : renvoie la valeur d'une propriété d'une zone listé par la fonction auth_listarea
Fonction de gestion de validation des comptes :
- auth_validmode : renvoie le mode de validation courant
- auth_validaccount : valide un compte précédemment créé
- auth_setconfvalid : modifie le mode de validation courant des comptes

Interface utilisateur
Le principe de fonctionnement de l'authentification Templeet est expliqué dans le module auth.
L'interface utilisateur est accessible à cette adresse:
http://rootix.free.fr/auth/
Avant toute utilisation de l'authentification de Templeet il est nécessaire de :
- Configurer Templeet
- Changer le mot de passe d'administration de Templeet
Cette interface peut être utilisée par toute personne ayant des droits d'édition de privilèges, c'est à dire tous les administeurs ainsi que les personnes ayant un droit d'édition de zone ou un droit de délégation de zone.
La configuration de Templeet ne peut être effectuée que par un administrateur Templeet.
A l'installation de Templeet la méthode d'authentification par défaut est la méthode fichier (file). Un seul compte existe : ADMIN (le mot de passe est celui que vous indiquez juste après l'installation). Ce compte possède le privilège administrateur et permet de configurer Templeet.
La configuration de Templeet se fait ici:
Méthode d'authentification
Le choix de la méthode d'authentification se fait avec
La méthode actuelle d'authentification: file
Les méthodes actuellement disponibles sont:
- db
- file
Validation des comptes
Le choix du mode de validation des comptes se fait avec
Pour être utilisable un compte doit être validé. Le mode de validation des comptes permet de choisir l'état d'un compte à sa création. Les états possibles sont:
- Non : les comptes doivent être validés par un administrateur.
- Oui : les comptes sont valides immédiatement.
- A Confirmer : les comptes doivent être validés par l'utilisateur avec un code qui lui est envoyé par mail. Ce mode ne fonctionne que si le serveur possède un système de mail correctement configuré.
- Double confirmation : les comptes créés doivent être validés par l'utilisateur sur réception d'un mail contenant le code d'activation. Les comptes doivent ensuite être validés par un administrateur
~auth_newuser
Cette fonction permet de créer un nouvel utilisateur.
Elle prend six paramètres minimum :
- user : nom du compte à créer
- password : mot de passe du compte à créer
- privateinfo : tableau contenant les données personnelles du compte (todo : à compléter)
- email : adresse mail du compte
- subject : sujet du mail à envoyerr
- message : message du mail à envoyer
- confirm : 1 pour forcer la validation du compte dès sa création
- area, niveau : couple(s) de deux arguments dont le premier est le nom d'une zone, et le second le niveau de droit qui sera attribué au compte
Si la valeur de retour de la fonction est supérieur à 0, celle-ci correspond au numéro d'index de l'utilisateur qui vient d'être créé.
Code d'erreur renvoyé par la fonction :
- -3 : user déja existant
- -101 : user ou password mal formaté
- -102 : erreur lors de l'envoi du mail
- -113 : email invalide (mal formé)
- -115 : zone inexistante, ou bien vous n'avez pas le droit de définir les droits sur cette zone
- -200 : deuxième argument manquant dans la définition du droit d'accès d'une zone
Exemple d'utilisation de ~auth_newuser :
~set("user", "newpseudo"") ~set("password", "password") ~set("email", "email@templeet.org") ~set("newuser", ~auth_newuser(~get("user"), ~get("password"),, ~get("email"), "Création d'un compte", 'Bonjour, Vous avez demandé la création d'un compte sur ~getconf("site_url") Pour valider cette demande vous devez charger cette page : ~getconf("site_url")~absolute_templeet()my_account/validaccount,~get("user"),~get("auth_validkey").html ')) ~if(~get("newuser") >=0 ,'Un nouveau compte ayant ~get("user") comme login a bien été créé', 'Un problème est survenu lors de la création de l\'utilisateur')
~auth_deluser
Cette fonction permet de supprimer un utilisateur.
La fonction prend un seul paramètre :
- uid : numéro uid du compte à supprimer
Code d'erreur renvoyé par la fonction :
- -4 : vous devez avoir un droit administrateur pour effectuer cette opération
- -105 : impossible d'utiliser cette fonction car l'utilisateur n'est pas connecté
Exemple d'utilisation de la fonction ~auth_deluser :
~auth_deluser(8041247)
~auth_setprivuser
Cette fonction permet définir le niveau de privilège d'un utilisateur sur une ou plusieurs zones.
Elle prend deux paramètres :
- uid : numéro d'index de l'utilisateur à modifier
- privarea : tableau contenant les nouveaux privilèges (voir ci-dessous la structure de ce tableau)
Chaque clé du tableau privarea correspond à une zone, et la valeur de cette clé correspond au niveau de privilège. Une zone est identifiée comme ceci : "{numéro_uid_du_propriétaire_de_la_zone}nom_de_la_zone".
NOTE : la valeur uid du compte ADMIN est 0
Code d'erreur renvoyé par la fonction :
- -103 : utilisateur non identifié (un comtpe doit être ouvert pour effectuer des changements de privilège)
Exemple d'utilisation de ~auth_setprivuser :
~auth_setprivuser(1065486181, ~array( '{413980100}zone1' => 4, '{413980100}zone2' => 0, '{0}zoneA' => 9 ) )
~auth_listuser
~auth_listuser permet de lister les comptes utilisateurs de Templeet. Les informations relatives à ces utilisateurs sont renvoyées par la fonction ~auth_listuserfld.
La fonction prend au minimum quatre arguments :
- Le regexp des utilisateurs (ex: "/^A/")
- Indice (à partir du N ième utilisateur)
- Nombre d'utilisateurs à traiter
- Couple(s) de deux arguments, dont le premier élément peut être : LF, LM, LL, L1 ou LD. Le second argument sera évalué si la condition définie par le premier argument est vérifiée.
Code d'erreur renvoyé par la fonction :
- -8 : la valeur de regexp est invalide
- -12 : les arguments indice et nombre doivent être de type numérique
- -103 : impossible d'utiliser cette fonction car l'utilisateur n'est pas connecté
- -200 : erreur de paramètre
- -1000 : erreur de requête
~auth_listuserfld
~auth_listuserfld renvoie la valeur d'un champ de l'utilisateur listé par la fonction ~auth_listuser.
La fonction prend un seul argument. Celui-ci peut être :
- user : nom du compte
~auth_nbrows
Cette fonction renvoie le nombre de comptes utilisateur selectionnés par la fonction auth_listuser.
Attention : cette fonction doit être à l'intérieur de la commande ~auth_listuser.
Exemple d'utilisation des commandes ~auth_listuser, ~auth_listuserfld et ~auth_nbrows :
<p>Liste des utilisateurs :</p> ~auth_listuser("", 0,, "LF", '<p>Nombre d'utilisateur : ~auth_nbrows()</p>', "LM", '~auth_listuserfld("user")<br />')
~authlist
~authlist permet de lister les propriétés d'un compte. Les informations relatives à ces propriétés sont renvoyées par la fonction ~authfld.
La fonction prend quatre arguments au minimum :
- userarea : utilisateur propriétaire des zones à lister
- user : utilisateur à traiter
- Couple(s) de deux arguments, dont le premier élément peut être : LF, LM, LL, L1 ou LD. Le second argument sera évalué si la condition définie par le premier argument est vérifié.
Code d'erreur renvoyé par la fonction :
- -103 : impossible d'utiliser cette fonction car l'utilisateur n'est pas connecté
- -200 : erreur de paramètre
~authfld
~authfld renvoie la valeur de la propriété d'un compte listé par la fonction ~authlist.
La fonction prend un seul argument. Celui-ci peut être :
- user : nom du compte
- valid : état de validité du compte :
- -2 : Non, Email OK
- -1 : Non
- 0 : à confirmer
- 1 : Oui (confirmé)
- email : adresse mail du compte
- ipaddr : adresse ip du compte
- creation : date de création du compte (format : AAAAMMJJhhmm)
- uid : numéro d'identifiant du compte
- area : nom de la zone
- name : valeur du label de la zone
- val : niveau de droit de l'utilisateur dans la zone
- select : à documenter ...
Exemple d'utilisation des commandes ~authlist et ~authfld :
~authlist("ADMIN", "LF",' user : ~authfld("user"),<br />c email :~authfld("email"),<br /> valid : ~authfld("valid"),<br /> ipaddr :~authfld("ipaddr"),<br /> creation : ~authfld("creation"),<br /> uid : ~authfld("uid")',<br /> "LM",' Nom de la zone : ~authfld("area"),<br /> Label de la zone : ~authfld("name"),<br /> Niveau de droit de l\'utilisateur sur cette zone : ~authfld("val"),<br /> ')
~auth_passwd
Cette fonction permet de modifier le mot de passe d'un utilisateur
La fonction prend trois arguments :
- uid : numéro uid de l'utilisateur à modifier (seul les comptes administrateur peuvent modifier le mot de passe d'un autre utilisateur)
- oldpassword : ancien mot de passe
- newpassword : nouveau mot de passe
Code d'erreur renvoyé par la fonction :
- -1 : utilisateur inexistant
- -5 : ancien mot de passe invalide
- -105 : impossible d'utiliser cette fonction car l'utilisateur n'est pas connecté
- -106 : le nouveau password ne peut pas être une chaîne vide
- -107 : vous ne pouvez pas modifier le mot de passe de cette utilisateur
Exemple d'utilisation de la fonction ~auth_passwd :
~auth_passw(1065486181, "ancienmotdepasse", "nouveaumotdepasse")
~auth_loginnick
Cette fonction permet de modifier l'identifiant de connexion (login) et le pseudo (nickname) d'un utilisateur.
La fonction prend trois arguments :
- uid : numéro uid de l'utilisateur à modifier
- login : nouvel identifiant de connexion
- nickname : nouveau pseudo
Code d'erreur renvoyé par la fonction :
- -1 : utilisateur inexistant
- -107 : vous n'avez pas le droit d'utiliser cette fonction
- -118 : login ou nickname mal formaté
Exemple d'utilisation de la fonction ~auth_loginnick :
~auth_loginnick(1065486181, "nouveaupseudo", "nouveaunickname")
~auth_newmail
Cette fonction permet d'effectuer une demande de modification de l'adresse électronique d'un utilisateur.
La fonction prend trois paramètres :
- email : nouvelle adresse électronique
- subject : sujet du message électronique envoyé
- message : message du message électronique envoyé
Dans le corps du message vous avez accès aux variables suivantes :
- auth_email : qui contient la nouvelle adresse électronique
- auth_validkey : qui contient un code d'activation utilisé par la fonction ~auth_setnewmail
Code d'erreur renvoyé par la fonction :
- -102 : erreur lors de l'envoi du message électronique
- -103 : impossible d'utiliser cette fonction car l'utilisateur n'est pas connecté
Exemple d'utilisation de la fonction ~auth_newmail :
~auth_newmail("newmail@domain.org", 'Changement de votre adresse email', 'Bonjour, Vous avez demandé le changement de votre adresse email. Pour valider cette demande vous devez charger cette page : ~getconf('site_url')~absolute_templeet()my_account/setnewemail,~get("auth_uid"),~get("auth_email"),~get("auth_validkey").html -- Ce site est géré par Templeet ')
~auth_setnewmail
Cette fonction permet de valider la demande de modification de l'adresse électronique d'un utilisateur.
La fonction prend trois paramètres :
- uid : numéro uid de l'utilisateur à modifier
- email : nouvelle adresse électronique
- key : code d'activation
Code d'erreur renvoyé par la fonction :
- -6 : le code d'activation est invalide
- -103 : : impossible d'utiliser cette fonction car l'utilisateur n'est pas connecté
Exemple d'utilisation de la fonction ~auth_setnewmail :
Cet exemple utilise les paramètres transmis à la page my_account/setnewemail.html de l'exemple de la fonction ~auth_newmail
~auth_setnewmail( ~get_filenamevar(1), --> ce paramètre contient la valeur de ~get("auth_uid") ~get_filenamevar(2), --> ce paramètre contient la valeur de ~get("auth_email") ~get_filenamevar(3) --> ce paramètre contient la valeur de ~get("auth_validkey") )
~auth_newarea
Cette fonction permet de créer une nouvelle zone.
La fonction prend trois paramètres :
- uid : numéro uid de l'utilisateur qui sera propriétaire de la zone à créer
- areaname : nom de la zone
- arealabel : nom littéral de la zone
Code d'erreur renvoyé par la fonction :
- -108 : paramètre areaname mal formaté
- -109 : paramètre arealabel mal formaté
- -110 : une zone porte déjà le même nom (areaname)
- -117 : vous ne pouvez pas créer une nouvelle zone car le nombre maximal de zones a été atteint
Exemple d'utilisation de la fonction ~auth_newarea :
~auth_newarea(4577458, "area_foo", "This is the foo area")
~auth_delarea
Cette fonction permet de supprimer une zone.
La fonction prend deux paramètres :
- uid : numéro uid de l'utilisateur a qui appartient la zone à supprimer
- areaname : nom de la zone à supprimer
Code d'erreur renvoyé par la fonction :
- -108 : paramètre areaname mal formaté
- -111 : impossible de supprimer la zone "admin" du compte 0 (administrateur)
Exemple d'utilisation de la fonction ~auth_delarea :
~auth_delarea(4577458, "area_foo")
~auth_setarea
Cette fonction permet de modifier le champ label d'une zone.
La fonction prend trois paramètres :
- uid : numéro uid de l'utilisateur propriétaire de la zone à modifier
- areaname : nom de la zone à modifier
- arealabel : nouvelle valeur du label (nom littéral) de la zone
Code d'erreur renvoyé par la fonction :
- -108 : paramètre areaname mal formaté
- -109 : paramètre arealabel mal formaté
Exemple d'utilisation de la fonction ~auth_setarea :
~auth_setarea(4577458, "area_foo", "newname")
~auth_listarea
~auth_list permet de lister les zones existantes. Les informations relatives à ces zones sont renvoyées par la fonction ~auth_listareafld.
La fonction prend trois arguments au minimum :
- user : propriétaire des zones à lister
- Couple(s) de deux arguments, dont le premier élément peut être : LF, LM, LL, L1 ou LD. Le second argument sera évalué si la condition définie par le premier argument est vérifiée.
Code d'erreur renvoyé par la fonction :
- -103 : aucun utilisateur identifié
- -200 : erreur de paramètre
~auth_listareafld
~auth_listareafld renvoie la valeur d'un champ de la zone listé par la fonction ~auth_listarea.
La fonction prend un seul argument. Celui-ci peut être :
- name : nom de la zone
- label : label de la zone
Exemple d'utilisation des commandes ~auth_listarea et ~auth_listareafld :
~getauth('', -1) ~auth_listarea("ADMIN", "LD", "pas de zone", "LM", '~auth_listareafld("name"), ~auth_listareafld("label")<br />')
~auth_validmode
Cette fonction renvoie le mode de validation courant.
- valeur "YES" qui correspond au mode "Oui" : les comptes sont valides immédiatement.
- valeur "NO" qui correspond au mode "Non" : les comptes doivent être validés par un administrateur.
- valeur "CONFIRM" qui correspond au mode "A Confirmer" : les comptes doivent être validés par l'utilisateur avec un code qui lui est envoyé par mail. Ce mode ne fonctionne que si le serveur possède un système de mail correctement configuré.
- valeur "CONFADMIN" qui correspond au mode "Double confirmation" : les comptes créés doivent être validés par l'utilisateur sur réception d'un mail contenant le code d'activation. Les comptes doivent ensuite être validés par un administrateur.
Exemple d'utilisation de la commandes ~auth_validmode :
Mode de validation des comptes Templeet actuel : ~auth_validmode()
~auth_validaccount
~auth_validaccount permet de valider un compte précédemment créé.
La fonction prend 3 arguments au minimum :
- user : nom du compte à valider
- key : clé
- password : mot de passe du compte à valider
- subject : sujet du mail à envoyer à l'administrateur du site
- message : message du mail à envoyer à l'administrateur du site
Information : en mode de validation CONFADMIN, un mail est envoyé à l'administateur du site pour l'informer qu'un compte a été créé afin qu'il le valide.
Code d'erreur renvoyé par la fonction :
- -1 : utilisateur non inexistant.
- -6 : clé non valide.
- -102 : problème lors de l'envoi du mail
Exemple d'utilisation de la commandes ~auth_validaccount :
~set("res", ~auth_validaccount(~get("user"), ~get("key"),, "Nouvel utilisateur : ~get("user")", 'L\'utilisateur ~get("user") a confirmé sont inscription. Vous devez maintenant valider son compte pour qu'il soit actif. ')) ~if(~get("res")==0, 'Votre demande de compte a été confirmée', 'Une erreur s\'est produite lors de la validation de votre compte')
~auth_setconfvalid
Cette fonction permet de modifier le mode de validation courant des comptes
Cette fonction prend un seul paramètre :
- valid : mode de validation à paramétrer,
celui-ci peut être :
- "YES" : voir correspondance dans la documentation de la fonction ~auth_validmode
- "NO" : voir correspondance dans la documentation de la fonction ~auth_validmode
- "CONFIRM" :voir correspondance dans la documentation de la fonction ~auth_validmode
- "CONFADMIN" : voir correspondance dans la documentation de la fonction ~auth_validmode
Code d'erreur renvoyé par la fonction :
- -104 : le paramètre mode est invalide
- -116 : impossible de sélectionner le mode CONFADMIN car l'adresse électronique de l'administrateur est indéfini
Exemple d'utilisation de la fonction ~auth_setconfvalid
~auth_setconfvalid("YES")