Refactor app architecture and clean local artifacts
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
namespace Backend.Security;
|
||||
|
||||
public static class AdminRoles
|
||||
{
|
||||
public const string Viewer = "viewer";
|
||||
public const string ContentAdmin = "content_admin";
|
||||
public const string Admin = "admin";
|
||||
public const string Owner = "owner";
|
||||
|
||||
public static string Normalize(string? role)
|
||||
{
|
||||
var normalizedRole = (role ?? string.Empty).Trim().ToLowerInvariant().Replace('-', '_');
|
||||
|
||||
return normalizedRole switch
|
||||
{
|
||||
Owner => Owner,
|
||||
Admin => Admin,
|
||||
ContentAdmin => ContentAdmin,
|
||||
_ => Viewer,
|
||||
};
|
||||
}
|
||||
|
||||
public static bool IsKnownRole(string? role)
|
||||
{
|
||||
var normalizedRole = (role ?? string.Empty).Trim().ToLowerInvariant().Replace('-', '_');
|
||||
return normalizedRole is Viewer or ContentAdmin or Admin or Owner;
|
||||
}
|
||||
|
||||
public static bool CanAccessAdmin(string? role) =>
|
||||
Normalize(role) is ContentAdmin or Admin or Owner;
|
||||
|
||||
public static bool CanManageContent(string? role) =>
|
||||
Normalize(role) is ContentAdmin or Admin or Owner;
|
||||
|
||||
public static bool CanManageAdminWorkspace(string? role) =>
|
||||
Normalize(role) is Admin or Owner;
|
||||
|
||||
public static bool CanManageOperationalSettings(string? role) =>
|
||||
Normalize(role) is Owner;
|
||||
}
|
||||
Reference in New Issue
Block a user