Skip to content

Commit 4949422

Browse files
authored
Add moderator role (#976)
Adds a moderator role to `GameUserRole` and sets most moderation-related admin API endpoints to be callable by moderator users.
2 parents c0e3d63 + a8c6b13 commit 4949422

File tree

9 files changed

+45
-39
lines changed

9 files changed

+45
-39
lines changed

Refresh.Database/Models/Users/GameUserRole.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ public enum GameUserRole : sbyte
1313
/// </summary>
1414
Admin = 127,
1515
/// <summary>
16+
/// A mod. Can moderate (edit and delete) various UGC, curate content like Curators, but doesn't have any permissions
17+
/// over the instance itself.
18+
/// </summary>
19+
Moderator = 96,
20+
/// <summary>
1621
/// A user that doesn't have moderator powers, but may team pick levels, set re-upload data, and adjust the level's game version.
1722
/// </summary>
1823
Curator = 64,

Refresh.Interfaces.APIv3/Endpoints/Admin/AdminAssetApiEndpoints.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ namespace Refresh.Interfaces.APIv3.Endpoints.Admin;
1515

1616
public class AdminAssetApiEndpoints : EndpointGroup
1717
{
18-
[ApiV3Endpoint("admin/users/uuid/{uuid}/assets"), MinimumRole(GameUserRole.Admin)]
18+
[ApiV3Endpoint("admin/users/uuid/{uuid}/assets"), MinimumRole(GameUserRole.Moderator)]
1919
[DocSummary("Retrieves a list of assets uploaded by the user.")]
2020
[DocQueryParam("assetType", "The asset type to filter by. Can be excluded to list all types.")]
2121
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]

Refresh.Interfaces.APIv3/Endpoints/Admin/AdminLeaderboardApiEndpoints.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace Refresh.Interfaces.APIv3.Endpoints.Admin;
1313

1414
public class AdminLeaderboardApiEndpoints : EndpointGroup
1515
{
16-
[ApiV3Endpoint("admin/scores/{uuid}", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
16+
[ApiV3Endpoint("admin/scores/{uuid}", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
1717
[DocSummary("Removes a score by the score's UUID.")]
1818
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.ScoreMissingErrorWhen)]
1919
public ApiOkResponse DeleteScore(RequestContext context, GameDatabaseContext database,
@@ -27,7 +27,7 @@ public ApiOkResponse DeleteScore(RequestContext context, GameDatabaseContext dat
2727
return new ApiOkResponse();
2828
}
2929

30-
[ApiV3Endpoint("admin/users/uuid/{uuid}/scores", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
30+
[ApiV3Endpoint("admin/users/uuid/{uuid}/scores", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
3131
[DocSummary("Deletes all scores set by a user. Gets user by their UUID.")]
3232
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
3333
public ApiOkResponse DeleteScoresSetByUuid(RequestContext context, GameDatabaseContext database,
@@ -40,7 +40,7 @@ public ApiOkResponse DeleteScoresSetByUuid(RequestContext context, GameDatabaseC
4040
return new ApiOkResponse();
4141
}
4242

43-
[ApiV3Endpoint("admin/users/name/{username}/scores", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
43+
[ApiV3Endpoint("admin/users/name/{username}/scores", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
4444
[DocSummary("Deletes all scores set by a user. Gets user by their username.")]
4545
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
4646
public ApiOkResponse DeleteScoresSetByUsername(RequestContext context, GameDatabaseContext database,

Refresh.Interfaces.APIv3/Endpoints/Admin/AdminLevelApiEndpoints.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public ApiResponse<ApiGameLevelResponse> EditLevelById(RequestContext context, G
6262
return ApiGameLevelResponse.FromOld(level, dataContext);
6363
}
6464

65-
[ApiV3Endpoint("admin/levels/id/{id}", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
65+
[ApiV3Endpoint("admin/levels/id/{id}", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
6666
[DocSummary("Deletes a level.")]
6767
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.LevelMissingErrorWhen)]
6868
public ApiOkResponse DeleteLevel(RequestContext context, GameDatabaseContext database, int id)

Refresh.Interfaces.APIv3/Endpoints/Admin/AdminPhotoApiEndpoints.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace Refresh.Interfaces.APIv3.Endpoints.Admin;
1313

1414
public class AdminPhotoApiEndpoints : EndpointGroup
1515
{
16-
[ApiV3Endpoint("admin/users/uuid/{uuid}/photos", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
16+
[ApiV3Endpoint("admin/users/uuid/{uuid}/photos", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
1717
[DocSummary("Deletes all photos posted by a user. Gets user by their UUID.")]
1818
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
1919
public ApiOkResponse DeletePhotosPostedByUuid(RequestContext context, GameDatabaseContext database,
@@ -26,7 +26,7 @@ public ApiOkResponse DeletePhotosPostedByUuid(RequestContext context, GameDataba
2626
return new ApiOkResponse();
2727
}
2828

29-
[ApiV3Endpoint("admin/users/name/{username}/photos", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
29+
[ApiV3Endpoint("admin/users/name/{username}/photos", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
3030
[DocSummary("Deletes all photos posted by a user. Gets user by their username.")]
3131
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
3232
public ApiOkResponse DeletePhotosPostedByUsername(RequestContext context, GameDatabaseContext database,
@@ -39,7 +39,7 @@ public ApiOkResponse DeletePhotosPostedByUsername(RequestContext context, GameDa
3939
return new ApiOkResponse();
4040
}
4141

42-
[ApiV3Endpoint("admin/photos/id/{id}", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
42+
[ApiV3Endpoint("admin/photos/id/{id}", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
4343
[DocSummary("Deletes a photo.")]
4444
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.PhotoMissingErrorWhen)]
4545
public ApiOkResponse DeletePhoto(RequestContext context, GameDatabaseContext database, int id)

Refresh.Interfaces.APIv3/Endpoints/Admin/AdminRegistrationApiEndpoints.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ namespace Refresh.Interfaces.APIv3.Endpoints.Admin;
1515

1616
public class AdminRegistrationApiEndpoints : EndpointGroup
1717
{
18-
[ApiV3Endpoint("admin/registrations"), MinimumRole(GameUserRole.Admin)]
18+
[ApiV3Endpoint("admin/registrations"), MinimumRole(GameUserRole.Moderator)]
1919
[DocSummary("Retrieves all queued registrations on the server.")]
2020
public ApiListResponse<ApiAdminQueuedRegistrationResponse> GetAllQueuedRegistrations(RequestContext context,
2121
GameDatabaseContext database, DataContext dataContext)
@@ -37,7 +37,7 @@ public ApiResponse<ApiAdminQueuedRegistrationResponse> GetQueuedRegistrationByUu
3737
return ApiAdminQueuedRegistrationResponse.FromOld(registration, dataContext);
3838
}
3939

40-
[ApiV3Endpoint("admin/registrations/{uuid}", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
40+
[ApiV3Endpoint("admin/registrations/{uuid}", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
4141
[DocSummary("Deletes a registration by its UUID.")]
4242
[DocError(typeof(ApiValidationError), ApiValidationError.ObjectIdParseErrorWhen)]
4343
[DocError(typeof(ApiNotFoundError), "The registration could not be found")]
@@ -53,7 +53,7 @@ public ApiOkResponse DeleteQueuedRegistrationByUuid(RequestContext context, Game
5353
return new ApiOkResponse();
5454
}
5555

56-
[ApiV3Endpoint("admin/registrations", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
56+
[ApiV3Endpoint("admin/registrations", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
5757
[DocSummary("Clears all queued registrations from the server.")]
5858
public ApiOkResponse DeleteAllQueuedRegistrations(RequestContext context, GameDatabaseContext database)
5959
{

Refresh.Interfaces.APIv3/Endpoints/Admin/AdminReviewApiEndpoints.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace Refresh.Interfaces.APIv3.Endpoints.Admin;
1313

1414
public class AdminReviewApiEndpoints : EndpointGroup
1515
{
16-
[ApiV3Endpoint("admin/reviews/id/{reviewId}", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
16+
[ApiV3Endpoint("admin/reviews/id/{reviewId}", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
1717
[DocSummary("Deletes a specific review by ID.")]
1818
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.ReviewMissingErrorWhen)]
1919
public ApiOkResponse DeleteReviewById(RequestContext context, GameDatabaseContext database,
@@ -27,7 +27,7 @@ public ApiOkResponse DeleteReviewById(RequestContext context, GameDatabaseContex
2727
return new ApiOkResponse();
2828
}
2929

30-
[ApiV3Endpoint("admin/comments/profile/id/{commentId}", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
30+
[ApiV3Endpoint("admin/comments/profile/id/{commentId}", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
3131
[DocSummary("Deletes a specific profile comment by ID.")]
3232
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.CommentMissingErrorWhen)]
3333
public ApiOkResponse DeleteProfileCommentById(RequestContext context, GameDatabaseContext database,
@@ -41,7 +41,7 @@ public ApiOkResponse DeleteProfileCommentById(RequestContext context, GameDataba
4141
return new ApiOkResponse();
4242
}
4343

44-
[ApiV3Endpoint("admin/comments/level/id/{commentId}", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
44+
[ApiV3Endpoint("admin/comments/level/id/{commentId}", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
4545
[DocSummary("Deletes a specific level comment by ID.")]
4646
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.CommentMissingErrorWhen)]
4747
public ApiOkResponse DeleteLevelCommentById(RequestContext context, GameDatabaseContext database,
@@ -55,7 +55,7 @@ public ApiOkResponse DeleteLevelCommentById(RequestContext context, GameDatabase
5555
return new ApiOkResponse();
5656
}
5757

58-
[ApiV3Endpoint("admin/users/uuid/{uuid}/comments/profile", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
58+
[ApiV3Endpoint("admin/users/uuid/{uuid}/comments/profile", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
5959
[DocSummary("Deletes all profile comments posted by a user. Gets user by their UUID.")]
6060
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
6161
public ApiOkResponse DeleteProfileCommentsByUuid(RequestContext context, GameDatabaseContext database,
@@ -68,7 +68,7 @@ public ApiOkResponse DeleteProfileCommentsByUuid(RequestContext context, GameDat
6868
return new ApiOkResponse();
6969
}
7070

71-
[ApiV3Endpoint("admin/users/name/{username}/comments/profile", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
71+
[ApiV3Endpoint("admin/users/name/{username}/comments/profile", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
7272
[DocSummary("Deletes all profile comments posted by a user. Gets user by their username.")]
7373
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
7474
public ApiOkResponse DeleteProfileCommentsByUsername(RequestContext context, GameDatabaseContext database,
@@ -81,7 +81,7 @@ public ApiOkResponse DeleteProfileCommentsByUsername(RequestContext context, Gam
8181
return new ApiOkResponse();
8282
}
8383

84-
[ApiV3Endpoint("admin/users/uuid/{uuid}/comments/level", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
84+
[ApiV3Endpoint("admin/users/uuid/{uuid}/comments/level", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
8585
[DocSummary("Deletes all level comments posted by a user. Gets user by their UUID.")]
8686
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
8787
public ApiOkResponse DeleteLevelCommentsByUuid(RequestContext context, GameDatabaseContext database,
@@ -94,7 +94,7 @@ public ApiOkResponse DeleteLevelCommentsByUuid(RequestContext context, GameDatab
9494
return new ApiOkResponse();
9595
}
9696

97-
[ApiV3Endpoint("admin/users/name/{username}/comments/level", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
97+
[ApiV3Endpoint("admin/users/name/{username}/comments/level", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
9898
[DocSummary("Deletes all level comments posted by a user. Gets user by their username.")]
9999
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
100100
public ApiOkResponse DeleteLevelCommentsByUsername(RequestContext context, GameDatabaseContext database,
@@ -107,7 +107,7 @@ public ApiOkResponse DeleteLevelCommentsByUsername(RequestContext context, GameD
107107
return new ApiOkResponse();
108108
}
109109

110-
[ApiV3Endpoint("admin/users/uuid/{uuid}/reviews", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
110+
[ApiV3Endpoint("admin/users/uuid/{uuid}/reviews", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
111111
[DocSummary("Deletes all reviews posted by a user. Gets user by their UUID.")]
112112
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
113113
public ApiOkResponse DeleteReviewsPostedByUuid(RequestContext context, GameDatabaseContext database,
@@ -120,7 +120,7 @@ public ApiOkResponse DeleteReviewsPostedByUuid(RequestContext context, GameDatab
120120
return new ApiOkResponse();
121121
}
122122

123-
[ApiV3Endpoint("admin/users/name/{username}/reviews", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
123+
[ApiV3Endpoint("admin/users/name/{username}/reviews", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
124124
[DocSummary("Deletes all reviews posted by a user. Gets user by their username.")]
125125
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
126126
public ApiOkResponse DeleteReviewsPostedByUsername(RequestContext context, GameDatabaseContext database,

Refresh.Interfaces.APIv3/Endpoints/Admin/AdminUserApiEndpoints.cs

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ namespace Refresh.Interfaces.APIv3.Endpoints.Admin;
2222

2323
public class AdminUserApiEndpoints : EndpointGroup
2424
{
25-
[ApiV3Endpoint("admin/users/name/{username}"), MinimumRole(GameUserRole.Admin)]
25+
[ApiV3Endpoint("admin/users/name/{username}"), MinimumRole(GameUserRole.Moderator)]
2626
[DocSummary("Gets a user by their name with extended information.")]
2727
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
2828
public ApiResponse<ApiExtendedGameUserResponse> GetExtendedUserByUsername(RequestContext context,
@@ -34,7 +34,7 @@ public ApiResponse<ApiExtendedGameUserResponse> GetExtendedUserByUsername(Reques
3434
return ApiExtendedGameUserResponse.FromOld(user, dataContext);
3535
}
3636

37-
[ApiV3Endpoint("admin/users/uuid/{uuid}"), MinimumRole(GameUserRole.Admin)]
37+
[ApiV3Endpoint("admin/users/uuid/{uuid}"), MinimumRole(GameUserRole.Moderator)]
3838
[DocSummary("Gets a user by their UUID with extended information.")]
3939
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
4040
public ApiResponse<ApiExtendedGameUserResponse> GetExtendedUserByUuid(RequestContext context,
@@ -46,7 +46,7 @@ public ApiResponse<ApiExtendedGameUserResponse> GetExtendedUserByUuid(RequestCon
4646
return ApiExtendedGameUserResponse.FromOld(user, dataContext);
4747
}
4848

49-
[ApiV3Endpoint("admin/users"), MinimumRole(GameUserRole.Admin)]
49+
[ApiV3Endpoint("admin/users"), MinimumRole(GameUserRole.Moderator)]
5050
[DocSummary("Gets all users with extended information.")]
5151
[DocUsesPageData]
5252
public ApiListResponse<ApiExtendedGameUserResponse> GetExtendedUsers(RequestContext context,
@@ -69,8 +69,8 @@ private static ApiOkResponse ResetUserPassword(GameDatabaseContext database, Api
6969
return new ApiOkResponse();
7070
}
7171

72-
[ApiV3Endpoint("admin/users/uuid/{uuid}/resetPassword", HttpMethods.Put), MinimumRole(GameUserRole.Admin)]
73-
[DocSummary("Reset's a user password by their UUID.")]
72+
[ApiV3Endpoint("admin/users/uuid/{uuid}/resetPassword", HttpMethods.Put), MinimumRole(GameUserRole.Moderator)]
73+
[DocSummary("Resets a user's password by their UUID.")]
7474
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
7575
[DocRequestBody(typeof(ApiResetUserPasswordRequest))]
7676
public ApiOkResponse ResetUserPasswordByUuid(RequestContext context, GameDatabaseContext database, ApiResetUserPasswordRequest body, string uuid)
@@ -81,8 +81,8 @@ public ApiOkResponse ResetUserPasswordByUuid(RequestContext context, GameDatabas
8181
return ResetUserPassword(database, body, user);
8282
}
8383

84-
[ApiV3Endpoint("admin/users/name/{username}/resetPassword", HttpMethods.Put), MinimumRole(GameUserRole.Admin)]
85-
[DocSummary("Reset's a user password by their username.")]
84+
[ApiV3Endpoint("admin/users/name/{username}/resetPassword", HttpMethods.Put), MinimumRole(GameUserRole.Moderator)]
85+
[DocSummary("Resets a user's password by their username.")]
8686
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
8787
[DocRequestBody(typeof(ApiResetUserPasswordRequest))]
8888
public ApiOkResponse ResetUserPasswordByUsername(RequestContext context, GameDatabaseContext database, ApiResetUserPasswordRequest body, string username)
@@ -93,7 +93,8 @@ public ApiOkResponse ResetUserPasswordByUsername(RequestContext context, GameDat
9393
return ResetUserPassword(database, body, user);
9494
}
9595

96-
[ApiV3Endpoint("admin/users/uuid/{uuid}/planets"), MinimumRole(GameUserRole.Admin)]
96+
// TODO: Users should be able to retrieve and reset their own planets
97+
[ApiV3Endpoint("admin/users/uuid/{uuid}/planets"), MinimumRole(GameUserRole.Moderator)]
9798
[DocSummary("Retrieves the hashes of a user's planets. Gets user by their UUID.")]
9899
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
99100
public ApiResponse<ApiAdminUserPlanetsResponse> GetUserPlanetsByUuid(RequestContext context, GameDatabaseContext database, string uuid)
@@ -109,7 +110,7 @@ public ApiResponse<ApiAdminUserPlanetsResponse> GetUserPlanetsByUuid(RequestCont
109110
};
110111
}
111112

112-
[ApiV3Endpoint("admin/users/name/{username}/planets"), MinimumRole(GameUserRole.Admin)]
113+
[ApiV3Endpoint("admin/users/name/{username}/planets"), MinimumRole(GameUserRole.Moderator)]
113114
[DocSummary("Retrieves the hashes of a user's planets. Gets user by their username.")]
114115
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
115116
public ApiResponse<ApiAdminUserPlanetsResponse> GetUserPlanetsByUsername(RequestContext context, GameDatabaseContext database, string username)
@@ -125,7 +126,7 @@ public ApiResponse<ApiAdminUserPlanetsResponse> GetUserPlanetsByUsername(Request
125126
};
126127
}
127128

128-
[ApiV3Endpoint("admin/users/uuid/{uuid}/planets", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
129+
[ApiV3Endpoint("admin/users/uuid/{uuid}/planets", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
129130
[DocSummary("Resets a user's planets. Gets user by their UUID.")]
130131
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
131132
public ApiOkResponse ResetUserPlanetsByUuid(RequestContext context, GameDatabaseContext database, string uuid)
@@ -137,7 +138,7 @@ public ApiOkResponse ResetUserPlanetsByUuid(RequestContext context, GameDatabase
137138
return new ApiOkResponse();
138139
}
139140

140-
[ApiV3Endpoint("admin/users/name/{username}/planets", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
141+
[ApiV3Endpoint("admin/users/name/{username}/planets", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
141142
[DocSummary("Resets a user's planets. Gets user by their username.")]
142143
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
143144
public ApiOkResponse ResetUserPlanetsByUsername(RequestContext context, GameDatabaseContext database, string username)
@@ -149,7 +150,7 @@ public ApiOkResponse ResetUserPlanetsByUsername(RequestContext context, GameData
149150
return new ApiOkResponse();
150151
}
151152

152-
[ApiV3Endpoint("admin/users/uuid/{uuid}", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
153+
[ApiV3Endpoint("admin/users/uuid/{uuid}", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
153154
[DocSummary("Deletes a user user by their UUID.")]
154155
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
155156
public ApiOkResponse DeleteUserByUuid(RequestContext context, GameDatabaseContext database, string uuid)
@@ -161,7 +162,7 @@ public ApiOkResponse DeleteUserByUuid(RequestContext context, GameDatabaseContex
161162
return new ApiOkResponse();
162163
}
163164

164-
[ApiV3Endpoint("admin/users/name/{username}", HttpMethods.Delete), MinimumRole(GameUserRole.Admin)]
165+
[ApiV3Endpoint("admin/users/name/{username}", HttpMethods.Delete), MinimumRole(GameUserRole.Moderator)]
165166
[DocSummary("Deletes a user user by their UUID.")]
166167
[DocError(typeof(ApiNotFoundError), ApiNotFoundError.UserMissingErrorWhen)]
167168
public ApiOkResponse DeleteUserByUsername(RequestContext context, GameDatabaseContext database, string username)

0 commit comments

Comments
 (0)