using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using IwbZero.Authorization.Permissions; namespace IwbZero.Authorization.Users { /// /// Used to perform permission database operations for a user. /// public interface IIwbUserPermissionStore where TUser : UserBase { /// /// Adds a permission grant setting to a user. /// /// User /// Permission grant setting info Task AddPermissionAsync(TUser user, IwbPermissionGrantInfo iwbPermissionGrant); /// /// Removes a permission grant setting from a user. /// /// User /// Permission grant setting info Task RemovePermissionAsync(TUser user, IwbPermissionGrantInfo iwbPermissionGrant); /// /// 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, IwbPermissionGrantInfo iwbPermissionGrant); /// /// Deleted all permission settings for a role. /// /// User Task RemoveAllPermissionSettingsAsync(TUser user); } }