mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-19 09:38:19 +08:00
core: schemastery validator
This commit is contained in:
1 parent
2d4d99c80c
commit
1f113e7a08
17 files changed
+145
-136
No files matched your search
@@ -1,25 +1,23 @@
|
||||
import Schema from 'schemastery';
|
||||
import { addScript } from '../loader';
|
||||
import { PRIV } from '../model/builtin';
|
||||
import user from '../model/user';
|
||||
import db from '../service/db';
|
||||
|
||||
export const description = 'Delete a user';
|
||||
|
||||
const collDocument = db.collection('document');
|
||||
const collDomainUser = db.collection('domain.user');
|
||||
const collRecord = db.collection('record');
|
||||
const collMessage = db.collection('message');
|
||||
|
||||
export async function run({ uid }) {
|
||||
await collDocument.deleteMany({ owner: uid });
|
||||
await collRecord.deleteMany({ uid });
|
||||
await collDomainUser.deleteMany({ uid });
|
||||
await collMessage.deleteMany({ $or: [{ from: uid }, { to: uid }] });
|
||||
await user.setPriv(uid, PRIV.PRIV_NONE);
|
||||
return uid;
|
||||
}
|
||||
|
||||
export const validate = {
|
||||
uid: 'number',
|
||||
};
|
||||
|
||||
global.Hydro.script.deleteUser = { run, description, validate };
|
||||
addScript('deleteUser', 'Delete a user')
|
||||
.args(Schema.object({
|
||||
uid: Schema.number(),
|
||||
}))
|
||||
.action(async ({ uid }) => {
|
||||
await collDocument.deleteMany({ owner: uid });
|
||||
await collRecord.deleteMany({ uid });
|
||||
await collDomainUser.deleteMany({ uid });
|
||||
await collMessage.deleteMany({ $or: [{ from: uid }, { to: uid }] });
|
||||
await user.setPriv(uid, PRIV.PRIV_NONE);
|
||||
return true;
|
||||
});
|
||||
Reference in new issue
Block a user