From 5b7b0120406ef4c609c07ab57074a76a753cd1fd Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 15 Nov 2020 20:31:22 +0800 Subject: feat: Now changing user permission returns 400. --- .../Exceptions/InvalidOperationOnRootUserException.cs | 16 ++++++++++++++++ BackEnd/Timeline/Services/UserPermissionService.cs | 10 ++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 BackEnd/Timeline/Services/Exceptions/InvalidOperationOnRootUserException.cs (limited to 'BackEnd/Timeline/Services') diff --git a/BackEnd/Timeline/Services/Exceptions/InvalidOperationOnRootUserException.cs b/BackEnd/Timeline/Services/Exceptions/InvalidOperationOnRootUserException.cs new file mode 100644 index 00000000..2bcab316 --- /dev/null +++ b/BackEnd/Timeline/Services/Exceptions/InvalidOperationOnRootUserException.cs @@ -0,0 +1,16 @@ +using System; + +namespace Timeline.Services.Exceptions +{ + + [Serializable] + public class InvalidOperationOnRootUserException : InvalidOperationException + { + public InvalidOperationOnRootUserException() { } + public InvalidOperationOnRootUserException(string message) : base(message) { } + public InvalidOperationOnRootUserException(string message, Exception inner) : base(message, inner) { } + protected InvalidOperationOnRootUserException( + System.Runtime.Serialization.SerializationInfo info, + System.Runtime.Serialization.StreamingContext context) : base(info, context) { } + } +} diff --git a/BackEnd/Timeline/Services/UserPermissionService.cs b/BackEnd/Timeline/Services/UserPermissionService.cs index ff09b4ee..2fdf3d2d 100644 --- a/BackEnd/Timeline/Services/UserPermissionService.cs +++ b/BackEnd/Timeline/Services/UserPermissionService.cs @@ -127,6 +127,7 @@ namespace Timeline.Services /// The id of the user. /// The new permission. /// Thrown when user does not exist. + /// Thrown when change root user's permission. Task AddPermissionToUserAsync(long userId, UserPermission permission); /// @@ -136,6 +137,7 @@ namespace Timeline.Services /// The permission. /// Whether check the user's existence. /// Thrown when is true and user does not exist. + /// Thrown when change root user's permission. Task RemovePermissionFromUserAsync(long userId, UserPermission permission, bool checkUserExistence = true); } @@ -176,8 +178,8 @@ namespace Timeline.Services public async Task AddPermissionToUserAsync(long userId, UserPermission permission) { - if (userId == 1) // The init administrator account. - return; + if (userId == 1) + throw new InvalidOperationOnRootUserException("Can't change root user's permission."); await CheckUserExistence(userId, true); @@ -193,8 +195,8 @@ namespace Timeline.Services public async Task RemovePermissionFromUserAsync(long userId, UserPermission permission, bool checkUserExistence = true) { - if (userId == 1) // The init administrator account. - return; + if (userId == 1) + throw new InvalidOperationOnRootUserException("Can't change root user's permission."); await CheckUserExistence(userId, checkUserExistence); -- cgit v1.2.3