using Abp.Authorization; namespace VberZero.Configuration; public class StaticRoleDefinition { public string RoleName { get; } public string RoleDisplayName { get; } public bool GrantAllPermissionsByDefault { get; set; } public List GrantedPermissions { get; } public Abp.MultiTenancy.MultiTenancySides Side { get; } public StaticRoleDefinition(string roleName, Abp.MultiTenancy.MultiTenancySides side, bool grantAllPermissionsByDefault = false) { RoleName = roleName; RoleDisplayName = roleName; Side = side; GrantAllPermissionsByDefault = grantAllPermissionsByDefault; GrantedPermissions = new List(); } public StaticRoleDefinition(string roleName, string roleDisplayName, Abp.MultiTenancy.MultiTenancySides side, bool grantAllPermissionsByDefault = false) { RoleName = roleName; RoleDisplayName = roleDisplayName; Side = side; GrantAllPermissionsByDefault = grantAllPermissionsByDefault; GrantedPermissions = new List(); } public virtual bool IsGrantedByDefault(Permission permission) { return GrantAllPermissionsByDefault || GrantedPermissions.Contains(permission.Name); } public StaticRoleDefinition WithGrantedPermission(string permission) { GrantedPermissions.Add(permission); return this; } public StaticRoleDefinition WithGrantedPermissions(List permissions) { GrantedPermissions.AddRange(permissions); return this; } }