跳到主要内容
版本:🚧2.1.0

权限组

注册节点

将节点注册到 Serein 的权限管理器中,方便用户填写权限配置

不需要在节点内添加插件 Id

比如一个插件 Id 为 id,节点为 node,那么注册时只需要传入 node 即可,最终注册的节点为 id.node

namespace Serein.Core.Services.Permissions;

public partial class PermissionManager
{
public void Register(string id, string node, string? description = null);
}
参数类型说明
idstring插件Id
nodestring节点
descriptionstring?描述
示例
using Serein.Core.Services.Permissions;

var permissionManager = serviceProvider.GetRequiredService<PermissionManager>();
permissionManager.Register("id", "node", "description");

注销节点

将节点从 Serein 的权限管理器中删除

namespace Serein.Core.Services.Permissions;

public partial class PermissionManager
{
public void Unregister(string id, string node);
}
参数类型说明
idstring插件 Id
nodestring节点

添加权限组

using Serein.Core.Models.Permissions;

namespace Serein.Core.Services.Permissions;

public partial class GroupManager
{
public void Add(string id, Group group);
}
参数类型说明
idstring权限组 Id
groupGroup权限组对象

删除权限组

namespace Serein.Core.Services.Permissions;

public partial class GroupManager
{
public void Remove(string id);
}
参数类型说明
idstring权限组 Id

获取所有权限组Id

namespace Serein.Core.Services.Permissions;

public partial class GroupManager
{
public string[] Ids { get; }
}

获取或修改权限组

using Serein.Core.Models.Permissions;

namespace Serein.Core.Services.Permissions;

public partial class GroupManager
{
public Group this[string id] { get; set; }
}

计算指定用户的权限

using System.Collections.Generic;

namespace Serein.Core.Services.Permissions;

public partial class GroupManager
{
public Dictionary<string, bool?> GetAllPermissions(
long userId,
bool ignoreWildcard = false
);
}
参数类型说明
userIdlong用户 Id
ignoreWildcardbool是否忽略通配符

备注

ignoreWildcardfalse时,将会计算通配符权限,具体行为如下

如果用户拥有A.*权限,那么用户也拥有A节点权限和以A.开头的所有节点权限

此处的所有节点来自于注册的节点