using System.Collections.Generic; using System.Threading.Tasks; using IwbZero.Authorization.Base.Permissions; namespace IwbZero.Authorization.Base.Users { /// /// Used to perform permission database operations for a user. /// public interface IUserPermissionStore where TUser : UserBase { /// /// Adds a permission grant setting to a user. /// /// User /// Permission grant setting info Task AddPermissionAsync(TUser user, PermissionGrantInfo permissionGrant); /// /// Removes a permission grant setting from a user. /// /// User /// Permission grant setting info Task RemovePermissionAsync(TUser user, PermissionGrantInfo permissionGrant); /// /// Gets permission grant setting informations for a user. /// /// User id /// List of permission setting informations Task> GetPermissionsAsync(long userId); /// /// Checks whether a role has a permission grant setting info. /// /// User id /// Permission grant setting info /// Task HasPermissionAsync(long userId, PermissionGrantInfo permissionGrant); /// /// Deleted all permission settings for a role. /// /// User Task RemoveAllPermissionSettingsAsync(TUser user); } }