feat: 删除mobile前删除关联的已禁用token
This commit is contained in:
parent
212df98c60
commit
75a303ed95
|
|
@ -1,6 +1,8 @@
|
|||
import { differenceBy } from 'oak-domain/lib/utils/lodash';
|
||||
import { OakUserDisabledException } from '../../../types/Exception';
|
||||
import assert from 'assert';
|
||||
import { generateNewId } from 'oak-domain/lib/utils/uuid';
|
||||
import { OakRowInconsistencyException } from 'oak-domain/lib/types';
|
||||
export default OakComponent({
|
||||
entity: 'mobile',
|
||||
isList: true,
|
||||
|
|
@ -108,8 +110,33 @@ export default OakComponent({
|
|||
},
|
||||
async onRemoveConfirm() {
|
||||
const { mobileId } = this.state;
|
||||
this.removeItem(mobileId);
|
||||
await this.execute();
|
||||
// this.removeItem(mobileId);
|
||||
try {
|
||||
await this.execute(undefined, undefined, undefined, [
|
||||
{
|
||||
entity: 'mobile',
|
||||
operation: {
|
||||
id: generateNewId(),
|
||||
action: 'remove',
|
||||
data: {},
|
||||
filter: {
|
||||
id: mobileId,
|
||||
},
|
||||
},
|
||||
},
|
||||
]);
|
||||
}
|
||||
catch (err) {
|
||||
if (err instanceof OakRowInconsistencyException || err.name === 'OakRowInconsistencyException') {
|
||||
this.setMessage({
|
||||
content: this.t('occupied'),
|
||||
type: 'warning',
|
||||
});
|
||||
}
|
||||
else {
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
this.setState({
|
||||
confirmDeleteModalVisible: false,
|
||||
mobileId: '',
|
||||
|
|
|
|||
|
|
@ -7,5 +7,6 @@
|
|||
},
|
||||
"success": "添加成功",
|
||||
"please input mobile": "请输入手机号",
|
||||
"tip": "提示"
|
||||
"tip": "提示",
|
||||
"occupied": "当前手机号正处于登录状态,无法删除"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
declare const _default: (import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "extraFile", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "oauthUser", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "application", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "address", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "user", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "message", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "notification", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatLogin", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "articleMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "article", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "parasite", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "sessionMessage", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMpJump", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "system", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "passport", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "oauthApplication", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "oauthProvider", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "oauthUserAuthorization", import("../context/BackendRuntimeContext").BackendRuntimeContext<import("../oak-app-domain").EntityDict>>)[];
|
||||
declare const _default: (import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "mobile", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "application", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "address", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "user", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "message", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "notification", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatLogin", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "articleMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "article", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "parasite", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "extraFile", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "sessionMessage", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMpJump", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "system", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "passport", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "oauthApplication", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "oauthProvider", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "oauthUser", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "oauthUserAuthorization", import("../context/BackendRuntimeContext").BackendRuntimeContext<import("../oak-app-domain").EntityDict>>)[];
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import oauthAppsTriggers from './oauthApps';
|
|||
import oauthProviderTriggers from './oauthProvider';
|
||||
import oauthUserTriggers from './oauthUser';
|
||||
import oauthUserAuthTriggers from './oauthUserAuth';
|
||||
import mobileTriggers from './mobile';
|
||||
// import accountTriggers from './account';
|
||||
export default [
|
||||
// ...accountTriggers,
|
||||
|
|
@ -45,4 +46,5 @@ export default [
|
|||
...oauthProviderTriggers,
|
||||
...oauthUserTriggers,
|
||||
...oauthUserAuthTriggers,
|
||||
...mobileTriggers,
|
||||
];
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
import { Trigger } from 'oak-domain/lib/types/Trigger';
|
||||
import { EntityDict } from '../oak-app-domain/EntityDict';
|
||||
import { BRC } from '../types/RuntimeCxt';
|
||||
declare const triggers: Trigger<EntityDict, 'mobile', BRC<EntityDict>>[];
|
||||
export default triggers;
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
import { generateNewIdAsync } from 'oak-domain/lib/utils/uuid';
|
||||
const triggers = [
|
||||
{
|
||||
name: '当mobile删除前,将关联的已禁用token删除',
|
||||
entity: 'mobile',
|
||||
action: 'remove',
|
||||
when: 'before',
|
||||
asRoot: true,
|
||||
fn: async ({ operation }, context, option) => {
|
||||
const { filter } = operation;
|
||||
const mobiles = await context.select('mobile', {
|
||||
data: {
|
||||
id: 1,
|
||||
ableState: 1,
|
||||
},
|
||||
filter,
|
||||
}, { forUpdate: true });
|
||||
if (mobiles && mobiles.length > 0) {
|
||||
const mobileIds = mobiles.map((ele) => ele.id);
|
||||
await context.operate('token', {
|
||||
id: await generateNewIdAsync(),
|
||||
action: 'remove',
|
||||
data: {},
|
||||
filter: {
|
||||
entity: 'mobile',
|
||||
entityId: {
|
||||
$in: mobileIds,
|
||||
},
|
||||
ableState: 'disabled',
|
||||
},
|
||||
}, option);
|
||||
}
|
||||
return mobiles.length;
|
||||
}
|
||||
}
|
||||
];
|
||||
export default triggers;
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
declare const _default: (import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "oauthUser", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "oauthProvider", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "oauthApplication", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "passport", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "system", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMpJump", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "sessionMessage", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "parasite", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatLogin", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "notification", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "user", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "extraFile", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "articleMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "article", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "application", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "address", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "message", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "oauthUserAuthorization", import("../context/BackendRuntimeContext").BackendRuntimeContext<import("../oak-app-domain").EntityDict>>)[];
|
||||
declare const _default: (import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "mobile", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "application", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "address", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "user", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "message", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "notification", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatLogin", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "articleMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "article", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "parasite", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "extraFile", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "sessionMessage", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMpJump", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "system", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "passport", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "oauthApplication", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "oauthProvider", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "oauthUser", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "oauthUserAuthorization", import("../context/BackendRuntimeContext").BackendRuntimeContext<import("../oak-app-domain").EntityDict>>)[];
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ const oauthApps_1 = tslib_1.__importDefault(require("./oauthApps"));
|
|||
const oauthProvider_1 = tslib_1.__importDefault(require("./oauthProvider"));
|
||||
const oauthUser_1 = tslib_1.__importDefault(require("./oauthUser"));
|
||||
const oauthUserAuth_1 = tslib_1.__importDefault(require("./oauthUserAuth"));
|
||||
const mobile_1 = tslib_1.__importDefault(require("./mobile"));
|
||||
// import accountTriggers from './account';
|
||||
exports.default = [
|
||||
// ...accountTriggers,
|
||||
|
|
@ -48,4 +49,5 @@ exports.default = [
|
|||
...oauthProvider_1.default,
|
||||
...oauthUser_1.default,
|
||||
...oauthUserAuth_1.default,
|
||||
...mobile_1.default,
|
||||
];
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
import { Trigger } from 'oak-domain/lib/types/Trigger';
|
||||
import { EntityDict } from '../oak-app-domain/EntityDict';
|
||||
import { BRC } from '../types/RuntimeCxt';
|
||||
declare const triggers: Trigger<EntityDict, 'mobile', BRC<EntityDict>>[];
|
||||
export default triggers;
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const uuid_1 = require("oak-domain/lib/utils/uuid");
|
||||
const triggers = [
|
||||
{
|
||||
name: '当mobile删除前,将关联的已禁用token删除',
|
||||
entity: 'mobile',
|
||||
action: 'remove',
|
||||
when: 'before',
|
||||
asRoot: true,
|
||||
fn: async ({ operation }, context, option) => {
|
||||
const { filter } = operation;
|
||||
const mobiles = await context.select('mobile', {
|
||||
data: {
|
||||
id: 1,
|
||||
ableState: 1,
|
||||
},
|
||||
filter,
|
||||
}, { forUpdate: true });
|
||||
if (mobiles && mobiles.length > 0) {
|
||||
const mobileIds = mobiles.map((ele) => ele.id);
|
||||
await context.operate('token', {
|
||||
id: await (0, uuid_1.generateNewIdAsync)(),
|
||||
action: 'remove',
|
||||
data: {},
|
||||
filter: {
|
||||
entity: 'mobile',
|
||||
entityId: {
|
||||
$in: mobileIds,
|
||||
},
|
||||
ableState: 'disabled',
|
||||
},
|
||||
}, option);
|
||||
}
|
||||
return mobiles.length;
|
||||
}
|
||||
}
|
||||
];
|
||||
exports.default = triggers;
|
||||
|
|
@ -2,6 +2,8 @@ import { differenceBy } from 'oak-domain/lib/utils/lodash';
|
|||
import { OakUserDisabledException } from '../../../types/Exception';
|
||||
import assert from 'assert';
|
||||
import { WechatMpConfig } from '../../../oak-app-domain/Application/_baseSchema';
|
||||
import { generateNewId } from 'oak-domain/lib/utils/uuid';
|
||||
import { OakRowInconsistencyException } from 'oak-domain/lib/types';
|
||||
|
||||
export default OakComponent({
|
||||
entity: 'mobile',
|
||||
|
|
@ -109,8 +111,31 @@ export default OakComponent({
|
|||
|
||||
async onRemoveConfirm() {
|
||||
const { mobileId } = this.state;
|
||||
this.removeItem(mobileId);
|
||||
await this.execute();
|
||||
// this.removeItem(mobileId);
|
||||
try {
|
||||
await this.execute(undefined, undefined, undefined, [
|
||||
{
|
||||
entity: 'mobile',
|
||||
operation: {
|
||||
id: generateNewId(),
|
||||
action: 'remove',
|
||||
data: {},
|
||||
filter: {
|
||||
id: mobileId,
|
||||
},
|
||||
},
|
||||
},
|
||||
]);
|
||||
} catch (err:any) {
|
||||
if (err instanceof OakRowInconsistencyException || err.name === 'OakRowInconsistencyException') {
|
||||
this.setMessage({
|
||||
content: this.t('occupied'),
|
||||
type: 'warning',
|
||||
})
|
||||
} else {
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
this.setState({
|
||||
confirmDeleteModalVisible: false,
|
||||
mobileId: '',
|
||||
|
|
|
|||
|
|
@ -7,5 +7,6 @@
|
|||
},
|
||||
"success": "添加成功",
|
||||
"please input mobile": "请输入手机号",
|
||||
"tip": "提示"
|
||||
"tip": "提示",
|
||||
"occupied": "当前手机号正处于登录状态,无法删除"
|
||||
}
|
||||
|
|
@ -20,6 +20,7 @@ import oauthAppsTriggers from './oauthApps';
|
|||
import oauthProviderTriggers from './oauthProvider';
|
||||
import oauthUserTriggers from './oauthUser';
|
||||
import oauthUserAuthTriggers from './oauthUserAuth';
|
||||
import mobileTriggers from './mobile';
|
||||
|
||||
// import accountTriggers from './account';
|
||||
|
||||
|
|
@ -48,4 +49,5 @@ export default [
|
|||
...oauthProviderTriggers,
|
||||
...oauthUserTriggers,
|
||||
...oauthUserAuthTriggers,
|
||||
...mobileTriggers,
|
||||
];
|
||||
|
|
|
|||
|
|
@ -0,0 +1,42 @@
|
|||
import { generateNewIdAsync } from 'oak-domain/lib/utils/uuid';
|
||||
import { RemoveTrigger, Trigger, } from 'oak-domain/lib/types/Trigger';
|
||||
import { EntityDict } from '../oak-app-domain/EntityDict';
|
||||
import { BRC } from '../types/RuntimeCxt';
|
||||
|
||||
const triggers: Trigger<EntityDict, 'mobile', BRC<EntityDict>>[] = [
|
||||
{
|
||||
name: '当mobile删除前,将关联的已禁用token删除',
|
||||
entity: 'mobile',
|
||||
action: 'remove',
|
||||
when: 'before',
|
||||
asRoot: true,
|
||||
fn: async ({ operation }, context, option) => {
|
||||
const { filter } = operation;
|
||||
const mobiles = await context.select('mobile', {
|
||||
data: {
|
||||
id: 1,
|
||||
ableState: 1,
|
||||
},
|
||||
filter,
|
||||
}, { forUpdate: true });
|
||||
if (mobiles && mobiles.length > 0) {
|
||||
const mobileIds = mobiles.map((ele) => ele.id!);
|
||||
await context.operate('token', {
|
||||
id: await generateNewIdAsync(),
|
||||
action: 'remove',
|
||||
data: {},
|
||||
filter: {
|
||||
entity: 'mobile',
|
||||
entityId: {
|
||||
$in: mobileIds,
|
||||
},
|
||||
ableState: 'disabled',
|
||||
},
|
||||
}, option);
|
||||
}
|
||||
return mobiles.length;
|
||||
}
|
||||
} as RemoveTrigger<EntityDict, 'mobile', BRC<EntityDict>>
|
||||
];
|
||||
|
||||
export default triggers;
|
||||
Loading…
Reference in New Issue