Add user management API

This commit is contained in:
2024-05-28 08:35:36 +08:00
parent 0918684eb6
commit 4f2d7a1af1
2 changed files with 147 additions and 1 deletions

26
db.ts
View File

@@ -979,6 +979,20 @@ export class EhDb {
delete_token(token: string) {
this.db.query("DELETE FROM token WHERE token = ?;", [token]);
}
delete_user(id: number) {
this.db.query("DELETE FROM user WHERE id = ?;", [id]);
this.db.query("DELETE FROM token WHERE uid = ?;", [id]);
this.db.query("DELETE FROM client_config WHERE uid = ?;", [id]);
}
delete_user_token(uid: number, excluded_token?: number) {
let where = "";
const args = [uid];
if (excluded_token) {
where = " AND id != ?";
args.push(excluded_token);
}
this.db.query(`DELETE FROM token WHERE uid = ?${where};`, args);
}
async flock() {
if (!this.#file) return;
await eval(`Deno.flock(${this.#file.rid}, true);`);
@@ -1438,4 +1452,16 @@ export class EhDb {
[new Date(), token],
);
}
update_user(user: User) {
this.db.query(
"INSERT OR REPLACE INTO user VALUES (?, ?, ?, ?, ?);",
[
user.id,
user.username,
user.password,
user.is_admin,
user.permissions,
],
);
}
}