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