using Abp.Authorization;
using VberZero.BaseSystem.Users;
namespace VberZero.Authorization.Users;
///
/// 用户执行权限操作数据库
///
public interface IUserPermissionStore
where TUser : User
{
///
/// 向用户添加权限
///
///
///
Task AddPermissionAsync(TUser user, PermissionGrantInfo permissionGrant);
///
/// 向用户添加权限
///
///
///
void AddPermission(TUser user, PermissionGrantInfo permissionGrant);
///
/// 从用户中删除权限
///
///
///
Task RemovePermissionAsync(TUser user, PermissionGrantInfo permissionGrant);
///
/// 从用户中删除权限
///
///
///
void RemovePermission(TUser user, PermissionGrantInfo permissionGrant);
///
/// 获取用户的权限信息
///
///
///
Task> GetPermissionsAsync(long userId);
///
/// 获取用户的权限信息
///
///
///
IList GetPermissions(long userId);
///
/// 检查用户是否拥有权限
///
///
///
///
Task HasPermissionAsync(long userId, PermissionGrantInfo permissionGrant);
///
/// 检查用户是否拥有权限
///
///
///
///
bool HasPermission(long userId, PermissionGrantInfo permissionGrant);
///
/// 删除了角色的所有权限
///
/// User
Task RemoveAllPermissionSettingsAsync(TUser user);
///
/// 删除了角色的所有权限
///
/// User
void RemoveAllPermissionSettings(TUser user);
}