StaticRoleDefinition.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using Abp.Authorization;
  2. namespace VberZero.Configuration;
  3. public class StaticRoleDefinition
  4. {
  5. public string RoleName { get; }
  6. public string RoleDisplayName { get; }
  7. public bool GrantAllPermissionsByDefault { get; set; }
  8. public List<string> GrantedPermissions { get; }
  9. public Abp.MultiTenancy.MultiTenancySides Side { get; }
  10. public StaticRoleDefinition(string roleName, Abp.MultiTenancy.MultiTenancySides side, bool grantAllPermissionsByDefault = false)
  11. {
  12. RoleName = roleName;
  13. RoleDisplayName = roleName;
  14. Side = side;
  15. GrantAllPermissionsByDefault = grantAllPermissionsByDefault;
  16. GrantedPermissions = new List<string>();
  17. }
  18. public StaticRoleDefinition(string roleName, string roleDisplayName, Abp.MultiTenancy.MultiTenancySides side, bool grantAllPermissionsByDefault = false)
  19. {
  20. RoleName = roleName;
  21. RoleDisplayName = roleDisplayName;
  22. Side = side;
  23. GrantAllPermissionsByDefault = grantAllPermissionsByDefault;
  24. GrantedPermissions = new List<string>();
  25. }
  26. public virtual bool IsGrantedByDefault(Permission permission)
  27. {
  28. return GrantAllPermissionsByDefault || GrantedPermissions.Contains(permission.Name);
  29. }
  30. public StaticRoleDefinition WithGrantedPermission(string permission)
  31. {
  32. GrantedPermissions.Add(permission);
  33. return this;
  34. }
  35. public StaticRoleDefinition WithGrantedPermissions(List<string> permissions)
  36. {
  37. GrantedPermissions.AddRange(permissions);
  38. return this;
  39. }
  40. }