Account presentation

De Wiki.

Sommaire

Principes

Le module Account permet de gérer des comptes utilisateurs sur le principe 'un compte, une adresse'.

Il propose en standard les fonctionnalités suivantes :

  • Confirmation ou pas de la création du compte par retour d'email.
  • Génération d'un nouveau mot de passe aléatoire en cas d'oubli.
  • Renvoi possible vers une URL personnalisée au retour d'email de confirmation de création.
  • Gestion automatisée du compte client si on ne veut pas qu'il y ait une zone "mon compte" où il pourrait le faire lui-même.
  • Cryptage MD5 ou SHA1 des mots de passe avant stockage en BDD (le mot de passe est illisible après création, seule la version cryptée peut être comparée).

Fonctionnement

Le Contrôleur gère l'ensemble des action possibles autour de ce module au moyen de la variable <action> (GET ou POST).

Il effectue les créations, activations, vérifications, mises à jour et s'occupe d'informer les utilisateurs par email (au moyen d'un message préformaté si une vue personnalisée n'a pas été fournie pour le type de message concerné).

Une fois authentifié, la session de l'utilisateur est peuplée des valeurs suivantes :

  • $_SESSION['account']['id']
  • $_SESSION['account']['email']

Paramétrage

Les constantes suivantes permettent de paramétrer le module  :

 // MODULE ACCOUNT
 
 define("ACCOUNT_EDITABLE", true);				// member handles his account data (my account pages)
 define("ACCOUNT_PWD_ENCRYPT", 'MD5');				// password encryption (<empty>/MD5/SHA1)
 define("ACCOUNT_ASYNC_ACTIVATE", true);			// use account email activation procedure
 define("ACCOUNT_USE_ADDRESS", true);				// use address extension to account data
 define("ACCOUNT_CHANGE_LOGIN", true);				// member may edit his login email to change it
 define("ACCOUNT_ADMIN_EMAIL", 'webmaster@website.com');	// administrative email for account issues

Evolutions

Le module Account est à la base des services de gestion des comptes clients du module Webshop.

Il peut également bénéficier des possibilités d'héritage des classes pour développer des fonctionnalités plus personnalisées.