core&ui: implement domain leave and kick

This commit is contained in:
undefined committed 2025-03-22 05:55:56 +08:00
1 parent f8ed636b30
commit a0f38d9ad1
13 files changed
+64 -28

No files matched your search

+10 -1
View File
@@ -135,7 +135,7 @@ class DomainModel {
@ArgMethod
static async setUserRole(domainId: string, uid: MaybeArray<number>, role: string, autojoin = false) {
const update = { $set: { role, ...(autojoin ? { join: true } : {}) } };
if (!(uid instanceof Array)) {
if (!(Array.isArray(uid))) {
const res = await collUser.findOneAndUpdate(
{ domainId, uid },
update,
@@ -152,6 +152,15 @@ class DomainModel {
return await collUser.updateMany({ domainId, uid: { $in: uid } }, update, { upsert: true });
}
static async setJoin(domainId: string, uid: MaybeArray<number>, join: boolean) {
if (!(Array.isArray(uid))) {
await DomainModel.updateUserInDomain(domainId, uid, { $set: { join } });
return;
}
await collUser.updateMany({ domainId, uid: { $in: uid } }, { $set: { join } });
deleteUserCache(domainId);
}
static async getRoles(domainId: string, count?: boolean): Promise<any[]>;
static async getRoles(domain: DomainDoc, count?: boolean): Promise<any[]>;
@ArgMethod