> Votre_premier_gestionnaire_de_droits
fr

Objectifs

L'objectif de ce tutoriel est de vous permettre de créer rapidement un gestionnaire de droits simple. Nous vous invitons, si ce n'est déjà fait, de suivre le tutoriel Votre premier gestionnaire d'authentification.

Introduction

Pour ce tutoriel, nous allons ajouter des éléments au module auth (situé dans project/module/public/standard/auth)

Création de nos classes

Dans le répertoire classe du module auth, créez un fichier simplecredentialhandler.class.php. A l'intérieur de ce fichier on crée la classe suivante :


class SimpleCredentialHandler implements ICopixCredentialHandler {

}
 

Cette classe implémente l'interface ICopixCredentialHandler qui définit la fonction de vérification des droits, assert.

Ajoutons à notre classe cette fonction



class SimpleCredentialHandler implements ICopixCredentialHandler {

  public function assert ($pStringType, $pString, $pUser){
  }

}
 

Pour information : la fonction assert prend trois arguments : - pStringType : Le type de droit (basic ou autre) - pString : La chaine de droit à tester - pUser : L'utilisateur dont on teste les droits.

assert renvoie vrai si la chaine de droit est vérifiée, faux sinon.

Vous pouvez désormais coder la fonction de vérification. Par exemple, pour tous les types de vérifications, on renvoie vrai si le login de l'utilisateur est égal à toto.


  public function assert ($pStringType, $pString, $pUser){
    if ($pUser->getLogin() == 'toto') {
      return true;
    } else {
      return false;
    }
  }
 

Modification de la configuration

Enfin il suffit de modifier la configuration pour prendre en compte votre nouveau gestionnaire de droits.


$config->copixauth_registerCredentialHandler (array ('name'=>'admin|simplecredentialhandler', 'stopOnSuccess'=>true,
                                          'stopOnFailure'=>false,
                                          'handle'=>'all'));
 

Pour aller plus loin

A partir de cet exemple simple, vous pouvez aller plus loin en changeant le référentiel (par exemple, un annuaire LDAP). N'hésitez pas à nous faire part de vos essais et Happy Copix!