oak-general-business/lib/checkers/user.js

68 lines
1.8 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var types_1 = require("oak-domain/lib/types");
var constants_1 = require("../constants");
var checkers = [
{
type: 'row',
action: 'remove',
entity: 'user',
filter: {
userState: 'shadow',
}
},
{
type: 'relation',
action: ['play', 'remove', 'disable', 'enable'],
entity: 'user',
relationFilter: function (userId) {
// 只有root才能进行操作
throw new types_1.OakUserUnpermittedException();
},
errMsg: '越权操作',
},
{
type: 'data',
action: 'play',
entity: 'user',
checker: function (data) {
// 不记得什么意思了
/* const token = context.getToken();
const { userId } = token!;
if (userId === operation.filter!.id) {
throw new OakRowInconsistencyException();
} */
},
},
{
type: 'data',
action: 'grant',
entity: 'user',
checker: function (data) {
if (Object.keys(data).filter(function (ele) { return !ele.includes('$'); }).length > 0) {
throw new types_1.OakInputIllegalException('user', Object.keys(data), '授权不允许传入其它属性');
}
}
},
{
type: 'row',
action: 'disable',
entity: 'user',
filter: {
id: {
$nin: {
entity: 'userRole',
data: {
userId: 1,
},
filter: {
roleId: constants_1.ROOT_ROLE_ID,
},
},
}
},
errMsg: '不能禁用root用户',
}
];
exports.default = checkers;