feat: add organization domain foundation
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
namespace Socialize.Api.Modules.Organizations.Services;
|
||||
|
||||
public static class OrganizationPermissionRules
|
||||
{
|
||||
public static IReadOnlyCollection<string> GetPermissionsForRole(string role)
|
||||
{
|
||||
return role switch
|
||||
{
|
||||
OrganizationRoles.Owner =>
|
||||
[
|
||||
OrganizationPermissions.ManageOrganizationSettings,
|
||||
OrganizationPermissions.ManageOrganizationMembers,
|
||||
OrganizationPermissions.CreateWorkspaces,
|
||||
OrganizationPermissions.ManageWorkspaces,
|
||||
OrganizationPermissions.ManageBilling,
|
||||
OrganizationPermissions.ManageConnectors,
|
||||
OrganizationPermissions.AccessOwnedWorkspaces,
|
||||
],
|
||||
OrganizationRoles.Admin =>
|
||||
[
|
||||
OrganizationPermissions.ManageOrganizationSettings,
|
||||
OrganizationPermissions.ManageOrganizationMembers,
|
||||
OrganizationPermissions.CreateWorkspaces,
|
||||
OrganizationPermissions.ManageWorkspaces,
|
||||
OrganizationPermissions.ManageConnectors,
|
||||
OrganizationPermissions.AccessOwnedWorkspaces,
|
||||
],
|
||||
OrganizationRoles.BillingManager =>
|
||||
[
|
||||
OrganizationPermissions.ManageBilling,
|
||||
OrganizationPermissions.AccessOwnedWorkspaces,
|
||||
],
|
||||
OrganizationRoles.ConnectorManager =>
|
||||
[
|
||||
OrganizationPermissions.ManageConnectors,
|
||||
OrganizationPermissions.AccessOwnedWorkspaces,
|
||||
],
|
||||
OrganizationRoles.Member =>
|
||||
[
|
||||
OrganizationPermissions.AccessOwnedWorkspaces,
|
||||
],
|
||||
_ => [],
|
||||
};
|
||||
}
|
||||
|
||||
public static bool RoleHasPermission(string role, string permission)
|
||||
{
|
||||
return GetPermissionsForRole(role).Contains(permission, StringComparer.Ordinal);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user