API permettant de sauvegarder les permissions de manière simplifiée, sans passer par le plugin.yml ni enregistrer de classes.
- Ajouter le repository dans le fichier
composer.json
composer require synopsie/olymp-permission
- Créer une instance de
PermissionManager
$manager = new olymp\PermissionManager();
- Création d'une classe enum contenant nos permissions
enum PermissionsBase : string {
case PERMISSION_BASE = "synopsie.permission.base";
/**
* @throws MissingPermissionException
*/
public static function getPermission(string $permissionName) : string {
return match ($permissionName) {
'base' => self::PERMISSION_BASE->value,
default => throw new MissingPermissionException("Permission $permissionName not found")
};
}
}
- Enregistrement de la classe enum :
$manager->registerEnum(PermissionsBase::cases());
- Création d'une classe contenant les permissions
class PermissionsBase {
public const PERMISSION_BASE = "synopsie.permission.base";
}
⚠ Attention : Il est impératif que la const commence par PERMISSION_
- Enregistrement de la classe
$manager->registerClass(new PermissionsBase());
- Enregistrement d'une permission
$manager->registerPermission("synopsie.permission.base", 'synopsie.base'), DefaultPermissions::ROOT_USER)
- Avoir le type d'un permission
$manager->getType($string);