Permission

interface Permission

一个抽象的「权限」. 由 PermissionService 实现不同, Permission 可能会有多种实例. 但一个权限总是拥有确定的 id.

在匹配权限时, 应使用唯一的 id 作为依据. 而不应该使用 Permission 实例. 同时, Permission 也不适合存储.

注意: 请不要手动实现这个接口. 总是从 PermissionService.register 获得实例.

获取 Permission

根权限

RootPermission 是所有权限的父权限.

指令的权限

每个指令都拥有一个 Command.permission.

BuiltInCommands.parentPermission 为所有内建指令的权限.

手动申请权限

PermissionService.register

Types

Companion
Link copied to clipboard
object Companion

Properties

description
Link copied to clipboard
abstract val description: String

描述信息. 描述信息在注册权限时强制提供.

id
Link copied to clipboard
abstract val id: PermissionId

唯一识别 ID. 所有权限的 id 都互不相同.

parent
Link copied to clipboard
abstract val parent: Permission

父权限.

Extensions

parentsWithSelf
Link copied to clipboard
val Permission.parentsWithSelf: Sequence<Permission>

递归获取 Permission.parent, permission.parent.parent, permission.parent.parent.parent` ... 直到 Permission.parent 为它自己.

testPermission
Link copied to clipboard
fun Permission.testPermission(permittee: Permittee): Boolean
fun Permission.testPermission(permitteeId: PermitteeId): Boolean