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);
 | 
						|
}
 |