This commit is contained in:
Xu Chang 2022-06-11 20:37:29 +08:00
parent 10bcae0bb8
commit 61ad1f3fe1
10 changed files with 77 additions and 10 deletions

View File

@ -7,7 +7,7 @@ export declare abstract class GeneralRuntimeContext<ED extends EntityDict> exten
private scene;
constructor(store: RowStore<ED, GeneralRuntimeContext<ED>>, appId: string, getToken: () => Promise<string | undefined>, scene: string);
getApplicationId(): string;
getApplication(): Promise<import("oak-domain/lib/types").SelectRowShape<EntityDict, {
getApplication(): Promise<import("oak-domain/lib/types").SelectRowShape<import("general-app-domain/Application/Schema").Schema, {
id: 1;
name: 1;
config: 1;

View File

@ -9,4 +9,13 @@ export declare function createWechatQrCode<ED extends EntityDict, T extends keyo
lifetimeLength?: number;
permanent?: boolean;
props: WechatQrCodeProps;
}, context: Cxt): Promise<CreateWechatQrcodeData>;
}, context: Cxt): Promise<Omit<Omit<import("general-app-domain/WechatQrCode/Schema").OpSchema, "applicationId" | "entity" | "entityId">, import("oak-domain/lib/types").InstinctiveAttributes> & {
id: string;
} & {
applicationId: string;
application?: import("general-app-domain/Application/Schema").UpdateOperation | undefined;
} & {
[K: string]: any;
} & {
[k: string]: any;
}>;

View File

@ -1,2 +1,2 @@
declare const _default: (import("oak-domain/lib/types").Checker<EntityDict, "address", import("..").GeneralRuntimeContext<EntityDict>> | import("oak-domain/lib/types").Checker<EntityDict, "token", import("..").GeneralRuntimeContext<EntityDict>> | import("oak-domain/lib/types").Checker<EntityDict, "user", import("..").GeneralRuntimeContext<EntityDict>> | import("oak-domain/lib/types").Checker<EntityDict, "userEntityGrant", import("..").GeneralRuntimeContext<EntityDict>> | import("oak-domain/lib/types").Checker<EntityDict, "wechatQrCode", import("..").GeneralRuntimeContext<EntityDict>>)[];
declare const _default: (import("oak-domain/lib/types").Checker<import("general-app-domain").EntityDict, "address", import("..").GeneralRuntimeContext<import("general-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("general-app-domain").EntityDict, "token", import("..").GeneralRuntimeContext<import("general-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("general-app-domain").EntityDict, "user", import("..").GeneralRuntimeContext<import("general-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("general-app-domain").EntityDict, "userEntityGrant", import("..").GeneralRuntimeContext<import("general-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("general-app-domain").EntityDict, "wechatQrCode", import("..").GeneralRuntimeContext<import("general-app-domain").EntityDict>>)[];
export default _default;

4
lib/data/index.d.ts vendored
View File

@ -1,6 +1,6 @@
declare const _default: {
user: UserCreate[];
role: RoleCreate[];
user: import("general-app-domain/User/Schema").CreateOperationData[];
role: import("general-app-domain/Role/Schema").CreateOperationData[];
area: ({
code: string;
level: string;

View File

@ -48,6 +48,9 @@ const locale = {
grant: '授予',
transfer: '转交',
},
}
iState: {
init: '初始',
},
},
},
};

View File

@ -13,5 +13,5 @@ export declare class Token<ED extends EntityDict, Cxt extends Context<ED>, AD ex
logout(): Promise<void>;
getToken(): Promise<string | undefined>;
setCache(cache: Cache<ED, Cxt, AD>): void;
getUserId(): Promise<string extends keyof ED["token"]["Schema"] ? ED["token"]["Selection"]["data"][keyof ED["token"]["Schema"] & string] extends 1 | undefined ? ED["token"]["Schema"][keyof ED["token"]["Schema"] & string] : ED["token"]["Selection"]["data"][keyof ED["token"]["Schema"] & string] extends import("oak-domain/lib/types").OtmSubProjection ? never[] | import("oak-domain/lib/types").SelectRowShape<Required<ED["token"]["Schema"]>[keyof ED["token"]["Schema"] & string][0], ED["token"]["Selection"]["data"][keyof ED["token"]["Schema"] & string]["data"]>[] : keyof ED["token"]["Schema"] & string extends import("oak-domain/lib/types").OptionalKeys<ED["token"]["Schema"]> ? import("oak-domain/lib/types").SelectRowShape<NonNullable<Required<ED["token"]["Schema"]>[import("oak-domain/lib/types").OptionalKeys<ED["token"]["Schema"]> & keyof ED["token"]["Schema"] & string]>, ED["token"]["Selection"]["data"][import("oak-domain/lib/types").OptionalKeys<ED["token"]["Schema"]> & keyof ED["token"]["Schema"] & string]> | null : import("oak-domain/lib/types").SelectRowShape<NonNullable<Required<ED["token"]["Schema"]>[keyof ED["token"]["Schema"] & string]>, ED["token"]["Selection"]["data"][keyof ED["token"]["Schema"] & string]> : never>;
getUserId(): Promise<("userId" extends keyof ED["token"]["Schema"] ? ED["token"]["Selection"]["data"][keyof ED["token"]["Schema"] & "userId"] extends 1 | undefined ? ED["token"]["Schema"][keyof ED["token"]["Schema"] & "userId"] : ED["token"]["Selection"]["data"][keyof ED["token"]["Schema"] & "userId"] extends import("oak-domain/lib/types").OtmSubProjection ? never[] | import("oak-domain/lib/types").SelectRowShape<Required<ED["token"]["Schema"]>[keyof ED["token"]["Schema"] & "userId"][0], ED["token"]["Selection"]["data"][keyof ED["token"]["Schema"] & "userId"]["data"]>[] : keyof ED["token"]["Schema"] & "userId" extends import("oak-domain/lib/types").OptionalKeys<ED["token"]["Schema"]> ? import("oak-domain/lib/types").SelectRowShape<NonNullable<Required<ED["token"]["Schema"]>[import("oak-domain/lib/types").OptionalKeys<ED["token"]["Schema"]> & keyof ED["token"]["Schema"] & "userId"]>, ED["token"]["Selection"]["data"][import("oak-domain/lib/types").OptionalKeys<ED["token"]["Schema"]> & keyof ED["token"]["Schema"] & "userId"]> | null : import("oak-domain/lib/types").SelectRowShape<NonNullable<Required<ED["token"]["Schema"]>[keyof ED["token"]["Schema"] & "userId"]>, ED["token"]["Selection"]["data"][keyof ED["token"]["Schema"] & "userId"]> : never) | undefined>;
}

View File

@ -1,3 +1,4 @@
import { EntityDict as BaseEntityDict } from 'general-app-domain/EntityDict';
import { Trigger } from 'oak-domain/lib/types';
declare const _default: (Trigger<EntityDict, "address", import("..").GeneralRuntimeContext<EntityDict>> | Trigger<EntityDict, "user", import("..").GeneralRuntimeContext<EntityDict>> | Trigger<EntityDict, "userEntityGrant", import("..").GeneralRuntimeContext<EntityDict>> | Trigger<EntityDict, "wechatQrCode", import("..").GeneralRuntimeContext<EntityDict>>)[];
declare const _default: (Trigger<BaseEntityDict, "address", import("..").GeneralRuntimeContext<BaseEntityDict>> | Trigger<BaseEntityDict, "user", import("..").GeneralRuntimeContext<BaseEntityDict>> | Trigger<BaseEntityDict, "userEntityGrant", import("..").GeneralRuntimeContext<BaseEntityDict>> | Trigger<BaseEntityDict, "wechatQrCode", import("..").GeneralRuntimeContext<BaseEntityDict>>)[];
export default _default;

View File

@ -78,5 +78,58 @@ const triggers = [
return 0;
}
},
{
name: '当创建userEntityGrant确认时附上被授权者id',
entity: 'userEntityGrant',
action: 'confirm',
when: 'after',
fn: async ({ operation }, context, params) => {
const { data, filter } = operation;
const { userId } = (await context.getToken());
const { result } = await context.rowStore.select('userEntityGrant', {
data: {
id: 1,
entity: 1,
entityId: 1,
relation: 1,
},
filter: {
id: filter.id,
},
indexFrom: 0,
count: 1,
}, context, params);
const { entity, entityId, relation } = result[0];
const entityStr = entity[0].toLocaleUpperCase() + entity.substring(1, entity.length);
const userRelation = `user${entityStr}`;
const { result: result2 } = await context.rowStore.select(userRelation, {
data: {
id: 1,
},
filter: {
userId,
relation,
[`${entity}Id`]: entityId,
},
indexFrom: 0,
count: 1,
}, context, params);
if (result2.length) {
throw new types_1.OakCongruentRowExists(result2[0], '已领用该权限');
}
else {
await context.rowStore.operate(userRelation, {
action: 'create',
data: {
userId,
[`${entity}Id`]: entityId,
relation,
},
}, context);
console.log(context.rowStore);
return 1;
}
}
}
];
exports.default = triggers;

View File

@ -1,4 +1,4 @@
import { OpSchema as ExtraFile } from 'general-app-domain/ExtraFile/Schema';
import { SystemConfig } from 'general-app-domain/System/Schema';
export declare function composeFileUrl(extraFile: Pick<ExtraFile, 'type' | 'bucket' | 'filename' | 'origin' | 'extra1' | 'objectId' | 'extension' | 'entity'>, systemConfig?: SystemConfig): any;
export declare function composeFileUrl(extraFile: Pick<ExtraFile, 'type' | 'bucket' | 'filename' | 'origin' | 'extra1' | 'objectId' | 'extension' | 'entity'>, systemConfig?: SystemConfig): string;
export declare function decomposeFileUrl(url: string): Pick<ExtraFile, 'bucket' | 'filename' | 'origin' | 'type' | 'extra1'>;

View File

@ -1,4 +1,5 @@
import { EntityDict } from 'general-app-domain';
import { Watcher } from 'oak-domain/lib/types';
import { GeneralRuntimeContext } from '../RuntimeContext';
declare const _default: Watcher<EntityDict, string | number | symbol, GeneralRuntimeContext<EntityDict>>[];
declare const _default: Watcher<EntityDict, keyof EntityDict, GeneralRuntimeContext<EntityDict>>[];
export default _default;