feat: add switch orgs in org

This commit is contained in:
2024-10-17 01:55:05 +08:00
parent 430a403f25
commit cffaf48641
2 changed files with 22 additions and 6 deletions

View File

@@ -26,6 +26,10 @@ export class User extends Model {
declare orgId: string;
declare email: string;
declare avatar: string;
tokenUser: any;
setTokenUser(tokenUser: any) {
this.tokenUser = tokenUser;
}
async createToken(uid?: string) {
const { id, username, type } = this;
const expireTime = 60 * 60 * 24 * 7; // 7 days
@@ -91,7 +95,12 @@ export class User extends Model {
};
}
async getOrgs() {
const id = this.id;
let id = this.id;
if (this.type === 'org') {
if (this.tokenUser && this.tokenUser.uid) {
id = this.tokenUser.uid;
}
}
const cache = await redis.get(`user:${id}:orgs`);
if (cache) {
return JSON.parse(cache);
@@ -109,9 +118,14 @@ export class User extends Model {
},
});
const orgNames = orgs.map((org) => org.username);
await redis.set(`user:${id}:orgs`, JSON.stringify(orgNames), 'EX', 60 * 60); // 1 hour
if (orgNames.length > 0) {
await redis.set(`user:${id}:orgs`, JSON.stringify(orgNames), 'EX', 60 * 60); // 1 hour
}
return orgNames;
}
async expireOrgs() {
await redis.del(`user:${this.id}:orgs`);
}
}
User.init(
{