Skip to content

API allowing to save permissions in a simplified way, without going through the plugin.yml or registering classes.

License

Notifications You must be signed in to change notification settings

Synopsie/Olymp-Permisison

Repository files navigation

Olymp-Permission ⛔

API permettant de sauvegarder les permissions de manière simplifiée, sans passer par le plugin.yml ni enregistrer de classes.

📦 Installation

  • Ajouter le repository dans le fichier composer.json
composer require synopsie/olymp-permission

🛠 Usage

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

Olymp

About

API allowing to save permissions in a simplified way, without going through the plugin.yml or registering classes.

Topics

Resources

License

Stars

Watchers

Forks

Languages