aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/app/http/user.ts
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-11-16 16:30:32 +0800
committercrupest <crupest@outlook.com>2020-11-16 16:30:32 +0800
commita687a23a641ca262dbffd383af129a0069fbc5ee (patch)
tree04b9498a38c5b06bf8d5e1cd80f4620d0646a560 /FrontEnd/src/app/http/user.ts
parentffa5d76316ccec4edc307d0432ef10fb18436c63 (diff)
downloadtimeline-a687a23a641ca262dbffd383af129a0069fbc5ee.tar.gz
timeline-a687a23a641ca262dbffd383af129a0069fbc5ee.tar.bz2
timeline-a687a23a641ca262dbffd383af129a0069fbc5ee.zip
...
Diffstat (limited to 'FrontEnd/src/app/http/user.ts')
-rw-r--r--FrontEnd/src/app/http/user.ts46
1 files changed, 45 insertions, 1 deletions
diff --git a/FrontEnd/src/app/http/user.ts b/FrontEnd/src/app/http/user.ts
index a0a02cce..9ba6508f 100644
--- a/FrontEnd/src/app/http/user.ts
+++ b/FrontEnd/src/app/http/user.ts
@@ -12,10 +12,18 @@ import {
convertToNotModified,
} from "./common";
+export const kUserPermissionList = [
+ "UserManagement",
+ "AllTimelineManagement",
+ "HighlightTimelineManagement",
+] as const;
+
+export type UserPermission = typeof kUserPermissionList[number];
+
export interface HttpUser {
uniqueId: string;
username: string;
- administrator: boolean;
+ permissions: UserPermission[];
nickname: string;
}
@@ -54,6 +62,16 @@ export interface IHttpUserClient {
): Promise<BlobWithEtag | NotModified>;
putAvatar(username: string, data: Blob, token: string): Promise<void>;
changePassword(req: HttpChangePasswordRequest, token: string): Promise<void>;
+ putUserPermission(
+ username: string,
+ permission: UserPermission,
+ token: string
+ ): Promise<void>;
+ deleteUserPermission(
+ username: string,
+ permission: UserPermission,
+ token: string
+ ): Promise<void>;
}
export class HttpUserClient implements IHttpUserClient {
@@ -119,6 +137,32 @@ export class HttpUserClient implements IHttpUserClient {
.catch(convertToNetworkError)
.then();
}
+
+ putUserPermission(
+ username: string,
+ permission: UserPermission,
+ token: string
+ ): Promise<void> {
+ return axios
+ .put(
+ `${apiBaseUrl}/users/${username}/permissions/${permission}?token=${token}`
+ )
+ .catch(convertToNetworkError)
+ .then();
+ }
+
+ deleteUserPermission(
+ username: string,
+ permission: UserPermission,
+ token: string
+ ): Promise<void> {
+ return axios
+ .delete(
+ `${apiBaseUrl}/users/${username}/permissions/${permission}?token=${token}`
+ )
+ .catch(convertToNetworkError)
+ .then();
+ }
}
let client: IHttpUserClient = new HttpUserClient();