aboutsummaryrefslogtreecommitdiff
path: root/BackEnd/Timeline/Services/User/IUserPermissionService.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-04-27 19:29:20 +0800
committercrupest <crupest@outlook.com>2021-04-27 19:29:20 +0800
commita6150c487e7a0eb3fb1d9874d2fa7de61cdbfd30 (patch)
tree65ad2e897051d36ca49896e0df66841df4bffd6f /BackEnd/Timeline/Services/User/IUserPermissionService.cs
parentcb3d8d0997679d2b9a961ec92b6555af4c4ef53f (diff)
downloadtimeline-a6150c487e7a0eb3fb1d9874d2fa7de61cdbfd30.tar.gz
timeline-a6150c487e7a0eb3fb1d9874d2fa7de61cdbfd30.tar.bz2
timeline-a6150c487e7a0eb3fb1d9874d2fa7de61cdbfd30.zip
refactor: ...
Diffstat (limited to 'BackEnd/Timeline/Services/User/IUserPermissionService.cs')
-rw-r--r--BackEnd/Timeline/Services/User/IUserPermissionService.cs35
1 files changed, 35 insertions, 0 deletions
diff --git a/BackEnd/Timeline/Services/User/IUserPermissionService.cs b/BackEnd/Timeline/Services/User/IUserPermissionService.cs
new file mode 100644
index 00000000..7ff1275b
--- /dev/null
+++ b/BackEnd/Timeline/Services/User/IUserPermissionService.cs
@@ -0,0 +1,35 @@
+using System.Threading.Tasks;
+
+namespace Timeline.Services.User
+{
+ public interface IUserPermissionService
+ {
+ /// <summary>
+ /// Get permissions of a user.
+ /// </summary>
+ /// <param name="userId">The id of the user.</param>
+ /// <param name="checkUserExistence">Whether check the user's existence.</param>
+ /// <returns>The permission list.</returns>
+ /// <exception cref="UserNotExistException">Thrown when <paramref name="checkUserExistence"/> is true and user does not exist.</exception>
+ Task<UserPermissions> GetPermissionsOfUserAsync(long userId, bool checkUserExistence = true);
+
+ /// <summary>
+ /// Add a permission to user.
+ /// </summary>
+ /// <param name="userId">The id of the user.</param>
+ /// <param name="permission">The new permission.</param>
+ /// <exception cref="UserNotExistException">Thrown when user does not exist.</exception>
+ /// <exception cref="InvalidOperationOnRootUserException">Thrown when change root user's permission.</exception>
+ Task AddPermissionToUserAsync(long userId, UserPermission permission);
+
+ /// <summary>
+ /// Remove a permission from user.
+ /// </summary>
+ /// <param name="userId">The id of the user.</param>
+ /// <param name="permission">The permission.</param>
+ /// <param name="checkUserExistence">Whether check the user's existence.</param>
+ /// <exception cref="UserNotExistException">Thrown when <paramref name="checkUserExistence"/> is true and user does not exist.</exception>
+ /// <exception cref="InvalidOperationOnRootUserException">Thrown when change root user's permission.</exception>
+ Task RemovePermissionFromUserAsync(long userId, UserPermission permission, bool checkUserExistence = true);
+ }
+}