59 lines
1.9 KiB
JavaScript
59 lines
1.9 KiB
JavaScript
import { OakRowInconsistencyException } from 'oak-domain/lib/types';
|
|
import { assert } from 'oak-domain/lib/utils/assert';
|
|
import { checkAttributesNotNull } from 'oak-domain/lib/utils/validator';
|
|
const checkers = [
|
|
{
|
|
type: 'data',
|
|
action: 'create',
|
|
entity: 'parasite',
|
|
checker: (data, context) => {
|
|
// const { data } = operation as EntityDict['parasite']['Create'];
|
|
assert(!(data instanceof Array));
|
|
checkAttributesNotNull('parasite', data, ['expiresAt', 'tokenLifeLength']);
|
|
if (data.userId) {
|
|
const users2 = context.select('user', {
|
|
data: {
|
|
id: 1,
|
|
userState: 1,
|
|
},
|
|
filter: {
|
|
id: data.userId,
|
|
},
|
|
}, { dontCollect: true });
|
|
const checkUser = (users) => {
|
|
const [user] = users;
|
|
if (user.userState !== 'shadow') {
|
|
const e = new OakRowInconsistencyException();
|
|
e.addData('user', [user], context.getSchema());
|
|
throw e;
|
|
}
|
|
};
|
|
if (users2 instanceof Promise) {
|
|
return users2.then((u) => checkUser(u));
|
|
}
|
|
return checkUser(users2);
|
|
}
|
|
assert(data.user && data.user.action === 'create');
|
|
},
|
|
},
|
|
{
|
|
type: 'row',
|
|
entity: 'parasite',
|
|
action: ['cancel'],
|
|
errMsg: '您没有设置失效的权限',
|
|
filter: {
|
|
expired: false,
|
|
},
|
|
},
|
|
{
|
|
type: 'row',
|
|
entity: 'parasite',
|
|
action: ['qrcode'],
|
|
errMsg: '您没有查看二维码的权限',
|
|
filter: {
|
|
expired: false,
|
|
},
|
|
},
|
|
];
|
|
export default checkers;
|