ntfy/web/src/app/UserManager.js

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

51 lines
1,000 B
JavaScript
Raw Normal View History

2023-06-10 06:32:34 +12:00
import db from "./db";
import session from "./Session";
class UserManager {
2023-06-14 00:02:54 +12:00
constructor(dbImpl) {
this.db = dbImpl;
}
async all() {
const users = await this.db.users.toArray();
if (session.exists()) {
users.unshift(this.localUser());
}
return users;
2023-05-24 07:13:01 +12:00
}
async get(baseUrl) {
2023-01-05 16:47:12 +13:00
if (session.exists() && baseUrl === config.base_url) {
return this.localUser();
}
return this.db.users.get(baseUrl);
2023-05-24 07:13:01 +12:00
}
async save(user) {
2023-01-05 16:47:12 +13:00
if (session.exists() && user.baseUrl === config.base_url) {
return;
}
await this.db.users.put(user);
2023-05-24 07:13:01 +12:00
}
async delete(baseUrl) {
2023-01-05 16:47:12 +13:00
if (session.exists() && baseUrl === config.base_url) {
return;
}
await this.db.users.delete(baseUrl);
2023-05-24 07:13:01 +12:00
}
localUser() {
if (!session.exists()) {
return null;
}
2023-05-24 07:13:01 +12:00
return {
2023-01-05 16:47:12 +13:00
baseUrl: config.base_url,
username: session.username(),
token: session.token(), // Not "password"!
2023-05-24 07:13:01 +12:00
};
}
}
2023-06-10 06:32:34 +12:00
export default new UserManager(db());