89 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace nur\b\authnz;
 | |
| 
 | |
| /**
 | |
|  * Interface IAuthz: interface modélisant un utilisateur connecté et ses
 | |
|  * autorisations
 | |
|  */
 | |
| interface IAuthzUser {
 | |
|   /**
 | |
|    * tester si cette instance est valide, c'est à dire si elle correspond à
 | |
|    * un utilisateur valide. cette méthode retourne normalement toujours true.
 | |
|    */
 | |
|   function isValid(): bool;
 | |
| 
 | |
|   /**
 | |
|    * obtenir le compte de l'utilisateur, ou "INVALID" si cette instance est
 | |
|    * invalide
 | |
|    */
 | |
|   function getUsername(): string;
 | |
| 
 | |
|   /** vérifier si le mot de passe fourni est correct */
 | |
|   function validatePassword(string $password): bool;
 | |
| 
 | |
|   /**
 | |
|    * obtenir le nom complet de l'utilisateur ou null si l'information n'est pas
 | |
|    * disponible.
 | |
|    */
 | |
|   function getDisplayName(): ?string;
 | |
| 
 | |
|   /**
 | |
|    * obtenir le nom abrégé de l'utilisateur ou null si l'information n'est pas
 | |
|    * disponible.
 | |
|    */
 | |
|   function getShortName(): ?string;
 | |
| 
 | |
|   /**
 | |
|    * obtenir le mail de l'utilisateur ou null si l'information n'est pas
 | |
|    * disponible.
 | |
|    */
 | |
|   function getMail(): ?string;
 | |
| 
 | |
|   /** @var string rôle virtuel d'un utilisateur qui n'est pas authentifié */
 | |
|   const ROLE_ANON = "@anon";
 | |
|   /** @var string rôle virtuel d'un utilisateur qui est authentifié */
 | |
|   const ROLE_AUTH = "@auth";
 | |
|   /**
 | |
|    * @var string rôle virtuel d'un utilisateur qui a un rôle principal ou au
 | |
|    * moins une permission attribuée
 | |
|    */
 | |
|   const ROLE_AUTHZ = "@authz";
 | |
| 
 | |
|   /**
 | |
|    * obtenir le rôle principal de l'utilisateur ou null si l'utilisateur n'a pas
 | |
|    * de rôle en particulier. un utilisateur ne peut avoir qu'un seul rôle
 | |
|    * principal.
 | |
|    *
 | |
|    * le rôle principal ne peut pas être un rôle virtuel
 | |
|    */
 | |
|   function getRole(): ?string;
 | |
| 
 | |
|   /**
 | |
|    * l'utilisateur a-t-il le rôle spécifié, qu'il soit principal ou virtuel?
 | |
|    *
 | |
|    * - si $role === null, retourner true
 | |
|    * - $role peut être un tableau auquel cas on vérifie si l'utilisateur a au
 | |
|    * moins un des rôles spécifiés
 | |
|    *
 | |
|    * @param string|array $role
 | |
|    */
 | |
|   function isRole($roles): bool;
 | |
| 
 | |
|   /**
 | |
|    * l'utilisateur a-t-il la permission spécifiée?
 | |
|    *
 | |
|    * - si $perm === null, retourner true
 | |
|    * - $perm peut être un tableau auquel cas on vérifie si l'utilisateur a au
 | |
|    * moins une des permissions spécifiées
 | |
|    *
 | |
|    * @param string|array $perm
 | |
|    */
 | |
|   function isPerm($perms): bool;
 | |
| 
 | |
|   /** tester si une clé générique est présente */
 | |
|   function has($key): bool;
 | |
| 
 | |
|   /** obtenir la valeur d'une clé générique */
 | |
|   function get($key, $default=null);
 | |
| }
 |