权限组
注册节点
将节点注册到 Serein 的权限管理器中,方便用户填写权限配置
不需要在节点内添加插件 Id
比如一个插件 Id 为 id,节点为 node,那么注册时只需要传入 node 即可,最终注册的节点为 id.node
- C#
 - JavaScript
 
namespace Serein.Core.Services.Permissions;
public partial class PermissionManager
{
    public void Register(string id, string node, string? description = null);
}
| 参数 | 类型 | 说明 | 
|---|---|---|
id | string | 插件Id | 
node | string | 节点 | 
description | string? | 描述 | 
示例
using Serein.Core.Services.Permissions;
var permissionManager = serviceProvider.GetRequiredService<PermissionManager>();
permissionManager.Register("id", "node", "description");
serein.permissions.register(node: string, description: string = null): void
| 参数 | 类型 | 说明 | 
|---|---|---|
node | string | 节点 | 
description | string | null | 描述 | 
注销节点
将节点从 Serein 的权限管理器中删除
- C#
 - JavaScript
 
namespace Serein.Core.Services.Permissions;
public partial class PermissionManager
{
    public void Unregister(string id, string node);
}
| 参数 | 类型 | 说明 | 
|---|---|---|
id | string | 插件 Id | 
node | string | 节点 | 
serein.permissions.unregister(node: string): void
| 参数 | 类型 | 说明 | 
|---|---|---|
node | string | 节点 | 
添加权限组
- C#
 - JavaScript
 
using Serein.Core.Models.Permissions;
namespace Serein.Core.Services.Permissions;
public partial class GroupManager
{
    public void Add(string id, Group group);
}
| 参数 | 类型 | 说明 | 
|---|---|---|
id | string | 权限组 Id | 
group | Group | 权限组对象 | 
serein.permissions.groups.add(id: string, group: Group): void
| 参数 | 类型 | 说明 | 
|---|---|---|
id | string | 权限组 Id | 
group | Group | 权限组对象 | 
删除权限组
- C#
 - JavaScript
 
namespace Serein.Core.Services.Permissions;
public partial class GroupManager
{
    public void Remove(string id);
}
| 参数 | 类型 | 说明 | 
|---|---|---|
id | string | 权限组 Id | 
serein.permissions.groups.remove(id: string): void
| 参数 | 类型 | 说明 | 
|---|---|---|
id | string | 权限组 Id | 
获取所有权限组Id
- C#
 - JavaScript
 
namespace Serein.Core.Services.Permissions;
public partial class GroupManager
{
    public string[] Ids { get; }
}
serein.permissions.groups.ids
- 类型
string[]
 
获取或修改权限组
- C#
 - JavaScript
 
using Serein.Core.Models.Permissions;
namespace Serein.Core.Services.Permissions;
public partial class GroupManager
{
    public Group this[string id] { get; set; }
}
serein.permissions.groups[id: string]: Group
计算指定用户的权限
- C#
 - JavaScript
 
using System.Collections.Generic;
namespace Serein.Core.Services.Permissions;
public partial class GroupManager
{
    public Dictionary<string, bool?> GetAllPermissions(
        long userId, 
        bool ignoreWildcard = false
    );
}
| 参数 | 类型 | 说明 | 
|---|---|---|
userId | long | 用户 Id | 
ignoreWildcard | bool | 是否忽略通配符 | 
serein.permissions.groups.getAllPermissions(
    userId: number,
    ignoreWildcard: boolean = false
    ): Record<string, boolean | null>
| 参数 | 类型 | 说明 | 
|---|---|---|
userId | number | 用户 Id | 
ignoreWildcard | boolean | 是否忽略通配符 | 
| 返回值类型 | 说明 | 
|---|---|
Record<string, boolean | null> | 包含此用户的所有权限值的字典 | 
备注