Skip to content

Commit acc638e

Browse files
Refactor authorization handlers and requirements
- Removed obsolete authorization handlers: ServersAuthHandler, StatusAuthHandler, AdminActionsAuthRequirements, BanFileMonitorsAuthRequirements, ChangeLogAuthRequirements, CredentialsAuthRequirements, DashboardAuthRequirements, DemosAuthRequirements, GameServersAuthRequirements, GlobalSettingsAuthRequirements, HomeAuthRequirements, MapRotationsAuthRequirements, MapsAuthRequirements, PlayersAuthRequirements, ProfileAuthRequirements, ServerAdminAuthRequirements, ServersAuthRequirements, StatusAuthRequirements, UsersAuthRequirements. - Introduced new authorization handlers: ChatLogAuthHandler, TagsAuthHandler. - Created consolidated authorization requirements in AuthRequirements.cs for better organization and maintainability. - Updated PolicyExtensions to reflect new authorization requirements and handlers. - Adjusted ServiceCollectionExtensions to register only active authorization handlers. - Updated package reference for XtremeIdiots.Portal.Repository.Api.Client.V1 to version 2.1.198.
1 parent 2b2d9f4 commit acc638e

43 files changed

Lines changed: 697 additions & 1636 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 78 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -1,111 +1,86 @@
1-
namespace XtremeIdiots.Portal.Web.Auth.Constants;
1+
namespace XtremeIdiots.Portal.Web.Auth.Constants;
22

33
/// <summary>
44
/// Contains authorization policy constants used throughout the XtremeIdiots Portal application.
5-
/// These policies are evaluated by authorization handlers to determine user access to specific resources and actions.
5+
/// Policy names follow the {Domain}.{Action} convention matching AdditionalPermission claim types.
66
/// </summary>
77
public static class AuthPolicies
88
{
9-
// Admin Actions policies
10-
public const string AccessAdminActionsController = nameof(AccessAdminActionsController);
11-
public const string ChangeAdminActionAdmin = nameof(ChangeAdminActionAdmin);
12-
public const string ClaimAdminAction = nameof(ClaimAdminAction);
13-
public const string CreateAdminAction = nameof(CreateAdminAction);
14-
public const string CreateAdminActionTopic = nameof(CreateAdminActionTopic);
15-
public const string DeleteAdminAction = nameof(DeleteAdminAction);
16-
public const string EditAdminAction = nameof(EditAdminAction);
17-
public const string LiftAdminAction = nameof(LiftAdminAction);
18-
19-
// Ban File Monitor policies
20-
public const string AccessBanFileMonitors = nameof(AccessBanFileMonitors);
21-
public const string CreateBanFileMonitor = nameof(CreateBanFileMonitor);
22-
public const string ViewBanFileMonitor = nameof(ViewBanFileMonitor);
23-
public const string EditBanFileMonitor = nameof(EditBanFileMonitor);
24-
public const string DeleteBanFileMonitor = nameof(DeleteBanFileMonitor);
25-
26-
// Change Log policies
27-
public const string AccessChangeLog = nameof(AccessChangeLog);
28-
29-
// Credentials policies
30-
public const string AccessCredentials = nameof(AccessCredentials);
31-
32-
// Demo policies
33-
public const string AccessDemos = nameof(AccessDemos);
34-
public const string DeleteDemo = nameof(DeleteDemo);
35-
36-
// Global Settings policies
37-
public const string AccessGlobalSettings = nameof(AccessGlobalSettings);
38-
39-
// Game Server policies
40-
public const string AccessGameServers = nameof(AccessGameServers);
41-
public const string CreateGameServer = nameof(CreateGameServer);
42-
public const string DeleteGameServer = nameof(DeleteGameServer);
43-
public const string EditGameServerFtp = nameof(EditGameServerFtp);
44-
public const string EditGameServer = nameof(EditGameServer);
45-
public const string EditGameServerRcon = nameof(EditGameServerRcon);
46-
public const string ViewFtpCredential = nameof(ViewFtpCredential);
47-
public const string ViewGameServer = nameof(ViewGameServer);
48-
public const string ViewRconCredential = nameof(ViewRconCredential);
49-
50-
// Home policies
51-
public const string AccessHome = nameof(AccessHome);
52-
53-
// Dashboard policies
54-
public const string AccessDashboard = nameof(AccessDashboard);
55-
56-
// Profile policies
57-
public const string AccessProfile = nameof(AccessProfile);
58-
59-
// Map and Map Management policies
60-
public const string AccessMaps = nameof(AccessMaps);
61-
public const string AccessMapManagerController = nameof(AccessMapManagerController);
62-
public const string ManageMaps = nameof(ManageMaps);
63-
public const string PushMapToRemote = nameof(PushMapToRemote);
64-
public const string DeleteMapFromHost = nameof(DeleteMapFromHost);
65-
669
// Map Rotations
67-
public const string AccessMapRotations = nameof(AccessMapRotations);
68-
public const string ManageMapRotations = nameof(ManageMapRotations);
69-
public const string CreateMapRotation = nameof(CreateMapRotation);
70-
public const string EditMapRotation = nameof(EditMapRotation);
71-
public const string DeleteMapRotation = nameof(DeleteMapRotation);
72-
73-
// Migration policies
74-
public const string AccessMigration = nameof(AccessMigration);
75-
76-
// Player Tag policies
77-
public const string AccessPlayerTags = nameof(AccessPlayerTags);
78-
public const string CreatePlayerTag = nameof(CreatePlayerTag);
79-
public const string DeletePlayerTag = nameof(DeletePlayerTag);
80-
public const string EditPlayerTag = nameof(EditPlayerTag);
81-
82-
// Player policies
83-
public const string AccessPlayers = nameof(AccessPlayers);
84-
public const string DeletePlayer = nameof(DeletePlayer);
85-
public const string ViewPlayers = nameof(ViewPlayers);
86-
public const string CreateProtectedName = nameof(CreateProtectedName);
87-
public const string DeleteProtectedName = nameof(DeleteProtectedName);
88-
public const string ViewProtectedName = nameof(ViewProtectedName);
89-
90-
// Server Administration policies
91-
public const string AccessLiveRcon = nameof(AccessLiveRcon);
92-
public const string AccessServerAdmin = nameof(AccessServerAdmin);
93-
public const string ViewGameChatLog = nameof(ViewGameChatLog);
94-
public const string ViewGlobalChatLog = nameof(ViewGlobalChatLog);
95-
public const string ViewLiveRcon = nameof(ViewLiveRcon);
96-
public const string ViewServerChatLog = nameof(ViewServerChatLog);
97-
public const string LockChatMessages = nameof(LockChatMessages);
98-
99-
// Server policies
100-
public const string AccessServers = nameof(AccessServers);
101-
102-
// Status policies
103-
public const string AccessStatus = nameof(AccessStatus);
104-
105-
// User management policies
106-
public const string AccessActivityLog = nameof(AccessActivityLog);
107-
public const string AccessUsers = nameof(AccessUsers);
108-
public const string CreateUserClaim = nameof(CreateUserClaim);
109-
public const string DeleteUserClaim = nameof(DeleteUserClaim);
110-
public const string PerformUserSearch = nameof(PerformUserSearch);
10+
public const string MapRotations_Read = "MapRotations.Read";
11+
public const string MapRotations_Write = "MapRotations.Write";
12+
public const string MapRotations_Deploy = "MapRotations.Deploy";
13+
14+
// Maps (catalogue)
15+
public const string Maps_Read = "Maps.Read";
16+
17+
// Game Servers — Core
18+
public const string GameServers_Read = "GameServers.Read";
19+
public const string GameServers_Write = "GameServers.Write";
20+
public const string GameServers_Delete = "GameServers.Delete";
21+
22+
// Game Servers — Credentials
23+
public const string GameServers_Credentials_Ftp_Read = "GameServers.Credentials.Ftp.Read";
24+
public const string GameServers_Credentials_Ftp_Write = "GameServers.Credentials.Ftp.Write";
25+
public const string GameServers_Credentials_Rcon_Read = "GameServers.Credentials.Rcon.Read";
26+
public const string GameServers_Credentials_Rcon_Write = "GameServers.Credentials.Rcon.Write";
27+
28+
// Game Servers — Maps
29+
public const string GameServers_Maps_Read = "GameServers.Maps.Read";
30+
public const string GameServers_Maps_Deploy = "GameServers.Maps.Deploy";
31+
32+
// Game Servers — Ban File Monitors
33+
public const string GameServers_BanFileMonitors_Read = "GameServers.BanFileMonitors.Read";
34+
public const string GameServers_BanFileMonitors_Write = "GameServers.BanFileMonitors.Write";
35+
36+
// Game Servers — Admin
37+
public const string GameServers_Admin_Read = "GameServers.Admin.Read";
38+
public const string GameServers_Admin_Rcon = "GameServers.Admin.Rcon";
39+
public const string GameServers_Admin_Rcon_Kick = "GameServers.Admin.Rcon.Kick";
40+
public const string GameServers_Admin_Rcon_Ban = "GameServers.Admin.Rcon.Ban";
41+
public const string GameServers_Admin_Rcon_Map = "GameServers.Admin.Rcon.Map";
42+
public const string GameServers_Admin_Rcon_Say = "GameServers.Admin.Rcon.Say";
43+
public const string GameServers_Admin_Rcon_Restart = "GameServers.Admin.Rcon.Restart";
44+
45+
// Chat Log
46+
public const string ChatLog_Read = "ChatLog.Read";
47+
public const string ChatLog_ReadServer = "ChatLog.ReadServer";
48+
public const string ChatLog_Lock = "ChatLog.Lock";
49+
50+
// Admin Actions
51+
public const string AdminActions_Read = "AdminActions.Read";
52+
public const string AdminActions_Create = "AdminActions.Create";
53+
public const string AdminActions_Edit = "AdminActions.Edit";
54+
public const string AdminActions_Delete = "AdminActions.Delete";
55+
public const string AdminActions_Claim = "AdminActions.Claim";
56+
public const string AdminActions_Lift = "AdminActions.Lift";
57+
public const string AdminActions_Reassign = "AdminActions.Reassign";
58+
public const string AdminActions_CreateTopic = "AdminActions.CreateTopic";
59+
60+
// Players
61+
public const string Players_Read = "Players.Read";
62+
public const string Players_Delete = "Players.Delete";
63+
public const string Players_ProtectedNames_Write = "Players.ProtectedNames.Write";
64+
public const string Players_Tags_Write = "Players.Tags.Write";
65+
66+
// Player Tags
67+
public const string Tags_Read = "Tags.Read";
68+
public const string Tags_Write = "Tags.Write";
69+
70+
// Dashboard
71+
public const string Dashboard_Read = "Dashboard.Read";
72+
73+
// Demos
74+
public const string Demos_Read = "Demos.Read";
75+
public const string Demos_Write = "Demos.Write";
76+
public const string Demos_Delete = "Demos.Delete";
77+
78+
// Global Settings (not assignable as additional permission)
79+
public const string GlobalSettings_Admin = "GlobalSettings.Admin";
80+
81+
// Users (not assignable as additional permissions)
82+
public const string Users_Read = "Users.Read";
83+
public const string Users_ManageClaims = "Users.ManageClaims";
84+
public const string Users_Search = "Users.Search";
85+
public const string Users_ActivityLog = "Users.ActivityLog";
11186
}

0 commit comments

Comments
 (0)