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