跳到主要内容
版本:2.x

权限组

注册节点

将节点注册到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; }
}

计算指定用户的权限

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.开头的所有节点权限

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