backendRuntimeContext中对tokenId的重新设计
This commit is contained in:
parent
b53d8fb469
commit
fc0c0b235c
|
|
@ -1,7 +1,7 @@
|
|||
import { Style } from '../../../../types/Style';
|
||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../../oak-app-domain").EntityDict, keyof import("../../../../oak-app-domain").EntityDict, false, {
|
||||
style: Style;
|
||||
entity: "application" | "system" | "platform";
|
||||
entity: "application" | "platform" | "system";
|
||||
entityId: string;
|
||||
name: string;
|
||||
}>) => React.ReactElement;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { Config } from '../../../types/Config';
|
||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, keyof import("../../../oak-app-domain").EntityDict, false, {
|
||||
config: Config;
|
||||
entity: "system" | "platform";
|
||||
entity: "platform" | "system";
|
||||
name: string;
|
||||
entityId: string;
|
||||
}>) => React.ReactElement;
|
||||
|
|
|
|||
|
|
@ -15,17 +15,17 @@ declare const _default: <ED2 extends EntityDict & BaseEntityDict, T2 extends key
|
|||
buttonProps?: (ButtonProps & {
|
||||
color?: "default" | "success" | "warning" | "primary" | "danger" | undefined;
|
||||
fill?: "none" | "solid" | "outline" | undefined;
|
||||
size?: "small" | "large" | "middle" | "mini" | undefined;
|
||||
size?: "small" | "middle" | "large" | "mini" | undefined;
|
||||
block?: boolean | undefined;
|
||||
loading?: boolean | "auto" | undefined;
|
||||
loadingText?: string | undefined;
|
||||
loadingIcon?: import("react").ReactNode;
|
||||
disabled?: boolean | undefined;
|
||||
onClick?: ((event: import("react").MouseEvent<HTMLButtonElement, MouseEvent>) => unknown) | undefined;
|
||||
type?: "reset" | "submit" | "button" | undefined;
|
||||
type?: "button" | "submit" | "reset" | undefined;
|
||||
shape?: "default" | "rounded" | "rectangular" | undefined;
|
||||
children?: import("react").ReactNode;
|
||||
} & Pick<import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement>, "id" | "onMouseUp" | "onMouseDown" | "onTouchStart" | "onTouchEnd"> & {
|
||||
} & Pick<import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement>, "id" | "onMouseDown" | "onMouseUp" | "onTouchStart" | "onTouchEnd"> & {
|
||||
className?: string | undefined;
|
||||
style?: (import("react").CSSProperties & Partial<Record<"--text-color" | "--background-color" | "--border-radius" | "--border-width" | "--border-style" | "--border-color", string>>) | undefined;
|
||||
tabIndex?: number | undefined;
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ declare const _default: (props: import("oak-frontend-base").ReactComponentProps<
|
|||
entity: keyof EntityDict;
|
||||
entityFilter: any;
|
||||
relationIds: string[];
|
||||
rule: "single" | "all" | "free";
|
||||
ruleOnRow: "single" | "all" | "free";
|
||||
rule: "all" | "single" | "free";
|
||||
ruleOnRow: "all" | "single" | "free";
|
||||
onPickRelations: (ids: string[]) => void;
|
||||
onPickRows: (ids: string[]) => void;
|
||||
pickedRowIds: string[] | undefined;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ declare const _default: (props: import("oak-frontend-base").ReactComponentProps<
|
|||
claimUrl: string;
|
||||
qrCodeType: QrCodeType;
|
||||
multiple: boolean;
|
||||
rule: "single" | "all" | "free";
|
||||
ruleOnRow: "single" | "all" | "free";
|
||||
rule: "all" | "single" | "free";
|
||||
ruleOnRow: "all" | "single" | "free";
|
||||
}>) => React.ReactElement;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ export declare abstract class BackendRuntimeContext<ED extends EntityDict & Base
|
|||
protected rootMode?: boolean;
|
||||
private userId?;
|
||||
refineOpRecords(): Promise<void>;
|
||||
setTokenValue(tokenValue: string, later?: boolean, userId?: string): Promise<void>;
|
||||
setTokenValue(tokenValue: string, userId?: string): Promise<void>;
|
||||
setApplication(appId: string): Promise<void>;
|
||||
initialize(data?: SerializedData, later?: boolean): Promise<void>;
|
||||
getApplicationId(): ED["application"]["Schema"]["id"] | undefined;
|
||||
|
|
|
|||
|
|
@ -43,8 +43,9 @@ export class BackendRuntimeContext extends BRC {
|
|||
}
|
||||
}
|
||||
}
|
||||
async setTokenValue(tokenValue, later, userId) {
|
||||
if (!later || !userId) {
|
||||
async setTokenValue(tokenValue, userId) {
|
||||
if (tokenValue) {
|
||||
// 前台传递
|
||||
const result = await this.select('token', {
|
||||
data: {
|
||||
id: 1,
|
||||
|
|
@ -54,6 +55,7 @@ export class BackendRuntimeContext extends BRC {
|
|||
userState: 1,
|
||||
isRoot: 1,
|
||||
},
|
||||
userId: 1,
|
||||
value: 1,
|
||||
player: {
|
||||
id: 1,
|
||||
|
|
@ -69,37 +71,34 @@ export class BackendRuntimeContext extends BRC {
|
|||
});
|
||||
if (result.length === 0) {
|
||||
console.log(`构建BackendRuntimeContext对应tokenValue「${tokenValue}找不到相关的user`);
|
||||
if (!later) {
|
||||
throw new OakTokenExpiredException();
|
||||
}
|
||||
// this.tokenException = new OakTokenExpiredException();
|
||||
return;
|
||||
throw new OakTokenExpiredException();
|
||||
}
|
||||
const token = result[0];
|
||||
if (token.ableState === 'disabled' && !later) {
|
||||
if (token.ableState === 'disabled') {
|
||||
console.log(`构建BackendRuntimeContext对应tokenValue「${tokenValue}已经被disable`);
|
||||
throw new OakTokenExpiredException();
|
||||
// this.tokenException = new OakTokenExpiredException();
|
||||
return;
|
||||
}
|
||||
const { user, player } = token;
|
||||
this.amIRoot = user?.isRoot;
|
||||
this.amIReallyRoot = player?.isRoot;
|
||||
this.token = token;
|
||||
this.userId = token.userId;
|
||||
return;
|
||||
}
|
||||
// 若是later环境,用userId来查询处理
|
||||
const [user] = await this.select('user', {
|
||||
data: {
|
||||
id: 1,
|
||||
isRoot: 1,
|
||||
},
|
||||
filter: { id: userId },
|
||||
}, { dontCollect: true });
|
||||
assert(user, '初始化context时有userId但查询不到user');
|
||||
this.amIRoot = user.isRoot;
|
||||
this.amIReallyRoot = user.isRoot;
|
||||
this.userId = userId;
|
||||
if (userId) {
|
||||
// 若是后台环境,用userId来查询处理
|
||||
const [user] = await this.select('user', {
|
||||
data: {
|
||||
id: 1,
|
||||
isRoot: 1,
|
||||
},
|
||||
filter: { id: userId },
|
||||
}, { dontCollect: true });
|
||||
assert(user, '初始化context时有userId但查询不到user');
|
||||
this.amIRoot = user.isRoot;
|
||||
this.amIReallyRoot = user.isRoot;
|
||||
this.userId = userId;
|
||||
}
|
||||
}
|
||||
async setApplication(appId) {
|
||||
const result = await this.select('application', {
|
||||
|
|
@ -125,7 +124,7 @@ export class BackendRuntimeContext extends BRC {
|
|||
promises.push(this.setApplication(appId));
|
||||
}
|
||||
if (tokenValue) {
|
||||
promises.push(this.setTokenValue(tokenValue, later, userId));
|
||||
promises.push(this.setTokenValue(tokenValue, userId));
|
||||
}
|
||||
if (promises.length > 0) {
|
||||
await Promise.all(promises);
|
||||
|
|
@ -195,10 +194,10 @@ export class BackendRuntimeContext extends BRC {
|
|||
}
|
||||
async getSerializedData() {
|
||||
const data = await super.getSerializedData();
|
||||
// 后台物化上下文直接存userId;
|
||||
return {
|
||||
...data,
|
||||
a: this.application?.id,
|
||||
t: this.token?.value,
|
||||
rm: this.rootMode,
|
||||
userId: this.getCurrentUserId(true),
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
declare const _default: (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, "message", 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, "application", 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, "articleMenu", 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, "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, "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>>)[];
|
||||
declare const _default: (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, "address", 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, "article", 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, "extraFile", 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, "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, "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>>)[];
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ export declare function createToDo<ED extends EntityDict & BaseEntityDict, T ext
|
|||
redirectTo: EntityDict['toDo']['OpSchema']['redirectTo'];
|
||||
entity: any;
|
||||
entityId: string;
|
||||
}, userIds?: string[]): Promise<0 | 1>;
|
||||
}, userIds?: string[]): Promise<1 | 0>;
|
||||
/**
|
||||
* 完成todo例程,当在entity对象上进行action操作时(操作条件是filter),将对应的todo完成
|
||||
* 必须在entity的action的后trigger中调用
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ export declare abstract class BackendRuntimeContext<ED extends EntityDict & Base
|
|||
protected rootMode?: boolean;
|
||||
private userId?;
|
||||
refineOpRecords(): Promise<void>;
|
||||
setTokenValue(tokenValue: string, later?: boolean, userId?: string): Promise<void>;
|
||||
setTokenValue(tokenValue: string, userId?: string): Promise<void>;
|
||||
setApplication(appId: string): Promise<void>;
|
||||
initialize(data?: SerializedData, later?: boolean): Promise<void>;
|
||||
getApplicationId(): ED["application"]["Schema"]["id"] | undefined;
|
||||
|
|
|
|||
|
|
@ -46,8 +46,9 @@ class BackendRuntimeContext extends oak_frontend_base_1.BackendRuntimeContext {
|
|||
}
|
||||
}
|
||||
}
|
||||
async setTokenValue(tokenValue, later, userId) {
|
||||
if (!later || !userId) {
|
||||
async setTokenValue(tokenValue, userId) {
|
||||
if (tokenValue) {
|
||||
// 前台传递
|
||||
const result = await this.select('token', {
|
||||
data: {
|
||||
id: 1,
|
||||
|
|
@ -57,6 +58,7 @@ class BackendRuntimeContext extends oak_frontend_base_1.BackendRuntimeContext {
|
|||
userState: 1,
|
||||
isRoot: 1,
|
||||
},
|
||||
userId: 1,
|
||||
value: 1,
|
||||
player: {
|
||||
id: 1,
|
||||
|
|
@ -72,37 +74,34 @@ class BackendRuntimeContext extends oak_frontend_base_1.BackendRuntimeContext {
|
|||
});
|
||||
if (result.length === 0) {
|
||||
console.log(`构建BackendRuntimeContext对应tokenValue「${tokenValue}找不到相关的user`);
|
||||
if (!later) {
|
||||
throw new Exception_1.OakTokenExpiredException();
|
||||
}
|
||||
// this.tokenException = new OakTokenExpiredException();
|
||||
return;
|
||||
throw new Exception_1.OakTokenExpiredException();
|
||||
}
|
||||
const token = result[0];
|
||||
if (token.ableState === 'disabled' && !later) {
|
||||
if (token.ableState === 'disabled') {
|
||||
console.log(`构建BackendRuntimeContext对应tokenValue「${tokenValue}已经被disable`);
|
||||
throw new Exception_1.OakTokenExpiredException();
|
||||
// this.tokenException = new OakTokenExpiredException();
|
||||
return;
|
||||
}
|
||||
const { user, player } = token;
|
||||
this.amIRoot = user?.isRoot;
|
||||
this.amIReallyRoot = player?.isRoot;
|
||||
this.token = token;
|
||||
this.userId = token.userId;
|
||||
return;
|
||||
}
|
||||
// 若是later环境,用userId来查询处理
|
||||
const [user] = await this.select('user', {
|
||||
data: {
|
||||
id: 1,
|
||||
isRoot: 1,
|
||||
},
|
||||
filter: { id: userId },
|
||||
}, { dontCollect: true });
|
||||
(0, assert_1.assert)(user, '初始化context时有userId但查询不到user');
|
||||
this.amIRoot = user.isRoot;
|
||||
this.amIReallyRoot = user.isRoot;
|
||||
this.userId = userId;
|
||||
if (userId) {
|
||||
// 若是后台环境,用userId来查询处理
|
||||
const [user] = await this.select('user', {
|
||||
data: {
|
||||
id: 1,
|
||||
isRoot: 1,
|
||||
},
|
||||
filter: { id: userId },
|
||||
}, { dontCollect: true });
|
||||
(0, assert_1.assert)(user, '初始化context时有userId但查询不到user');
|
||||
this.amIRoot = user.isRoot;
|
||||
this.amIReallyRoot = user.isRoot;
|
||||
this.userId = userId;
|
||||
}
|
||||
}
|
||||
async setApplication(appId) {
|
||||
const result = await this.select('application', {
|
||||
|
|
@ -128,7 +127,7 @@ class BackendRuntimeContext extends oak_frontend_base_1.BackendRuntimeContext {
|
|||
promises.push(this.setApplication(appId));
|
||||
}
|
||||
if (tokenValue) {
|
||||
promises.push(this.setTokenValue(tokenValue, later, userId));
|
||||
promises.push(this.setTokenValue(tokenValue, userId));
|
||||
}
|
||||
if (promises.length > 0) {
|
||||
await Promise.all(promises);
|
||||
|
|
@ -198,10 +197,10 @@ class BackendRuntimeContext extends oak_frontend_base_1.BackendRuntimeContext {
|
|||
}
|
||||
async getSerializedData() {
|
||||
const data = await super.getSerializedData();
|
||||
// 后台物化上下文直接存userId;
|
||||
return {
|
||||
...data,
|
||||
a: this.application?.id,
|
||||
t: this.token?.value,
|
||||
rm: this.rootMode,
|
||||
userId: this.getCurrentUserId(true),
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
declare const _default: (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, "message", 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, "application", 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, "articleMenu", 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, "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, "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>>)[];
|
||||
declare const _default: (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, "address", 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, "article", 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, "extraFile", 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, "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, "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>>)[];
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ export declare function createToDo<ED extends EntityDict & BaseEntityDict, T ext
|
|||
redirectTo: EntityDict['toDo']['OpSchema']['redirectTo'];
|
||||
entity: any;
|
||||
entityId: string;
|
||||
}, userIds?: string[]): Promise<0 | 1>;
|
||||
}, userIds?: string[]): Promise<1 | 0>;
|
||||
/**
|
||||
* 完成todo例程,当在entity对象上进行action操作时(操作条件是filter),将对应的todo完成
|
||||
* 必须在entity的action的后trigger中调用
|
||||
|
|
|
|||
|
|
@ -65,8 +65,9 @@ export abstract class BackendRuntimeContext<ED extends EntityDict & BaseEntityDi
|
|||
}
|
||||
}
|
||||
|
||||
async setTokenValue(tokenValue: string, later?: boolean, userId?: string) {
|
||||
if (!later || !userId) {
|
||||
async setTokenValue(tokenValue: string, userId?: string) {
|
||||
if (tokenValue) {
|
||||
// 前台传递
|
||||
const result = await this.select(
|
||||
'token',
|
||||
{
|
||||
|
|
@ -78,6 +79,7 @@ export abstract class BackendRuntimeContext<ED extends EntityDict & BaseEntityDi
|
|||
userState: 1,
|
||||
isRoot: 1,
|
||||
},
|
||||
userId: 1,
|
||||
value: 1,
|
||||
player: {
|
||||
id: 1,
|
||||
|
|
@ -97,39 +99,36 @@ export abstract class BackendRuntimeContext<ED extends EntityDict & BaseEntityDi
|
|||
console.log(
|
||||
`构建BackendRuntimeContext对应tokenValue「${tokenValue}找不到相关的user`
|
||||
);
|
||||
if (!later) {
|
||||
throw new OakTokenExpiredException();
|
||||
}
|
||||
// this.tokenException = new OakTokenExpiredException();
|
||||
return;
|
||||
throw new OakTokenExpiredException();
|
||||
}
|
||||
const token = result[0];
|
||||
if (token.ableState === 'disabled' && !later) {
|
||||
if (token.ableState === 'disabled') {
|
||||
console.log(
|
||||
`构建BackendRuntimeContext对应tokenValue「${tokenValue}已经被disable`
|
||||
);
|
||||
throw new OakTokenExpiredException();
|
||||
// this.tokenException = new OakTokenExpiredException();
|
||||
return;
|
||||
}
|
||||
const { user, player } = token;
|
||||
this.amIRoot = user?.isRoot!;
|
||||
this.amIReallyRoot = player?.isRoot!;
|
||||
this.token = token;
|
||||
this.userId = token.userId!;
|
||||
return;
|
||||
}
|
||||
// 若是later环境,用userId来查询处理
|
||||
const [user] = await this.select('user', {
|
||||
data: {
|
||||
id: 1,
|
||||
isRoot: 1,
|
||||
},
|
||||
filter: { id: userId },
|
||||
}, { dontCollect: true });
|
||||
assert(user, '初始化context时有userId但查询不到user');
|
||||
this.amIRoot = user.isRoot!;
|
||||
this.amIReallyRoot = user.isRoot!;
|
||||
this.userId = userId;
|
||||
if (userId) {
|
||||
// 若是后台环境,用userId来查询处理
|
||||
const [user] = await this.select('user', {
|
||||
data: {
|
||||
id: 1,
|
||||
isRoot: 1,
|
||||
},
|
||||
filter: { id: userId },
|
||||
}, { dontCollect: true });
|
||||
assert(user, '初始化context时有userId但查询不到user');
|
||||
this.amIRoot = user.isRoot!;
|
||||
this.amIReallyRoot = user.isRoot!;
|
||||
this.userId = userId;
|
||||
}
|
||||
}
|
||||
|
||||
async setApplication(appId: string) {
|
||||
|
|
@ -164,7 +163,7 @@ export abstract class BackendRuntimeContext<ED extends EntityDict & BaseEntityDi
|
|||
promises.push(this.setApplication(appId));
|
||||
}
|
||||
if (tokenValue) {
|
||||
promises.push(this.setTokenValue(tokenValue, later, userId));
|
||||
promises.push(this.setTokenValue(tokenValue, userId));
|
||||
}
|
||||
if (promises.length > 0) {
|
||||
await Promise.all(promises);
|
||||
|
|
@ -243,10 +242,10 @@ export abstract class BackendRuntimeContext<ED extends EntityDict & BaseEntityDi
|
|||
|
||||
protected async getSerializedData(): Promise<SerializedData> {
|
||||
const data = await super.getSerializedData();
|
||||
// 后台物化上下文直接存userId;
|
||||
return {
|
||||
...data,
|
||||
a: this.application?.id,
|
||||
t: this.token?.value,
|
||||
rm: this.rootMode,
|
||||
userId: this.getCurrentUserId(true),
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue