Dernière mise à jour : 04/03/2023 à 06h12
Table des matières
Informations de l'utilisateur
Pour récupérer une instance de la classe CurrentUser il suffit d'utiliser AppContext :
Code PHP :
AppContext::get_current_user()
Un certain nombre d'informations peuvent ensuite être récupérées grâce à cette classe :
Code PHP :
$user = AppContext::get_current_user(); $user->get_id(); // Identifiant de l'utilisateur $user->get_display_name(); // Nom d'affichage de l'utilisateur $user->get_email(); // Email de l'utilisateur $user->get_show_email(); // Autorisation d'afficher ou non l'email de l'utilisateur $user->get_level(); // RangRetourne une des valeurs suivantes en fonction du rang de l'utilisateur : User::VISITOR_LEVEL, User::MEMBER_LEVEL, User::MODERATOR_LEVEL, User::ADMIN_LEVEL $user->get_locale(); // Langue de l'utilisateur $user->get_theme(); // Thème de l'utilisateur $user->get_timezone(); // Fuseau horaire de l'utilisateur $user->get_editor(); // Éditeur de texte de l'utilisateur $user->get_groups(); // Groupes de l'utilisateur
Gestion des autorisations
Vérification du rang
Un utilisateur a un rang, qui lui est assigné, qui peut aller de visiteur à administrateur.
Pour vérifier s'il a bien le rang pour accéder à une page, il faut procéder ainsi :
Code PHP :
if (!AppContext::get_current_user()->check_level(User::MEMBER_LEVEL)) { echo 'Tu n\'es pas membre, donc tu es un visiteur !'; }
Vérification sur les groupes
La gestion des groupes est à la base de la puissance du système d'autorisations sur PHPBoost. Vous pouvez donner des droits en plus des rangs. Ces droits peuvent être donnés à des utilisateurs d'un groupe, et même membre par membre.
La gestion des autorisations est basée sur les opérateurs de bits. Sachant que la majorité des serveurs fonctionnent sur des architectures 32 bits (bien que les architectures 64 bits commencent à se démocratiser) nous pourrons gérer 32 types d'autorisations en une seule variable (il est fortement recommandé de ne pas dépasser ce nombre pour ne pas avoir des dépassements de capacité sur les architectures 32 bits).
Dans les cas où l'on souhaite gérer plus de 31 autorisations (très très rare) il faudra gérer les droits en plusieurs variables.
Stockage des règles pour chaque action
Commençons par un schéma représentant la façon dont un ordinateur stocke des nombres (l'exemple est pris en architecture 32 bits).
Comme nous l'avons vu nous pouvons traiter les autorisations par séries de 31. Chaque règle (de 1 à 31) est repérée par son numéro et correspond au bit qui est à 1 si l'action est permise ou 0 sinon. Voici un schéma illustrant le stockage des autorisations de chaque utilisateur.
Utilisation :
Code PHP :
AppContext::get_current_user()->check_auth($tableau, $bit)