IUserPermissionStore.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using IwbZero.Authorization.Permissions;
  7. namespace IwbZero.Authorization.Users
  8. {
  9. /// <summary>
  10. /// Used to perform permission database operations for a user.
  11. /// </summary>
  12. public interface IIwbUserPermissionStore<in TUser>
  13. where TUser : UserBase
  14. {
  15. /// <summary>
  16. /// Adds a permission grant setting to a user.
  17. /// </summary>
  18. /// <param name="user">User</param>
  19. /// <param name="iwbPermissionGrant">Permission grant setting info</param>
  20. Task AddPermissionAsync(TUser user, IwbPermissionGrantInfo iwbPermissionGrant);
  21. /// <summary>
  22. /// Removes a permission grant setting from a user.
  23. /// </summary>
  24. /// <param name="user">User</param>
  25. /// <param name="iwbPermissionGrant">Permission grant setting info</param>
  26. Task RemovePermissionAsync(TUser user, IwbPermissionGrantInfo iwbPermissionGrant);
  27. /// <summary>
  28. /// Gets permission grant setting informations for a user.
  29. /// </summary>
  30. /// <param name="userId">User id</param>
  31. /// <returns>List of permission setting informations</returns>
  32. Task<IList<IwbPermissionGrantInfo>> GetPermissionsAsync(long userId);
  33. /// <summary>
  34. /// Checks whether a role has a permission grant setting info.
  35. /// </summary>
  36. /// <param name="userId">User id</param>
  37. /// <param name="iwbPermissionGrant">Permission grant setting info</param>
  38. /// <returns></returns>
  39. Task<bool> HasPermissionAsync(long userId, IwbPermissionGrantInfo iwbPermissionGrant);
  40. /// <summary>
  41. /// Deleted all permission settings for a role.
  42. /// </summary>
  43. /// <param name="user">User</param>
  44. Task RemoveAllPermissionSettingsAsync(TUser user);
  45. }
  46. }