Interface IRoleProvider
Provider for user role management.
Provides CRUD operations for roles and user-role relationship management.
public interface IRoleProvider
Methods
AssignUserToRoleAsync(IRedbUser, IRedbRole, IRedbUser?)
Assign role to user.
Task<bool> AssignUserToRoleAsync(IRedbUser user, IRedbRole role, IRedbUser? currentUser = null)
CreateRoleAsync(CreateRoleRequest, IRedbUser?)
Create new role.
Task<IRedbRole> CreateRoleAsync(CreateRoleRequest request, IRedbUser? currentUser = null)
DeleteRoleAsync(IRedbRole, IRedbUser?)
Delete role.
Task<bool> DeleteRoleAsync(IRedbRole role, IRedbUser? currentUser = null)
GetRoleConfigurationIdAsync(long)
Get role configuration ID.
Task<long?> GetRoleConfigurationIdAsync(long roleId)
GetRoleStatisticsAsync()
Get role statistics (role -> user count).
Task<Dictionary<IRedbRole, int>> GetRoleStatisticsAsync()
GetRoleUserCountAsync(IRedbRole)
Get user count in role.
Task<int> GetRoleUserCountAsync(IRedbRole role)
IsRoleNameAvailableAsync(string, IRedbRole?)
Check role name availability.
Task<bool> IsRoleNameAvailableAsync(string roleName, IRedbRole? excludeRole = null)
LoadRoleAsync(long)
Load role by ID (throws exception if not found).
Task<IRedbRole> LoadRoleAsync(long roleId)
LoadRoleAsync(string)
Load role by name (throws exception if not found).
Task<IRedbRole> LoadRoleAsync(string roleName)
RemoveUserFromRoleAsync(IRedbUser, IRedbRole, IRedbUser?)
Remove role from user.
Task<bool> RemoveUserFromRoleAsync(IRedbUser user, IRedbRole role, IRedbUser? currentUser = null)
SetRoleConfigurationAsync(long, long?)
Set role configuration.
Task SetRoleConfigurationAsync(long roleId, long? configId)
SetUserRolesAsync(IRedbUser, IRedbRole[], IRedbUser?)
Set user roles (replace all existing).
Task<bool> SetUserRolesAsync(IRedbUser user, IRedbRole[] roles, IRedbUser? currentUser = null)
UpdateRoleAsync(IRedbRole, string, IRedbUser?)
Update role.
Task<IRedbRole> UpdateRoleAsync(IRedbRole role, string newName, IRedbUser? currentUser = null)
UserHasRoleAsync(IRedbUser, IRedbRole)
Check if user has role.
Task<bool> UserHasRoleAsync(IRedbUser user, IRedbRole role)