Authentification

De Sydonie

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

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ètre connectedAccount, qui représente l'instance de Sydonie_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