using System.Collections.Generic; using System.Threading.Tasks; using IwbZero.Authorization.Base.Permissions; namespace IwbZero.Authorization.Base.Roles { /// /// Used to perform permission database operations for a role. /// public interface IRolePermissionStore where TRole : RoleBase { /// /// Adds a permission grant setting to a role. /// /// Role /// Permission grant setting info Task AddPermissionAsync(TRole role, PermissionGrantInfo permissionGrant); /// /// Removes a permission grant setting from a role. /// /// Role /// Permission grant setting info Task RemovePermissionAsync(TRole role, PermissionGrantInfo permissionGrant); /// /// Gets permission grant setting informations for a role. /// /// Role /// List of permission setting informations Task> GetPermissionsAsync(TRole role); /// /// Gets permission grant setting informations for a role. /// /// Role id /// List of permission setting informations Task> GetPermissionsAsync(int roleId); /// /// Checks whether a role has a permission grant setting info. /// /// Role id /// Permission grant setting info /// Task HasPermissionAsync(int roleId, PermissionGrantInfo permissionGrant); /// /// Deleted all permission settings for a role. /// /// Role Task RemoveAllPermissionSettingsAsync(TRole role); } }