synopsie/olymp-permission

允许以简化方式保存权限,无需通过plugin.yml或注册类。

v1.0.2 2024-08-08 10:32 UTC

This package is auto-updated.

Last update: 2024-09-08 10:40:44 UTC


README

API 允许以简化方式保存权限,无需通过 plugin.yml 或注册类。

📦 安装

  • 将仓库添加到文件 composer.json
composer require synopsie/olymp-permission

🛠 使用

  • 创建 PermissionManager 实例
$manager = new olymp\PermissionManager();
  • 创建包含我们权限的枚举类
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")
		};
	}
}
  • 注册枚举类
$manager->registerEnum(PermissionsBase::cases());
  • 创建包含权限的类
class PermissionsBase {
    public const PERMISSION_BASE = "synopsie.permission.base";
}

注意:类的常量必须以 PERMISSION_ 开头

  • 注册类
$manager->registerClass(new PermissionsBase());
  • 注册权限
$manager->registerPermission("synopsie.permission.base", 'synopsie.base'), DefaultPermissions::ROOT_USER)
  • 获取权限类型
$manager->getType($string);

Olymp