Authentification
On distingue deux modes pour obtenir une authentification :
- Un mode dit inPage qui utilise la zone principale de la page (
maincontent
) - Un mode qui utilise une fenêtre modale pour y gérer la connexion
Sommaire
Création du lien (ou bouton) qui permet l'authentification
Le principe est le suivant :
- Dans une page, on souhaite placer une zone qui hébergera :
- soit un lien de connexion qui va déclencher au choix une modale ou l'utilisation de la page entière
- soit un cartouche mentionnant le nom de la personne connectée (ou son login), et des liens divers (accès au profil, déconnexion, lien vers une page d'administration le cas échéant).
- Pour cela, on dispose de la fonction Aglae
connectionTrigger()
qui détermine le contenu de cette zone en fonction de l'existence ou non d'une connexion. L'appel à cette fonction est placé dans une division qui va utiliser les classes permettant de style cette zone.<div class="block right quarter rounded connexion"> <?php echo connectionTrigger(); ?> </div>
- La fonction
connectionTrigger
prend un paramètre prenant la valeur true/false :- true : la démarche de connexion se fera dans une modale (choix par défaut)
- false : la démarche de connexion a lieu en pleine page
Comment personnaliser les effets de cette fonction
Le cartouche de connexion est de la classe connexionArea
. Les divers styles applicables peuvent donc dépendre de cette classe.
- Si la connexion est déjà active, le cartouche utilise le template
signoutLink
, qui reçoit un paramètreconnectedAccount
, qui représente l'instance deSydonie_Account
du compte actif. Les différents liens sont placés dans une liste (<ul>
). - S'il n'y a pas de connexion en cours, la fonction appelle le template
signinLink
On peut, comme pour tout template, les modifier dans l'application, sur le chemin : SydonieEntity/Account/templates
.
gestion des styles associés
Tous les blocks liés aux formulaires de gestion des comptes et aux messages d'interface ont la classe account
.
Les formulaires ont la classe mainForm
ce qui permet un positionnement correct des labels et des contrôles.
Les messages en retour du système ont la classe uiMessage
. S'il s'agit d'un message d'erreur, les messages ont deux classes de style : uiMessage errorMessage
.
Une version de base des styles correspondants est intégrée dans la feuille de style sydonie.css
. On peut la modifier, ou la surcharger (préférable) dans une feuille nom_appli.css
création de comptes
En mode de base, la création de compte est réservée à l'administrateur du site.
Autoriser la création de compte par tout visiteur
<p>Le lien permettant la création de compte est :
http://monsite/account/newAccount
.
Pour autoriser cette action à tout visiteur. il convient de créer dans l'application le fichier suivant :
SydonieEntity/Account/actions/action_creation.php
et d'y écrire la règle suivante :
public function options_newAccount() { return array( 'isClassAction' => true, 'permissions' => CONTROLLER_ACTION_PUBLIC ); public function options_createAccount() { return array( 'isClassAction' => true, 'permissions' => CONTROLLER_ACTION_PUBLIC ); }
Création de compte par l'administrateur
L'administrateur peut créer un compte pour un futur usager par l'URL :
http://monsite/account/new
.
En mode interactif, cette action propose également un formulaire de création de compte. Mais on peut imaginer d'autres usages (par exemple, un simple formulaire de demande d'un mail, le mot de passe étant choisi de façon aléatoire). On peut également demander ou non l'envoi d'un message de validation à l'utilisateur.
Parrainage (création de compte par tout personne déjà enregistrée
Pour permettre la création par toute personne déjà enregistrée (parrainage), il faut ajouter dans l'application le fichier suivant :
SydonieEntity/Account/actions/action_manage.php
et y inscrire :
<?php class SydonieEntity_Account_action_manage extends Abstract_SydonieEntity_action_manage { public function options_new() { return array( 'isClassAction' => true, 'permissions' => CONTROLLER_ACTION_REGISTERED ); } ?>
Nota:
la fonction onSignin($controllerData) peut être définie dans Aglae si des actions doivent être faites lors de la connexion (redirection, etc)
Notes pour les développeurs
Les fichiers de Sydonie qui sont concernés par la gestion des comptes sont :
- Abstract_Action_AccountCreation (extends Abstract_Action)
- SydonieEntity_Account