增加了passport和applicationPassport
This commit is contained in:
parent
fb21242e8c
commit
525f1489ec
|
|
@ -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" | "platform" | "system";
|
||||
entity: "system" | "application" | "platform";
|
||||
entityId: string;
|
||||
name: string;
|
||||
}>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
||||
|
|
|
|||
|
|
@ -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: "platform" | "system";
|
||||
entity: "system" | "platform";
|
||||
name: string;
|
||||
entityId: string;
|
||||
}>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ declare const _default: (props: import("oak-frontend-base").ReactComponentProps<
|
|||
entity: keyof EntityDict;
|
||||
entityFilter: any;
|
||||
relationIds: string[];
|
||||
rule: "all" | "single" | "free";
|
||||
ruleOnRow: "all" | "single" | "free";
|
||||
rule: "single" | "all" | "free";
|
||||
ruleOnRow: "single" | "all" | "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: "all" | "single" | "free";
|
||||
ruleOnRow: "all" | "single" | "free";
|
||||
rule: "single" | "all" | "free";
|
||||
ruleOnRow: "single" | "all" | "free";
|
||||
}>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
import { Boolean } from 'oak-domain/lib/types/DataType';
|
||||
import { EntityShape } from 'oak-domain/lib/types/Entity';
|
||||
import { EntityDesc } from 'oak-domain/lib/types/EntityDesc';
|
||||
import { Schema as Application } from './Application';
|
||||
import { Schema as Passport } from './Passport';
|
||||
export interface Schema extends EntityShape {
|
||||
application: Application;
|
||||
passport: Passport;
|
||||
isDefault: Boolean;
|
||||
}
|
||||
export declare const entityDesc: EntityDesc<Schema>;
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
;
|
||||
export const entityDesc = {
|
||||
locales: {
|
||||
zh_CN: {
|
||||
name: '应用登录方式',
|
||||
attr: {
|
||||
application: '应用',
|
||||
passport: '登录方式',
|
||||
isDefault: '是否默认',
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
import { Boolean } from 'oak-domain/lib/types/DataType';
|
||||
import { EntityShape } from 'oak-domain/lib/types/Entity';
|
||||
import { Schema as System } from './System';
|
||||
import { EntityDesc } from 'oak-domain/lib/types/EntityDesc';
|
||||
type Type = 'password' | 'sms' | 'email' | 'wechatWeb' | 'wechatMp' | 'wechatPublic' | 'wechatPublicForWeb' | 'wechatMpForWeb';
|
||||
type SmsConfig = {
|
||||
mockSend?: boolean;
|
||||
templateName?: string;
|
||||
codeDuration?: number;
|
||||
};
|
||||
type EmailConifg = {
|
||||
smtpUrl: string;
|
||||
smtpAccount: string;
|
||||
smtpPassword: string;
|
||||
};
|
||||
type PfwConfig = {
|
||||
appId: string;
|
||||
};
|
||||
type MfwConfig = {
|
||||
appId: string;
|
||||
};
|
||||
export interface Schema extends EntityShape {
|
||||
system: System;
|
||||
type: Type;
|
||||
config?: SmsConfig | EmailConifg | PfwConfig | MfwConfig;
|
||||
enabled: Boolean;
|
||||
}
|
||||
export declare const entityDesc: EntityDesc<Schema, '', '', {
|
||||
type: Schema['type'];
|
||||
}>;
|
||||
export {};
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
;
|
||||
export const entityDesc = {
|
||||
locales: {
|
||||
zh_CN: {
|
||||
name: '登录方式',
|
||||
attr: {
|
||||
system: '系统',
|
||||
type: '登录方式',
|
||||
config: '登录方式配置',
|
||||
enabled: '是否启用',
|
||||
},
|
||||
v: {
|
||||
type: {
|
||||
email: '邮箱',
|
||||
sms: '短信',
|
||||
password: '密码',
|
||||
wechatMp: '小程序',
|
||||
wechatPublic: '公众号',
|
||||
wechatWeb: '微信网站',
|
||||
wechatMpForWeb: '小程序授权',
|
||||
wechatPublicForWeb: '公众号授权'
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
style: {
|
||||
color: {
|
||||
type: {
|
||||
password: '#00BFFF',
|
||||
sms: '#F0F8FF',
|
||||
email: '#FFA07A',
|
||||
wechatWeb: '#90EE90',
|
||||
wechatPublic: '#32CD32',
|
||||
wechatMp: '#3CB371',
|
||||
wechatMpForWeb: '#006400',
|
||||
wechatPublicForWeb: '#008000',
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -7,6 +7,7 @@ import { String, Text } from "oak-domain/lib/types/DataType";
|
|||
import { Style } from "../../types/Style";
|
||||
import * as System from "../System/Schema";
|
||||
import * as Domain from "../Domain/Schema";
|
||||
import * as ApplicationPassport from "../ApplicationPassport/Schema";
|
||||
import * as ExtraFile from "../ExtraFile/Schema";
|
||||
import * as Notification from "../Notification/Schema";
|
||||
import * as SessionMessage from "../SessionMessage/Schema";
|
||||
|
|
@ -90,6 +91,8 @@ export type Schema = EntityShape & {
|
|||
domainId?: ForeignKey<"domain"> | null;
|
||||
system: System.Schema;
|
||||
domain?: Domain.Schema | null;
|
||||
applicationPassport$application?: Array<ApplicationPassport.Schema>;
|
||||
applicationPassport$application$$aggr?: AggregationResult<ApplicationPassport.Schema>;
|
||||
extraFile$application?: Array<ExtraFile.Schema>;
|
||||
extraFile$application$$aggr?: AggregationResult<ExtraFile.Schema>;
|
||||
notification$application?: Array<Notification.Schema>;
|
||||
|
|
@ -129,6 +132,7 @@ type AttrFilter = {
|
|||
style: JsonFilter<Style>;
|
||||
domainId: Q_StringValue;
|
||||
domain: Domain.Filter;
|
||||
applicationPassport$application: ApplicationPassport.Filter & SubQueryPredicateMetadata;
|
||||
extraFile$application: ExtraFile.Filter & SubQueryPredicateMetadata;
|
||||
notification$application: Notification.Filter & SubQueryPredicateMetadata;
|
||||
sessionMessage$application: SessionMessage.Filter & SubQueryPredicateMetadata;
|
||||
|
|
@ -158,6 +162,12 @@ export type Projection = {
|
|||
style?: number | JsonProjection<Style>;
|
||||
domainId?: number;
|
||||
domain?: Domain.Projection;
|
||||
applicationPassport$application?: ApplicationPassport.Selection & {
|
||||
$entity: "applicationPassport";
|
||||
};
|
||||
applicationPassport$application$$aggr?: ApplicationPassport.Aggregation & {
|
||||
$entity: "applicationPassport";
|
||||
};
|
||||
extraFile$application?: ExtraFile.Selection & {
|
||||
$entity: "extraFile";
|
||||
};
|
||||
|
|
@ -288,6 +298,7 @@ export type CreateOperationData = FormCreateData<Omit<OpSchema, "systemId" | "do
|
|||
domain?: never;
|
||||
domainId?: ForeignKey<"domain">;
|
||||
})) & {
|
||||
applicationPassport$application?: OakOperation<ApplicationPassport.UpdateOperation["action"], Omit<ApplicationPassport.UpdateOperationData, "application" | "applicationId">, Omit<ApplicationPassport.Filter, "application" | "applicationId">> | OakOperation<"create", Omit<ApplicationPassport.CreateOperationData, "application" | "applicationId">[]> | Array<OakOperation<"create", Omit<ApplicationPassport.CreateOperationData, "application" | "applicationId">> | OakOperation<ApplicationPassport.UpdateOperation["action"], Omit<ApplicationPassport.UpdateOperationData, "application" | "applicationId">, Omit<ApplicationPassport.Filter, "application" | "applicationId">>>;
|
||||
extraFile$application?: OakOperation<ExtraFile.UpdateOperation["action"], Omit<ExtraFile.UpdateOperationData, "application" | "applicationId">, Omit<ExtraFile.Filter, "application" | "applicationId">> | OakOperation<"create", Omit<ExtraFile.CreateOperationData, "application" | "applicationId">[]> | Array<OakOperation<"create", Omit<ExtraFile.CreateOperationData, "application" | "applicationId">> | OakOperation<ExtraFile.UpdateOperation["action"], Omit<ExtraFile.UpdateOperationData, "application" | "applicationId">, Omit<ExtraFile.Filter, "application" | "applicationId">>>;
|
||||
notification$application?: OakOperation<Notification.UpdateOperation["action"], Omit<Notification.UpdateOperationData, "application" | "applicationId">, Omit<Notification.Filter, "application" | "applicationId">> | OakOperation<"create", Omit<Notification.CreateOperationData, "application" | "applicationId">[]> | Array<OakOperation<"create", Omit<Notification.CreateOperationData, "application" | "applicationId">> | OakOperation<Notification.UpdateOperation["action"], Omit<Notification.UpdateOperationData, "application" | "applicationId">, Omit<Notification.Filter, "application" | "applicationId">>>;
|
||||
sessionMessage$application?: OakOperation<SessionMessage.UpdateOperation["action"], Omit<SessionMessage.UpdateOperationData, "application" | "applicationId">, Omit<SessionMessage.Filter, "application" | "applicationId">> | OakOperation<"create", Omit<SessionMessage.CreateOperationData, "application" | "applicationId">[]> | Array<OakOperation<"create", Omit<SessionMessage.CreateOperationData, "application" | "applicationId">> | OakOperation<SessionMessage.UpdateOperation["action"], Omit<SessionMessage.UpdateOperationData, "application" | "applicationId">, Omit<SessionMessage.Filter, "application" | "applicationId">>>;
|
||||
|
|
@ -329,6 +340,7 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "systemId" | "do
|
|||
domainId?: ForeignKey<"domain"> | null;
|
||||
})) & {
|
||||
[k: string]: any;
|
||||
applicationPassport$application?: OakOperation<ApplicationPassport.UpdateOperation["action"], Omit<ApplicationPassport.UpdateOperationData, "application" | "applicationId">, Omit<ApplicationPassport.Filter, "application" | "applicationId">> | OakOperation<ApplicationPassport.RemoveOperation["action"], Omit<ApplicationPassport.RemoveOperationData, "application" | "applicationId">, Omit<ApplicationPassport.Filter, "application" | "applicationId">> | OakOperation<"create", Omit<ApplicationPassport.CreateOperationData, "application" | "applicationId">[]> | Array<OakOperation<"create", Omit<ApplicationPassport.CreateOperationData, "application" | "applicationId">> | OakOperation<ApplicationPassport.UpdateOperation["action"], Omit<ApplicationPassport.UpdateOperationData, "application" | "applicationId">, Omit<ApplicationPassport.Filter, "application" | "applicationId">> | OakOperation<ApplicationPassport.RemoveOperation["action"], Omit<ApplicationPassport.RemoveOperationData, "application" | "applicationId">, Omit<ApplicationPassport.Filter, "application" | "applicationId">>>;
|
||||
extraFile$application?: OakOperation<ExtraFile.UpdateOperation["action"], Omit<ExtraFile.UpdateOperationData, "application" | "applicationId">, Omit<ExtraFile.Filter, "application" | "applicationId">> | OakOperation<ExtraFile.RemoveOperation["action"], Omit<ExtraFile.RemoveOperationData, "application" | "applicationId">, Omit<ExtraFile.Filter, "application" | "applicationId">> | OakOperation<"create", Omit<ExtraFile.CreateOperationData, "application" | "applicationId">[]> | Array<OakOperation<"create", Omit<ExtraFile.CreateOperationData, "application" | "applicationId">> | OakOperation<ExtraFile.UpdateOperation["action"], Omit<ExtraFile.UpdateOperationData, "application" | "applicationId">, Omit<ExtraFile.Filter, "application" | "applicationId">> | OakOperation<ExtraFile.RemoveOperation["action"], Omit<ExtraFile.RemoveOperationData, "application" | "applicationId">, Omit<ExtraFile.Filter, "application" | "applicationId">>>;
|
||||
notification$application?: OakOperation<Notification.UpdateOperation["action"], Omit<Notification.UpdateOperationData, "application" | "applicationId">, Omit<Notification.Filter, "application" | "applicationId">> | OakOperation<Notification.RemoveOperation["action"], Omit<Notification.RemoveOperationData, "application" | "applicationId">, Omit<Notification.Filter, "application" | "applicationId">> | OakOperation<"create", Omit<Notification.CreateOperationData, "application" | "applicationId">[]> | Array<OakOperation<"create", Omit<Notification.CreateOperationData, "application" | "applicationId">> | OakOperation<Notification.UpdateOperation["action"], Omit<Notification.UpdateOperationData, "application" | "applicationId">, Omit<Notification.Filter, "application" | "applicationId">> | OakOperation<Notification.RemoveOperation["action"], Omit<Notification.RemoveOperationData, "application" | "applicationId">, Omit<Notification.Filter, "application" | "applicationId">>>;
|
||||
sessionMessage$application?: OakOperation<SessionMessage.UpdateOperation["action"], Omit<SessionMessage.UpdateOperationData, "application" | "applicationId">, Omit<SessionMessage.Filter, "application" | "applicationId">> | OakOperation<SessionMessage.RemoveOperation["action"], Omit<SessionMessage.RemoveOperationData, "application" | "applicationId">, Omit<SessionMessage.Filter, "application" | "applicationId">> | OakOperation<"create", Omit<SessionMessage.CreateOperationData, "application" | "applicationId">[]> | Array<OakOperation<"create", Omit<SessionMessage.CreateOperationData, "application" | "applicationId">> | OakOperation<SessionMessage.UpdateOperation["action"], Omit<SessionMessage.UpdateOperationData, "application" | "applicationId">, Omit<SessionMessage.Filter, "application" | "applicationId">> | OakOperation<SessionMessage.RemoveOperation["action"], Omit<SessionMessage.RemoveOperationData, "application" | "applicationId">, Omit<SessionMessage.Filter, "application" | "applicationId">>>;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,160 @@
|
|||
import { ForeignKey } from "oak-domain/lib/types/DataType";
|
||||
import { Q_DateValue, Q_BooleanValue, Q_NumberValue, Q_StringValue, NodeId, MakeFilter, ExprOp, ExpressionKey } from "oak-domain/lib/types/Demand";
|
||||
import { OneOf } from "oak-domain/lib/types/Polyfill";
|
||||
import { FormCreateData, FormUpdateData, DeduceAggregation, Operation as OakOperation, Selection as OakSelection, MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity";
|
||||
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||
import { Boolean } from "oak-domain/lib/types/DataType";
|
||||
import * as Application from "../Application/Schema";
|
||||
import * as Passport from "../Passport/Schema";
|
||||
export type OpSchema = EntityShape & {
|
||||
applicationId: ForeignKey<"application">;
|
||||
passportId: ForeignKey<"passport">;
|
||||
isDefault: Boolean;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = EntityShape & {
|
||||
applicationId: ForeignKey<"application">;
|
||||
passportId: ForeignKey<"passport">;
|
||||
isDefault: Boolean;
|
||||
application: Application.Schema;
|
||||
passport: Passport.Schema;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
$$createAt$$: Q_DateValue;
|
||||
$$seq$$: Q_NumberValue;
|
||||
$$updateAt$$: Q_DateValue;
|
||||
applicationId: Q_StringValue;
|
||||
application: Application.Filter;
|
||||
passportId: Q_StringValue;
|
||||
passport: Passport.Filter;
|
||||
isDefault: Q_BooleanValue;
|
||||
};
|
||||
export type Filter = MakeFilter<AttrFilter & ExprOp<OpAttr | string>>;
|
||||
export type Projection = {
|
||||
"#id"?: NodeId;
|
||||
[k: string]: any;
|
||||
id?: number;
|
||||
$$createAt$$?: number;
|
||||
$$updateAt$$?: number;
|
||||
$$seq$$?: number;
|
||||
applicationId?: number;
|
||||
application?: Application.Projection;
|
||||
passportId?: number;
|
||||
passport?: Passport.Projection;
|
||||
isDefault?: number;
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type ApplicationPassportIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
type ApplicationIdProjection = OneOf<{
|
||||
applicationId: number;
|
||||
}>;
|
||||
type PassportIdProjection = OneOf<{
|
||||
passportId: number;
|
||||
}>;
|
||||
export type SortAttr = {
|
||||
id: number;
|
||||
} | {
|
||||
$$createAt$$: number;
|
||||
} | {
|
||||
$$seq$$: number;
|
||||
} | {
|
||||
$$updateAt$$: number;
|
||||
} | {
|
||||
applicationId: number;
|
||||
} | {
|
||||
application: Application.SortAttr;
|
||||
} | {
|
||||
passportId: number;
|
||||
} | {
|
||||
passport: Passport.SortAttr;
|
||||
} | {
|
||||
isDefault: number;
|
||||
} | {
|
||||
[k: string]: any;
|
||||
} | OneOf<ExprOp<OpAttr | string>>;
|
||||
export type SortNode = {
|
||||
$attr: SortAttr;
|
||||
$direction?: "asc" | "desc";
|
||||
};
|
||||
export type Sorter = SortNode[];
|
||||
export type SelectOperation<P extends Object = Projection> = OakSelection<"select", P, Filter, Sorter>;
|
||||
export type Selection<P extends Object = Projection> = SelectOperation<P>;
|
||||
export type Aggregation = DeduceAggregation<Projection, Filter, Sorter>;
|
||||
export type CreateOperationData = FormCreateData<Omit<OpSchema, "applicationId" | "passportId">> & (({
|
||||
applicationId?: never;
|
||||
application: Application.CreateSingleOperation;
|
||||
} | {
|
||||
applicationId: ForeignKey<"application">;
|
||||
application?: Application.UpdateOperation;
|
||||
} | {
|
||||
application?: never;
|
||||
applicationId: ForeignKey<"application">;
|
||||
}) & ({
|
||||
passportId?: never;
|
||||
passport: Passport.CreateSingleOperation;
|
||||
} | {
|
||||
passportId: ForeignKey<"passport">;
|
||||
passport?: Passport.UpdateOperation;
|
||||
} | {
|
||||
passport?: never;
|
||||
passportId: ForeignKey<"passport">;
|
||||
}));
|
||||
export type CreateSingleOperation = OakOperation<"create", CreateOperationData>;
|
||||
export type CreateMultipleOperation = OakOperation<"create", Array<CreateOperationData>>;
|
||||
export type CreateOperation = CreateSingleOperation | CreateMultipleOperation;
|
||||
export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "applicationId" | "passportId">> & (({
|
||||
application?: Application.CreateSingleOperation;
|
||||
applicationId?: never;
|
||||
} | {
|
||||
application?: Application.UpdateOperation;
|
||||
applicationId?: never;
|
||||
} | {
|
||||
application?: Application.RemoveOperation;
|
||||
applicationId?: never;
|
||||
} | {
|
||||
application?: never;
|
||||
applicationId?: ForeignKey<"application">;
|
||||
}) & ({
|
||||
passport?: Passport.CreateSingleOperation;
|
||||
passportId?: never;
|
||||
} | {
|
||||
passport?: Passport.UpdateOperation;
|
||||
passportId?: never;
|
||||
} | {
|
||||
passport?: Passport.RemoveOperation;
|
||||
passportId?: never;
|
||||
} | {
|
||||
passport?: never;
|
||||
passportId?: ForeignKey<"passport">;
|
||||
})) & {
|
||||
[k: string]: any;
|
||||
};
|
||||
export type UpdateOperation = OakOperation<"update" | string, UpdateOperationData, Filter, Sorter>;
|
||||
export type RemoveOperationData = {} & (({
|
||||
application?: Application.UpdateOperation | Application.RemoveOperation;
|
||||
}) & ({
|
||||
passport?: Passport.UpdateOperation | Passport.RemoveOperation;
|
||||
}));
|
||||
export type RemoveOperation = OakOperation<"remove", RemoveOperationData, Filter, Sorter>;
|
||||
export type Operation = CreateOperation | UpdateOperation | RemoveOperation;
|
||||
export type ApplicationIdSubQuery = Selection<ApplicationIdProjection>;
|
||||
export type PassportIdSubQuery = Selection<PassportIdProjection>;
|
||||
export type ApplicationPassportIdSubQuery = Selection<ApplicationPassportIdProjection>;
|
||||
export type EntityDef = {
|
||||
Schema: Schema;
|
||||
OpSchema: OpSchema;
|
||||
Action: OakMakeAction<GenericAction> | string;
|
||||
Selection: Selection;
|
||||
Aggregation: Aggregation;
|
||||
Operation: Operation;
|
||||
Create: CreateOperation;
|
||||
Update: UpdateOperation;
|
||||
Remove: RemoveOperation;
|
||||
CreateSingle: CreateSingleOperation;
|
||||
CreateMulti: CreateMultipleOperation;
|
||||
};
|
||||
export {};
|
||||
|
|
@ -0,0 +1 @@
|
|||
export {};
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
import { StorageDesc } from "oak-domain/lib/types/Storage";
|
||||
import { OpSchema } from "./Schema";
|
||||
export declare const desc: StorageDesc<OpSchema>;
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
import { genericActions as actions } from "oak-domain/lib/actions/action";
|
||||
export const desc = {
|
||||
attributes: {
|
||||
applicationId: {
|
||||
notNull: true,
|
||||
type: "ref",
|
||||
ref: "application"
|
||||
},
|
||||
passportId: {
|
||||
notNull: true,
|
||||
type: "ref",
|
||||
ref: "passport"
|
||||
},
|
||||
isDefault: {
|
||||
notNull: true,
|
||||
type: "boolean"
|
||||
}
|
||||
},
|
||||
actionType: "crud",
|
||||
actions
|
||||
};
|
||||
|
|
@ -0,0 +1 @@
|
|||
{ "name": "应用登录方式", "attr": { "application": "应用", "passport": "登录方式", "isDefault": "是否默认" } }
|
||||
|
|
@ -13,6 +13,7 @@ import { EntityDef as UserEntityGrant } from "./UserEntityGrant/Schema";
|
|||
import { EntityDef as UserRelation } from "./UserRelation/Schema";
|
||||
import { EntityDef as Address } from "./Address/Schema";
|
||||
import { EntityDef as Application } from "./Application/Schema";
|
||||
import { EntityDef as ApplicationPassport } from "./ApplicationPassport/Schema";
|
||||
import { EntityDef as Area } from "./Area/Schema";
|
||||
import { EntityDef as Article } from "./Article/Schema";
|
||||
import { EntityDef as ArticleMenu } from "./ArticleMenu/Schema";
|
||||
|
|
@ -30,6 +31,7 @@ import { EntityDef as MessageTypeTemplate } from "./MessageTypeTemplate/Schema";
|
|||
import { EntityDef as Mobile } from "./Mobile/Schema";
|
||||
import { EntityDef as Notification } from "./Notification/Schema";
|
||||
import { EntityDef as Parasite } from "./Parasite/Schema";
|
||||
import { EntityDef as Passport } from "./Passport/Schema";
|
||||
import { EntityDef as Platform } from "./Platform/Schema";
|
||||
import { EntityDef as ReadRemark } from "./ReadRemark/Schema";
|
||||
import { EntityDef as Session } from "./Session/Schema";
|
||||
|
|
@ -68,6 +70,7 @@ export type EntityDict = {
|
|||
userRelation: UserRelation;
|
||||
address: Address;
|
||||
application: Application;
|
||||
applicationPassport: ApplicationPassport;
|
||||
area: Area;
|
||||
article: Article;
|
||||
articleMenu: ArticleMenu;
|
||||
|
|
@ -85,6 +88,7 @@ export type EntityDict = {
|
|||
mobile: Mobile;
|
||||
notification: Notification;
|
||||
parasite: Parasite;
|
||||
passport: Passport;
|
||||
platform: Platform;
|
||||
readRemark: ReadRemark;
|
||||
session: Session;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,161 @@
|
|||
import { ForeignKey, JsonProjection } from "oak-domain/lib/types/DataType";
|
||||
import { Q_DateValue, Q_BooleanValue, Q_NumberValue, Q_StringValue, Q_EnumValue, NodeId, MakeFilter, ExprOp, ExpressionKey, JsonFilter, SubQueryPredicateMetadata } from "oak-domain/lib/types/Demand";
|
||||
import { OneOf } from "oak-domain/lib/types/Polyfill";
|
||||
import { FormCreateData, FormUpdateData, DeduceAggregation, Operation as OakOperation, Selection as OakSelection, MakeAction as OakMakeAction, AggregationResult, EntityShape } from "oak-domain/lib/types/Entity";
|
||||
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||
import { Boolean } from "oak-domain/lib/types/DataType";
|
||||
import * as System from "../System/Schema";
|
||||
import * as ApplicationPassport from "../ApplicationPassport/Schema";
|
||||
type Type = "password" | "sms" | "email" | "wechatWeb" | "wechatMp" | "wechatPublic" | "wechatPublicForWeb" | "wechatMpForWeb";
|
||||
type SmsConfig = {
|
||||
mockSend?: boolean;
|
||||
templateName?: string;
|
||||
codeDuration?: number;
|
||||
};
|
||||
type EmailConifg = {
|
||||
smtpUrl: string;
|
||||
smtpAccount: string;
|
||||
smtpPassword: string;
|
||||
};
|
||||
type PfwConfig = {
|
||||
appId: string;
|
||||
};
|
||||
type MfwConfig = {
|
||||
appId: string;
|
||||
};
|
||||
export type OpSchema = EntityShape & {
|
||||
systemId: ForeignKey<"system">;
|
||||
type: Type;
|
||||
config?: (SmsConfig | EmailConifg | PfwConfig | MfwConfig) | null;
|
||||
enabled: Boolean;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = EntityShape & {
|
||||
systemId: ForeignKey<"system">;
|
||||
type: Type;
|
||||
config?: (SmsConfig | EmailConifg | PfwConfig | MfwConfig) | null;
|
||||
enabled: Boolean;
|
||||
system: System.Schema;
|
||||
applicationPassport$passport?: Array<ApplicationPassport.Schema>;
|
||||
applicationPassport$passport$$aggr?: AggregationResult<ApplicationPassport.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
$$createAt$$: Q_DateValue;
|
||||
$$seq$$: Q_NumberValue;
|
||||
$$updateAt$$: Q_DateValue;
|
||||
systemId: Q_StringValue;
|
||||
system: System.Filter;
|
||||
type: Q_EnumValue<Type>;
|
||||
config: JsonFilter<SmsConfig | EmailConifg | PfwConfig | MfwConfig>;
|
||||
enabled: Q_BooleanValue;
|
||||
applicationPassport$passport: ApplicationPassport.Filter & SubQueryPredicateMetadata;
|
||||
};
|
||||
export type Filter = MakeFilter<AttrFilter & ExprOp<OpAttr | string>>;
|
||||
export type Projection = {
|
||||
"#id"?: NodeId;
|
||||
[k: string]: any;
|
||||
id?: number;
|
||||
$$createAt$$?: number;
|
||||
$$updateAt$$?: number;
|
||||
$$seq$$?: number;
|
||||
systemId?: number;
|
||||
system?: System.Projection;
|
||||
type?: number;
|
||||
config?: number | JsonProjection<SmsConfig | EmailConifg | PfwConfig | MfwConfig>;
|
||||
enabled?: number;
|
||||
applicationPassport$passport?: ApplicationPassport.Selection & {
|
||||
$entity: "applicationPassport";
|
||||
};
|
||||
applicationPassport$passport$$aggr?: ApplicationPassport.Aggregation & {
|
||||
$entity: "applicationPassport";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type PassportIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
type SystemIdProjection = OneOf<{
|
||||
systemId: number;
|
||||
}>;
|
||||
export type SortAttr = {
|
||||
id: number;
|
||||
} | {
|
||||
$$createAt$$: number;
|
||||
} | {
|
||||
$$seq$$: number;
|
||||
} | {
|
||||
$$updateAt$$: number;
|
||||
} | {
|
||||
systemId: number;
|
||||
} | {
|
||||
system: System.SortAttr;
|
||||
} | {
|
||||
type: number;
|
||||
} | {
|
||||
enabled: number;
|
||||
} | {
|
||||
[k: string]: any;
|
||||
} | OneOf<ExprOp<OpAttr | string>>;
|
||||
export type SortNode = {
|
||||
$attr: SortAttr;
|
||||
$direction?: "asc" | "desc";
|
||||
};
|
||||
export type Sorter = SortNode[];
|
||||
export type SelectOperation<P extends Object = Projection> = OakSelection<"select", P, Filter, Sorter>;
|
||||
export type Selection<P extends Object = Projection> = SelectOperation<P>;
|
||||
export type Aggregation = DeduceAggregation<Projection, Filter, Sorter>;
|
||||
export type CreateOperationData = FormCreateData<Omit<OpSchema, "systemId">> & (({
|
||||
systemId?: never;
|
||||
system: System.CreateSingleOperation;
|
||||
} | {
|
||||
systemId: ForeignKey<"system">;
|
||||
system?: System.UpdateOperation;
|
||||
} | {
|
||||
system?: never;
|
||||
systemId: ForeignKey<"system">;
|
||||
})) & {
|
||||
applicationPassport$passport?: OakOperation<ApplicationPassport.UpdateOperation["action"], Omit<ApplicationPassport.UpdateOperationData, "passport" | "passportId">, Omit<ApplicationPassport.Filter, "passport" | "passportId">> | OakOperation<"create", Omit<ApplicationPassport.CreateOperationData, "passport" | "passportId">[]> | Array<OakOperation<"create", Omit<ApplicationPassport.CreateOperationData, "passport" | "passportId">> | OakOperation<ApplicationPassport.UpdateOperation["action"], Omit<ApplicationPassport.UpdateOperationData, "passport" | "passportId">, Omit<ApplicationPassport.Filter, "passport" | "passportId">>>;
|
||||
};
|
||||
export type CreateSingleOperation = OakOperation<"create", CreateOperationData>;
|
||||
export type CreateMultipleOperation = OakOperation<"create", Array<CreateOperationData>>;
|
||||
export type CreateOperation = CreateSingleOperation | CreateMultipleOperation;
|
||||
export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "systemId">> & (({
|
||||
system?: System.CreateSingleOperation;
|
||||
systemId?: never;
|
||||
} | {
|
||||
system?: System.UpdateOperation;
|
||||
systemId?: never;
|
||||
} | {
|
||||
system?: System.RemoveOperation;
|
||||
systemId?: never;
|
||||
} | {
|
||||
system?: never;
|
||||
systemId?: ForeignKey<"system">;
|
||||
})) & {
|
||||
[k: string]: any;
|
||||
applicationPassport$passport?: OakOperation<ApplicationPassport.UpdateOperation["action"], Omit<ApplicationPassport.UpdateOperationData, "passport" | "passportId">, Omit<ApplicationPassport.Filter, "passport" | "passportId">> | OakOperation<ApplicationPassport.RemoveOperation["action"], Omit<ApplicationPassport.RemoveOperationData, "passport" | "passportId">, Omit<ApplicationPassport.Filter, "passport" | "passportId">> | OakOperation<"create", Omit<ApplicationPassport.CreateOperationData, "passport" | "passportId">[]> | Array<OakOperation<"create", Omit<ApplicationPassport.CreateOperationData, "passport" | "passportId">> | OakOperation<ApplicationPassport.UpdateOperation["action"], Omit<ApplicationPassport.UpdateOperationData, "passport" | "passportId">, Omit<ApplicationPassport.Filter, "passport" | "passportId">> | OakOperation<ApplicationPassport.RemoveOperation["action"], Omit<ApplicationPassport.RemoveOperationData, "passport" | "passportId">, Omit<ApplicationPassport.Filter, "passport" | "passportId">>>;
|
||||
};
|
||||
export type UpdateOperation = OakOperation<"update" | string, UpdateOperationData, Filter, Sorter>;
|
||||
export type RemoveOperationData = {} & (({
|
||||
system?: System.UpdateOperation | System.RemoveOperation;
|
||||
}));
|
||||
export type RemoveOperation = OakOperation<"remove", RemoveOperationData, Filter, Sorter>;
|
||||
export type Operation = CreateOperation | UpdateOperation | RemoveOperation;
|
||||
export type SystemIdSubQuery = Selection<SystemIdProjection>;
|
||||
export type PassportIdSubQuery = Selection<PassportIdProjection>;
|
||||
export type EntityDef = {
|
||||
Schema: Schema;
|
||||
OpSchema: OpSchema;
|
||||
Action: OakMakeAction<GenericAction> | string;
|
||||
Selection: Selection;
|
||||
Aggregation: Aggregation;
|
||||
Operation: Operation;
|
||||
Create: CreateOperation;
|
||||
Update: UpdateOperation;
|
||||
Remove: RemoveOperation;
|
||||
CreateSingle: CreateSingleOperation;
|
||||
CreateMulti: CreateMultipleOperation;
|
||||
};
|
||||
export {};
|
||||
|
|
@ -0,0 +1 @@
|
|||
export {};
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
import { StorageDesc } from "oak-domain/lib/types/Storage";
|
||||
import { OpSchema } from "./Schema";
|
||||
export declare const desc: StorageDesc<OpSchema>;
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
import { genericActions as actions } from "oak-domain/lib/actions/action";
|
||||
export const desc = {
|
||||
attributes: {
|
||||
systemId: {
|
||||
notNull: true,
|
||||
type: "ref",
|
||||
ref: "system"
|
||||
},
|
||||
type: {
|
||||
notNull: true,
|
||||
type: "enum",
|
||||
enumeration: ["password", "sms", "email", "wechatWeb", "wechatMp", "wechatPublic", "wechatPublicForWeb", "wechatMpForWeb"]
|
||||
},
|
||||
config: {
|
||||
type: "object"
|
||||
},
|
||||
enabled: {
|
||||
notNull: true,
|
||||
type: "boolean"
|
||||
}
|
||||
},
|
||||
actionType: "crud",
|
||||
actions
|
||||
};
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
import { EntityDef } from "./Schema";
|
||||
import { StyleDef } from "oak-domain/lib/types/Style";
|
||||
export declare const style: StyleDef<EntityDef["OpSchema"], EntityDef["Action"]>;
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
export const style = {
|
||||
color: {
|
||||
type: {
|
||||
password: '#00BFFF',
|
||||
sms: '#F0F8FF',
|
||||
email: '#FFA07A',
|
||||
wechatWeb: '#90EE90',
|
||||
wechatPublic: '#32CD32',
|
||||
wechatMp: '#3CB371',
|
||||
wechatMpForWeb: '#006400',
|
||||
wechatPublicForWeb: '#008000',
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -0,0 +1 @@
|
|||
{ "name": "登录方式", "attr": { "system": "系统", "type": "登录方式", "config": "登录方式配置", "enabled": "是否启用" }, "v": { "type": { "email": "邮箱", "sms": "短信", "password": "密码", "wechatMp": "小程序", "wechatPublic": "公众号", "wechatWeb": "微信网站", "wechatMpForWeb": "小程序授权", "wechatPublicForWeb": "公众号授权" } } }
|
||||
|
|
@ -13,6 +13,7 @@ import { desc as userEntityGrantDesc } from "./UserEntityGrant/Storage";
|
|||
import { desc as userRelationDesc } from "./UserRelation/Storage";
|
||||
import { desc as addressDesc } from "./Address/Storage";
|
||||
import { desc as applicationDesc } from "./Application/Storage";
|
||||
import { desc as applicationPassportDesc } from "./ApplicationPassport/Storage";
|
||||
import { desc as areaDesc } from "./Area/Storage";
|
||||
import { desc as articleDesc } from "./Article/Storage";
|
||||
import { desc as articleMenuDesc } from "./ArticleMenu/Storage";
|
||||
|
|
@ -30,6 +31,7 @@ import { desc as messageTypeTemplateDesc } from "./MessageTypeTemplate/Storage";
|
|||
import { desc as mobileDesc } from "./Mobile/Storage";
|
||||
import { desc as notificationDesc } from "./Notification/Storage";
|
||||
import { desc as parasiteDesc } from "./Parasite/Storage";
|
||||
import { desc as passportDesc } from "./Passport/Storage";
|
||||
import { desc as platformDesc } from "./Platform/Storage";
|
||||
import { desc as readRemarkDesc } from "./ReadRemark/Storage";
|
||||
import { desc as sessionDesc } from "./Session/Storage";
|
||||
|
|
@ -68,6 +70,7 @@ export const storageSchema = {
|
|||
userRelation: userRelationDesc,
|
||||
address: addressDesc,
|
||||
application: applicationDesc,
|
||||
applicationPassport: applicationPassportDesc,
|
||||
area: areaDesc,
|
||||
article: articleDesc,
|
||||
articleMenu: articleMenuDesc,
|
||||
|
|
@ -85,6 +88,7 @@ export const storageSchema = {
|
|||
mobile: mobileDesc,
|
||||
notification: notificationDesc,
|
||||
parasite: parasiteDesc,
|
||||
passport: passportDesc,
|
||||
platform: platformDesc,
|
||||
readRemark: readRemarkDesc,
|
||||
session: sessionDesc,
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import { style as message } from "./Message/Style";
|
|||
import { style as mobile } from "./Mobile/Style";
|
||||
import { style as notification } from "./Notification/Style";
|
||||
import { style as parasite } from "./Parasite/Style";
|
||||
import { style as passport } from "./Passport/Style";
|
||||
import { style as smsTemplate } from "./SmsTemplate/Style";
|
||||
import { style as toDo } from "./ToDo/Style";
|
||||
import { style as token } from "./Token/Style";
|
||||
|
|
@ -36,6 +37,7 @@ export const styleDict = {
|
|||
mobile,
|
||||
notification,
|
||||
parasite,
|
||||
passport,
|
||||
smsTemplate,
|
||||
toDo,
|
||||
token,
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import * as Platform from "../Platform/Schema";
|
|||
import * as Application from "../Application/Schema";
|
||||
import * as Domain from "../Domain/Schema";
|
||||
import * as MessageSystem from "../MessageSystem/Schema";
|
||||
import * as Passport from "../Passport/Schema";
|
||||
import * as SmsTemplate from "../SmsTemplate/Schema";
|
||||
import * as UserSystem from "../UserSystem/Schema";
|
||||
export type OpSchema = EntityShape & {
|
||||
|
|
@ -41,6 +42,8 @@ export type Schema = EntityShape & {
|
|||
domain$system$$aggr?: AggregationResult<Domain.Schema>;
|
||||
messageSystem$system?: Array<MessageSystem.Schema>;
|
||||
messageSystem$system$$aggr?: AggregationResult<MessageSystem.Schema>;
|
||||
passport$system?: Array<Passport.Schema>;
|
||||
passport$system$$aggr?: AggregationResult<Passport.Schema>;
|
||||
smsTemplate$system?: Array<SmsTemplate.Schema>;
|
||||
smsTemplate$system$$aggr?: AggregationResult<SmsTemplate.Schema>;
|
||||
userSystem$system?: Array<UserSystem.Schema>;
|
||||
|
|
@ -66,6 +69,7 @@ type AttrFilter = {
|
|||
application$system: Application.Filter & SubQueryPredicateMetadata;
|
||||
domain$system: Domain.Filter & SubQueryPredicateMetadata;
|
||||
messageSystem$system: MessageSystem.Filter & SubQueryPredicateMetadata;
|
||||
passport$system: Passport.Filter & SubQueryPredicateMetadata;
|
||||
smsTemplate$system: SmsTemplate.Filter & SubQueryPredicateMetadata;
|
||||
userSystem$system: UserSystem.Filter & SubQueryPredicateMetadata;
|
||||
};
|
||||
|
|
@ -105,6 +109,12 @@ export type Projection = {
|
|||
messageSystem$system$$aggr?: MessageSystem.Aggregation & {
|
||||
$entity: "messageSystem";
|
||||
};
|
||||
passport$system?: Passport.Selection & {
|
||||
$entity: "passport";
|
||||
};
|
||||
passport$system$$aggr?: Passport.Aggregation & {
|
||||
$entity: "passport";
|
||||
};
|
||||
smsTemplate$system?: SmsTemplate.Selection & {
|
||||
$entity: "smsTemplate";
|
||||
};
|
||||
|
|
@ -180,6 +190,7 @@ export type CreateOperationData = FormCreateData<Omit<OpSchema, "entity" | "enti
|
|||
application$system?: OakOperation<Application.UpdateOperation["action"], Omit<Application.UpdateOperationData, "system" | "systemId">, Omit<Application.Filter, "system" | "systemId">> | OakOperation<"create", Omit<Application.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<Application.CreateOperationData, "system" | "systemId">> | OakOperation<Application.UpdateOperation["action"], Omit<Application.UpdateOperationData, "system" | "systemId">, Omit<Application.Filter, "system" | "systemId">>>;
|
||||
domain$system?: OakOperation<Domain.UpdateOperation["action"], Omit<Domain.UpdateOperationData, "system" | "systemId">, Omit<Domain.Filter, "system" | "systemId">> | OakOperation<"create", Omit<Domain.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<Domain.CreateOperationData, "system" | "systemId">> | OakOperation<Domain.UpdateOperation["action"], Omit<Domain.UpdateOperationData, "system" | "systemId">, Omit<Domain.Filter, "system" | "systemId">>>;
|
||||
messageSystem$system?: OakOperation<MessageSystem.UpdateOperation["action"], Omit<MessageSystem.UpdateOperationData, "system" | "systemId">, Omit<MessageSystem.Filter, "system" | "systemId">> | OakOperation<"create", Omit<MessageSystem.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<MessageSystem.CreateOperationData, "system" | "systemId">> | OakOperation<MessageSystem.UpdateOperation["action"], Omit<MessageSystem.UpdateOperationData, "system" | "systemId">, Omit<MessageSystem.Filter, "system" | "systemId">>>;
|
||||
passport$system?: OakOperation<Passport.UpdateOperation["action"], Omit<Passport.UpdateOperationData, "system" | "systemId">, Omit<Passport.Filter, "system" | "systemId">> | OakOperation<"create", Omit<Passport.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<Passport.CreateOperationData, "system" | "systemId">> | OakOperation<Passport.UpdateOperation["action"], Omit<Passport.UpdateOperationData, "system" | "systemId">, Omit<Passport.Filter, "system" | "systemId">>>;
|
||||
smsTemplate$system?: OakOperation<SmsTemplate.UpdateOperation["action"], Omit<SmsTemplate.UpdateOperationData, "system" | "systemId">, Omit<SmsTemplate.Filter, "system" | "systemId">> | OakOperation<"create", Omit<SmsTemplate.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<SmsTemplate.CreateOperationData, "system" | "systemId">> | OakOperation<SmsTemplate.UpdateOperation["action"], Omit<SmsTemplate.UpdateOperationData, "system" | "systemId">, Omit<SmsTemplate.Filter, "system" | "systemId">>>;
|
||||
userSystem$system?: OakOperation<UserSystem.UpdateOperation["action"], Omit<UserSystem.UpdateOperationData, "system" | "systemId">, Omit<UserSystem.Filter, "system" | "systemId">> | OakOperation<"create", Omit<UserSystem.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<UserSystem.CreateOperationData, "system" | "systemId">> | OakOperation<UserSystem.UpdateOperation["action"], Omit<UserSystem.UpdateOperationData, "system" | "systemId">, Omit<UserSystem.Filter, "system" | "systemId">>>;
|
||||
};
|
||||
|
|
@ -203,6 +214,7 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "platformId">> &
|
|||
application$system?: OakOperation<Application.UpdateOperation["action"], Omit<Application.UpdateOperationData, "system" | "systemId">, Omit<Application.Filter, "system" | "systemId">> | OakOperation<Application.RemoveOperation["action"], Omit<Application.RemoveOperationData, "system" | "systemId">, Omit<Application.Filter, "system" | "systemId">> | OakOperation<"create", Omit<Application.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<Application.CreateOperationData, "system" | "systemId">> | OakOperation<Application.UpdateOperation["action"], Omit<Application.UpdateOperationData, "system" | "systemId">, Omit<Application.Filter, "system" | "systemId">> | OakOperation<Application.RemoveOperation["action"], Omit<Application.RemoveOperationData, "system" | "systemId">, Omit<Application.Filter, "system" | "systemId">>>;
|
||||
domain$system?: OakOperation<Domain.UpdateOperation["action"], Omit<Domain.UpdateOperationData, "system" | "systemId">, Omit<Domain.Filter, "system" | "systemId">> | OakOperation<Domain.RemoveOperation["action"], Omit<Domain.RemoveOperationData, "system" | "systemId">, Omit<Domain.Filter, "system" | "systemId">> | OakOperation<"create", Omit<Domain.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<Domain.CreateOperationData, "system" | "systemId">> | OakOperation<Domain.UpdateOperation["action"], Omit<Domain.UpdateOperationData, "system" | "systemId">, Omit<Domain.Filter, "system" | "systemId">> | OakOperation<Domain.RemoveOperation["action"], Omit<Domain.RemoveOperationData, "system" | "systemId">, Omit<Domain.Filter, "system" | "systemId">>>;
|
||||
messageSystem$system?: OakOperation<MessageSystem.UpdateOperation["action"], Omit<MessageSystem.UpdateOperationData, "system" | "systemId">, Omit<MessageSystem.Filter, "system" | "systemId">> | OakOperation<MessageSystem.RemoveOperation["action"], Omit<MessageSystem.RemoveOperationData, "system" | "systemId">, Omit<MessageSystem.Filter, "system" | "systemId">> | OakOperation<"create", Omit<MessageSystem.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<MessageSystem.CreateOperationData, "system" | "systemId">> | OakOperation<MessageSystem.UpdateOperation["action"], Omit<MessageSystem.UpdateOperationData, "system" | "systemId">, Omit<MessageSystem.Filter, "system" | "systemId">> | OakOperation<MessageSystem.RemoveOperation["action"], Omit<MessageSystem.RemoveOperationData, "system" | "systemId">, Omit<MessageSystem.Filter, "system" | "systemId">>>;
|
||||
passport$system?: OakOperation<Passport.UpdateOperation["action"], Omit<Passport.UpdateOperationData, "system" | "systemId">, Omit<Passport.Filter, "system" | "systemId">> | OakOperation<Passport.RemoveOperation["action"], Omit<Passport.RemoveOperationData, "system" | "systemId">, Omit<Passport.Filter, "system" | "systemId">> | OakOperation<"create", Omit<Passport.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<Passport.CreateOperationData, "system" | "systemId">> | OakOperation<Passport.UpdateOperation["action"], Omit<Passport.UpdateOperationData, "system" | "systemId">, Omit<Passport.Filter, "system" | "systemId">> | OakOperation<Passport.RemoveOperation["action"], Omit<Passport.RemoveOperationData, "system" | "systemId">, Omit<Passport.Filter, "system" | "systemId">>>;
|
||||
smsTemplate$system?: OakOperation<SmsTemplate.UpdateOperation["action"], Omit<SmsTemplate.UpdateOperationData, "system" | "systemId">, Omit<SmsTemplate.Filter, "system" | "systemId">> | OakOperation<SmsTemplate.RemoveOperation["action"], Omit<SmsTemplate.RemoveOperationData, "system" | "systemId">, Omit<SmsTemplate.Filter, "system" | "systemId">> | OakOperation<"create", Omit<SmsTemplate.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<SmsTemplate.CreateOperationData, "system" | "systemId">> | OakOperation<SmsTemplate.UpdateOperation["action"], Omit<SmsTemplate.UpdateOperationData, "system" | "systemId">, Omit<SmsTemplate.Filter, "system" | "systemId">> | OakOperation<SmsTemplate.RemoveOperation["action"], Omit<SmsTemplate.RemoveOperationData, "system" | "systemId">, Omit<SmsTemplate.Filter, "system" | "systemId">>>;
|
||||
userSystem$system?: OakOperation<UserSystem.UpdateOperation["action"], Omit<UserSystem.UpdateOperationData, "system" | "systemId">, Omit<UserSystem.Filter, "system" | "systemId">> | OakOperation<UserSystem.RemoveOperation["action"], Omit<UserSystem.RemoveOperationData, "system" | "systemId">, Omit<UserSystem.Filter, "system" | "systemId">> | OakOperation<"create", Omit<UserSystem.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<UserSystem.CreateOperationData, "system" | "systemId">> | OakOperation<UserSystem.UpdateOperation["action"], Omit<UserSystem.UpdateOperationData, "system" | "systemId">, Omit<UserSystem.Filter, "system" | "systemId">> | OakOperation<UserSystem.RemoveOperation["action"], Omit<UserSystem.RemoveOperationData, "system" | "systemId">, Omit<UserSystem.Filter, "system" | "systemId">>>;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import * as UserEntityGrant from "./UserEntityGrant/Schema";
|
|||
import * as UserRelation from "./UserRelation/Schema";
|
||||
import * as Address from "./Address/Schema";
|
||||
import * as Application from "./Application/Schema";
|
||||
import * as ApplicationPassport from "./ApplicationPassport/Schema";
|
||||
import * as Area from "./Area/Schema";
|
||||
import * as Article from "./Article/Schema";
|
||||
import * as ArticleMenu from "./ArticleMenu/Schema";
|
||||
|
|
@ -30,6 +31,7 @@ import * as MessageTypeTemplate from "./MessageTypeTemplate/Schema";
|
|||
import * as Mobile from "./Mobile/Schema";
|
||||
import * as Notification from "./Notification/Schema";
|
||||
import * as Parasite from "./Parasite/Schema";
|
||||
import * as Passport from "./Passport/Schema";
|
||||
import * as Platform from "./Platform/Schema";
|
||||
import * as ReadRemark from "./ReadRemark/Schema";
|
||||
import * as Session from "./Session/Schema";
|
||||
|
|
@ -193,7 +195,9 @@ export type AddressIdSubQuery = {
|
|||
}) | any;
|
||||
};
|
||||
export type ApplicationIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (ExtraFile.ApplicationIdSubQuery & {
|
||||
[K in "$in" | "$nin"]?: (ApplicationPassport.ApplicationIdSubQuery & {
|
||||
entity: "applicationPassport";
|
||||
}) | (ExtraFile.ApplicationIdSubQuery & {
|
||||
entity: "extraFile";
|
||||
}) | (Notification.ApplicationIdSubQuery & {
|
||||
entity: "notification";
|
||||
|
|
@ -219,6 +223,11 @@ export type ApplicationIdSubQuery = {
|
|||
entity: "application";
|
||||
}) | any;
|
||||
};
|
||||
export type ApplicationPassportIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (ApplicationPassport.ApplicationPassportIdSubQuery & {
|
||||
entity: "applicationPassport";
|
||||
}) | any;
|
||||
};
|
||||
export type AreaIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (Address.AreaIdSubQuery & {
|
||||
entity: "address";
|
||||
|
|
@ -334,6 +343,13 @@ export type ParasiteIdSubQuery = {
|
|||
entity: "parasite";
|
||||
}) | any;
|
||||
};
|
||||
export type PassportIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (ApplicationPassport.PassportIdSubQuery & {
|
||||
entity: "applicationPassport";
|
||||
}) | (Passport.PassportIdSubQuery & {
|
||||
entity: "passport";
|
||||
}) | any;
|
||||
};
|
||||
export type PlatformIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (Message.PlatformIdSubQuery & {
|
||||
entity: "message";
|
||||
|
|
@ -406,6 +422,8 @@ export type SystemIdSubQuery = {
|
|||
entity: "domain";
|
||||
}) | (MessageSystem.SystemIdSubQuery & {
|
||||
entity: "messageSystem";
|
||||
}) | (Passport.SystemIdSubQuery & {
|
||||
entity: "passport";
|
||||
}) | (SmsTemplate.SystemIdSubQuery & {
|
||||
entity: "smsTemplate";
|
||||
}) | (UserSystem.SystemIdSubQuery & {
|
||||
|
|
|
|||
|
|
@ -66,5 +66,23 @@ const triggers = [
|
|||
return 1;
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '删除application前,将关联的passport删除',
|
||||
entity: 'application',
|
||||
action: 'remove',
|
||||
when: 'before',
|
||||
fn: async ({ operation }, context, option) => {
|
||||
const { filter } = operation;
|
||||
await context.operate('applicationPassport', {
|
||||
id: await generateNewIdAsync(),
|
||||
action: 'remove',
|
||||
data: {},
|
||||
filter: {
|
||||
application: filter,
|
||||
},
|
||||
}, option);
|
||||
return 1;
|
||||
}
|
||||
},
|
||||
];
|
||||
export default triggers;
|
||||
|
|
|
|||
|
|
@ -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, "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, "application", 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, "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, "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, "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, "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, "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>>)[];
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import sessionMessageTriggers from './sessionMessage';
|
|||
import wechatMenuTriggers from './wechatMenu';
|
||||
import wechatPublicTag from './wechatPublicTag';
|
||||
import wechatMpJump from './wechatMpJump';
|
||||
import systemTriggers from './system';
|
||||
// import accountTriggers from './account';
|
||||
export default [
|
||||
// ...accountTriggers,
|
||||
|
|
@ -33,4 +34,5 @@ export default [
|
|||
...wechatMenuTriggers,
|
||||
...wechatPublicTag,
|
||||
...wechatMpJump,
|
||||
...systemTriggers,
|
||||
];
|
||||
|
|
|
|||
|
|
@ -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, 'system', BRC<EntityDict>>[];
|
||||
export default triggers;
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
import { generateNewIdAsync } from 'oak-domain/lib/utils/uuid';
|
||||
import { desc } from '../oak-app-domain/Passport/Storage';
|
||||
import { assert } from 'oak-domain/lib/utils/assert';
|
||||
const { attributes: { type: passportType } } = desc;
|
||||
const triggers = [
|
||||
{
|
||||
name: '添加system时,添加相应的passport',
|
||||
entity: 'system',
|
||||
action: 'create',
|
||||
when: 'before',
|
||||
fn: async ({ operation }) => {
|
||||
const { data } = operation;
|
||||
assert(!(data instanceof Array));
|
||||
data.passport$system = await Promise.all(passportType.enumeration.map(async (type) => ({
|
||||
id: await generateNewIdAsync(),
|
||||
action: 'create',
|
||||
data: {
|
||||
id: await generateNewIdAsync(),
|
||||
type,
|
||||
enabled: false,
|
||||
}
|
||||
})));
|
||||
return 1;
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '当system删除前,删除相关的passports',
|
||||
entity: 'system',
|
||||
action: 'remove',
|
||||
when: 'before',
|
||||
fn: async ({ operation }, context, option) => {
|
||||
const { filter } = operation;
|
||||
await context.operate('passport', {
|
||||
id: await generateNewIdAsync(),
|
||||
action: 'remove',
|
||||
data: {},
|
||||
filter: {
|
||||
system: filter,
|
||||
},
|
||||
}, option);
|
||||
return 1;
|
||||
},
|
||||
},
|
||||
];
|
||||
export default triggers;
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
import { Boolean } from 'oak-domain/lib/types/DataType';
|
||||
import { EntityShape } from 'oak-domain/lib/types/Entity';
|
||||
import { EntityDesc } from 'oak-domain/lib/types/EntityDesc';
|
||||
import { Schema as Application } from './Application';
|
||||
import { Schema as Passport } from './Passport';
|
||||
export interface Schema extends EntityShape {
|
||||
application: Application;
|
||||
passport: Passport;
|
||||
isDefault: Boolean;
|
||||
}
|
||||
export declare const entityDesc: EntityDesc<Schema>;
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.entityDesc = void 0;
|
||||
;
|
||||
exports.entityDesc = {
|
||||
locales: {
|
||||
zh_CN: {
|
||||
name: '应用登录方式',
|
||||
attr: {
|
||||
application: '应用',
|
||||
passport: '登录方式',
|
||||
isDefault: '是否默认',
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
import { Boolean } from 'oak-domain/lib/types/DataType';
|
||||
import { EntityShape } from 'oak-domain/lib/types/Entity';
|
||||
import { Schema as System } from './System';
|
||||
import { EntityDesc } from 'oak-domain/lib/types/EntityDesc';
|
||||
type Type = 'password' | 'sms' | 'email' | 'wechatWeb' | 'wechatMp' | 'wechatPublic' | 'wechatPublicForWeb' | 'wechatMpForWeb';
|
||||
type SmsConfig = {
|
||||
mockSend?: boolean;
|
||||
templateName?: string;
|
||||
codeDuration?: number;
|
||||
};
|
||||
type EmailConifg = {
|
||||
smtpUrl: string;
|
||||
smtpAccount: string;
|
||||
smtpPassword: string;
|
||||
};
|
||||
type PfwConfig = {
|
||||
appId: string;
|
||||
};
|
||||
type MfwConfig = {
|
||||
appId: string;
|
||||
};
|
||||
export interface Schema extends EntityShape {
|
||||
system: System;
|
||||
type: Type;
|
||||
config?: SmsConfig | EmailConifg | PfwConfig | MfwConfig;
|
||||
enabled: Boolean;
|
||||
}
|
||||
export declare const entityDesc: EntityDesc<Schema, '', '', {
|
||||
type: Schema['type'];
|
||||
}>;
|
||||
export {};
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.entityDesc = void 0;
|
||||
;
|
||||
exports.entityDesc = {
|
||||
locales: {
|
||||
zh_CN: {
|
||||
name: '登录方式',
|
||||
attr: {
|
||||
system: '系统',
|
||||
type: '登录方式',
|
||||
config: '登录方式配置',
|
||||
enabled: '是否启用',
|
||||
},
|
||||
v: {
|
||||
type: {
|
||||
email: '邮箱',
|
||||
sms: '短信',
|
||||
password: '密码',
|
||||
wechatMp: '小程序',
|
||||
wechatPublic: '公众号',
|
||||
wechatWeb: '微信网站',
|
||||
wechatMpForWeb: '小程序授权',
|
||||
wechatPublicForWeb: '公众号授权'
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
style: {
|
||||
color: {
|
||||
type: {
|
||||
password: '#00BFFF',
|
||||
sms: '#F0F8FF',
|
||||
email: '#FFA07A',
|
||||
wechatWeb: '#90EE90',
|
||||
wechatPublic: '#32CD32',
|
||||
wechatMp: '#3CB371',
|
||||
wechatMpForWeb: '#006400',
|
||||
wechatPublicForWeb: '#008000',
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -7,6 +7,7 @@ import { String, Text } from "oak-domain/lib/types/DataType";
|
|||
import { Style } from "../../types/Style";
|
||||
import * as System from "../System/Schema";
|
||||
import * as Domain from "../Domain/Schema";
|
||||
import * as ApplicationPassport from "../ApplicationPassport/Schema";
|
||||
import * as ExtraFile from "../ExtraFile/Schema";
|
||||
import * as Notification from "../Notification/Schema";
|
||||
import * as SessionMessage from "../SessionMessage/Schema";
|
||||
|
|
@ -90,6 +91,8 @@ export type Schema = EntityShape & {
|
|||
domainId?: ForeignKey<"domain"> | null;
|
||||
system: System.Schema;
|
||||
domain?: Domain.Schema | null;
|
||||
applicationPassport$application?: Array<ApplicationPassport.Schema>;
|
||||
applicationPassport$application$$aggr?: AggregationResult<ApplicationPassport.Schema>;
|
||||
extraFile$application?: Array<ExtraFile.Schema>;
|
||||
extraFile$application$$aggr?: AggregationResult<ExtraFile.Schema>;
|
||||
notification$application?: Array<Notification.Schema>;
|
||||
|
|
@ -129,6 +132,7 @@ type AttrFilter = {
|
|||
style: JsonFilter<Style>;
|
||||
domainId: Q_StringValue;
|
||||
domain: Domain.Filter;
|
||||
applicationPassport$application: ApplicationPassport.Filter & SubQueryPredicateMetadata;
|
||||
extraFile$application: ExtraFile.Filter & SubQueryPredicateMetadata;
|
||||
notification$application: Notification.Filter & SubQueryPredicateMetadata;
|
||||
sessionMessage$application: SessionMessage.Filter & SubQueryPredicateMetadata;
|
||||
|
|
@ -158,6 +162,12 @@ export type Projection = {
|
|||
style?: number | JsonProjection<Style>;
|
||||
domainId?: number;
|
||||
domain?: Domain.Projection;
|
||||
applicationPassport$application?: ApplicationPassport.Selection & {
|
||||
$entity: "applicationPassport";
|
||||
};
|
||||
applicationPassport$application$$aggr?: ApplicationPassport.Aggregation & {
|
||||
$entity: "applicationPassport";
|
||||
};
|
||||
extraFile$application?: ExtraFile.Selection & {
|
||||
$entity: "extraFile";
|
||||
};
|
||||
|
|
@ -288,6 +298,7 @@ export type CreateOperationData = FormCreateData<Omit<OpSchema, "systemId" | "do
|
|||
domain?: never;
|
||||
domainId?: ForeignKey<"domain">;
|
||||
})) & {
|
||||
applicationPassport$application?: OakOperation<ApplicationPassport.UpdateOperation["action"], Omit<ApplicationPassport.UpdateOperationData, "application" | "applicationId">, Omit<ApplicationPassport.Filter, "application" | "applicationId">> | OakOperation<"create", Omit<ApplicationPassport.CreateOperationData, "application" | "applicationId">[]> | Array<OakOperation<"create", Omit<ApplicationPassport.CreateOperationData, "application" | "applicationId">> | OakOperation<ApplicationPassport.UpdateOperation["action"], Omit<ApplicationPassport.UpdateOperationData, "application" | "applicationId">, Omit<ApplicationPassport.Filter, "application" | "applicationId">>>;
|
||||
extraFile$application?: OakOperation<ExtraFile.UpdateOperation["action"], Omit<ExtraFile.UpdateOperationData, "application" | "applicationId">, Omit<ExtraFile.Filter, "application" | "applicationId">> | OakOperation<"create", Omit<ExtraFile.CreateOperationData, "application" | "applicationId">[]> | Array<OakOperation<"create", Omit<ExtraFile.CreateOperationData, "application" | "applicationId">> | OakOperation<ExtraFile.UpdateOperation["action"], Omit<ExtraFile.UpdateOperationData, "application" | "applicationId">, Omit<ExtraFile.Filter, "application" | "applicationId">>>;
|
||||
notification$application?: OakOperation<Notification.UpdateOperation["action"], Omit<Notification.UpdateOperationData, "application" | "applicationId">, Omit<Notification.Filter, "application" | "applicationId">> | OakOperation<"create", Omit<Notification.CreateOperationData, "application" | "applicationId">[]> | Array<OakOperation<"create", Omit<Notification.CreateOperationData, "application" | "applicationId">> | OakOperation<Notification.UpdateOperation["action"], Omit<Notification.UpdateOperationData, "application" | "applicationId">, Omit<Notification.Filter, "application" | "applicationId">>>;
|
||||
sessionMessage$application?: OakOperation<SessionMessage.UpdateOperation["action"], Omit<SessionMessage.UpdateOperationData, "application" | "applicationId">, Omit<SessionMessage.Filter, "application" | "applicationId">> | OakOperation<"create", Omit<SessionMessage.CreateOperationData, "application" | "applicationId">[]> | Array<OakOperation<"create", Omit<SessionMessage.CreateOperationData, "application" | "applicationId">> | OakOperation<SessionMessage.UpdateOperation["action"], Omit<SessionMessage.UpdateOperationData, "application" | "applicationId">, Omit<SessionMessage.Filter, "application" | "applicationId">>>;
|
||||
|
|
@ -329,6 +340,7 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "systemId" | "do
|
|||
domainId?: ForeignKey<"domain"> | null;
|
||||
})) & {
|
||||
[k: string]: any;
|
||||
applicationPassport$application?: OakOperation<ApplicationPassport.UpdateOperation["action"], Omit<ApplicationPassport.UpdateOperationData, "application" | "applicationId">, Omit<ApplicationPassport.Filter, "application" | "applicationId">> | OakOperation<ApplicationPassport.RemoveOperation["action"], Omit<ApplicationPassport.RemoveOperationData, "application" | "applicationId">, Omit<ApplicationPassport.Filter, "application" | "applicationId">> | OakOperation<"create", Omit<ApplicationPassport.CreateOperationData, "application" | "applicationId">[]> | Array<OakOperation<"create", Omit<ApplicationPassport.CreateOperationData, "application" | "applicationId">> | OakOperation<ApplicationPassport.UpdateOperation["action"], Omit<ApplicationPassport.UpdateOperationData, "application" | "applicationId">, Omit<ApplicationPassport.Filter, "application" | "applicationId">> | OakOperation<ApplicationPassport.RemoveOperation["action"], Omit<ApplicationPassport.RemoveOperationData, "application" | "applicationId">, Omit<ApplicationPassport.Filter, "application" | "applicationId">>>;
|
||||
extraFile$application?: OakOperation<ExtraFile.UpdateOperation["action"], Omit<ExtraFile.UpdateOperationData, "application" | "applicationId">, Omit<ExtraFile.Filter, "application" | "applicationId">> | OakOperation<ExtraFile.RemoveOperation["action"], Omit<ExtraFile.RemoveOperationData, "application" | "applicationId">, Omit<ExtraFile.Filter, "application" | "applicationId">> | OakOperation<"create", Omit<ExtraFile.CreateOperationData, "application" | "applicationId">[]> | Array<OakOperation<"create", Omit<ExtraFile.CreateOperationData, "application" | "applicationId">> | OakOperation<ExtraFile.UpdateOperation["action"], Omit<ExtraFile.UpdateOperationData, "application" | "applicationId">, Omit<ExtraFile.Filter, "application" | "applicationId">> | OakOperation<ExtraFile.RemoveOperation["action"], Omit<ExtraFile.RemoveOperationData, "application" | "applicationId">, Omit<ExtraFile.Filter, "application" | "applicationId">>>;
|
||||
notification$application?: OakOperation<Notification.UpdateOperation["action"], Omit<Notification.UpdateOperationData, "application" | "applicationId">, Omit<Notification.Filter, "application" | "applicationId">> | OakOperation<Notification.RemoveOperation["action"], Omit<Notification.RemoveOperationData, "application" | "applicationId">, Omit<Notification.Filter, "application" | "applicationId">> | OakOperation<"create", Omit<Notification.CreateOperationData, "application" | "applicationId">[]> | Array<OakOperation<"create", Omit<Notification.CreateOperationData, "application" | "applicationId">> | OakOperation<Notification.UpdateOperation["action"], Omit<Notification.UpdateOperationData, "application" | "applicationId">, Omit<Notification.Filter, "application" | "applicationId">> | OakOperation<Notification.RemoveOperation["action"], Omit<Notification.RemoveOperationData, "application" | "applicationId">, Omit<Notification.Filter, "application" | "applicationId">>>;
|
||||
sessionMessage$application?: OakOperation<SessionMessage.UpdateOperation["action"], Omit<SessionMessage.UpdateOperationData, "application" | "applicationId">, Omit<SessionMessage.Filter, "application" | "applicationId">> | OakOperation<SessionMessage.RemoveOperation["action"], Omit<SessionMessage.RemoveOperationData, "application" | "applicationId">, Omit<SessionMessage.Filter, "application" | "applicationId">> | OakOperation<"create", Omit<SessionMessage.CreateOperationData, "application" | "applicationId">[]> | Array<OakOperation<"create", Omit<SessionMessage.CreateOperationData, "application" | "applicationId">> | OakOperation<SessionMessage.UpdateOperation["action"], Omit<SessionMessage.UpdateOperationData, "application" | "applicationId">, Omit<SessionMessage.Filter, "application" | "applicationId">> | OakOperation<SessionMessage.RemoveOperation["action"], Omit<SessionMessage.RemoveOperationData, "application" | "applicationId">, Omit<SessionMessage.Filter, "application" | "applicationId">>>;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,160 @@
|
|||
import { ForeignKey } from "oak-domain/lib/types/DataType";
|
||||
import { Q_DateValue, Q_BooleanValue, Q_NumberValue, Q_StringValue, NodeId, MakeFilter, ExprOp, ExpressionKey } from "oak-domain/lib/types/Demand";
|
||||
import { OneOf } from "oak-domain/lib/types/Polyfill";
|
||||
import { FormCreateData, FormUpdateData, DeduceAggregation, Operation as OakOperation, Selection as OakSelection, MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity";
|
||||
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||
import { Boolean } from "oak-domain/lib/types/DataType";
|
||||
import * as Application from "../Application/Schema";
|
||||
import * as Passport from "../Passport/Schema";
|
||||
export type OpSchema = EntityShape & {
|
||||
applicationId: ForeignKey<"application">;
|
||||
passportId: ForeignKey<"passport">;
|
||||
isDefault: Boolean;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = EntityShape & {
|
||||
applicationId: ForeignKey<"application">;
|
||||
passportId: ForeignKey<"passport">;
|
||||
isDefault: Boolean;
|
||||
application: Application.Schema;
|
||||
passport: Passport.Schema;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
$$createAt$$: Q_DateValue;
|
||||
$$seq$$: Q_NumberValue;
|
||||
$$updateAt$$: Q_DateValue;
|
||||
applicationId: Q_StringValue;
|
||||
application: Application.Filter;
|
||||
passportId: Q_StringValue;
|
||||
passport: Passport.Filter;
|
||||
isDefault: Q_BooleanValue;
|
||||
};
|
||||
export type Filter = MakeFilter<AttrFilter & ExprOp<OpAttr | string>>;
|
||||
export type Projection = {
|
||||
"#id"?: NodeId;
|
||||
[k: string]: any;
|
||||
id?: number;
|
||||
$$createAt$$?: number;
|
||||
$$updateAt$$?: number;
|
||||
$$seq$$?: number;
|
||||
applicationId?: number;
|
||||
application?: Application.Projection;
|
||||
passportId?: number;
|
||||
passport?: Passport.Projection;
|
||||
isDefault?: number;
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type ApplicationPassportIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
type ApplicationIdProjection = OneOf<{
|
||||
applicationId: number;
|
||||
}>;
|
||||
type PassportIdProjection = OneOf<{
|
||||
passportId: number;
|
||||
}>;
|
||||
export type SortAttr = {
|
||||
id: number;
|
||||
} | {
|
||||
$$createAt$$: number;
|
||||
} | {
|
||||
$$seq$$: number;
|
||||
} | {
|
||||
$$updateAt$$: number;
|
||||
} | {
|
||||
applicationId: number;
|
||||
} | {
|
||||
application: Application.SortAttr;
|
||||
} | {
|
||||
passportId: number;
|
||||
} | {
|
||||
passport: Passport.SortAttr;
|
||||
} | {
|
||||
isDefault: number;
|
||||
} | {
|
||||
[k: string]: any;
|
||||
} | OneOf<ExprOp<OpAttr | string>>;
|
||||
export type SortNode = {
|
||||
$attr: SortAttr;
|
||||
$direction?: "asc" | "desc";
|
||||
};
|
||||
export type Sorter = SortNode[];
|
||||
export type SelectOperation<P extends Object = Projection> = OakSelection<"select", P, Filter, Sorter>;
|
||||
export type Selection<P extends Object = Projection> = SelectOperation<P>;
|
||||
export type Aggregation = DeduceAggregation<Projection, Filter, Sorter>;
|
||||
export type CreateOperationData = FormCreateData<Omit<OpSchema, "applicationId" | "passportId">> & (({
|
||||
applicationId?: never;
|
||||
application: Application.CreateSingleOperation;
|
||||
} | {
|
||||
applicationId: ForeignKey<"application">;
|
||||
application?: Application.UpdateOperation;
|
||||
} | {
|
||||
application?: never;
|
||||
applicationId: ForeignKey<"application">;
|
||||
}) & ({
|
||||
passportId?: never;
|
||||
passport: Passport.CreateSingleOperation;
|
||||
} | {
|
||||
passportId: ForeignKey<"passport">;
|
||||
passport?: Passport.UpdateOperation;
|
||||
} | {
|
||||
passport?: never;
|
||||
passportId: ForeignKey<"passport">;
|
||||
}));
|
||||
export type CreateSingleOperation = OakOperation<"create", CreateOperationData>;
|
||||
export type CreateMultipleOperation = OakOperation<"create", Array<CreateOperationData>>;
|
||||
export type CreateOperation = CreateSingleOperation | CreateMultipleOperation;
|
||||
export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "applicationId" | "passportId">> & (({
|
||||
application?: Application.CreateSingleOperation;
|
||||
applicationId?: never;
|
||||
} | {
|
||||
application?: Application.UpdateOperation;
|
||||
applicationId?: never;
|
||||
} | {
|
||||
application?: Application.RemoveOperation;
|
||||
applicationId?: never;
|
||||
} | {
|
||||
application?: never;
|
||||
applicationId?: ForeignKey<"application">;
|
||||
}) & ({
|
||||
passport?: Passport.CreateSingleOperation;
|
||||
passportId?: never;
|
||||
} | {
|
||||
passport?: Passport.UpdateOperation;
|
||||
passportId?: never;
|
||||
} | {
|
||||
passport?: Passport.RemoveOperation;
|
||||
passportId?: never;
|
||||
} | {
|
||||
passport?: never;
|
||||
passportId?: ForeignKey<"passport">;
|
||||
})) & {
|
||||
[k: string]: any;
|
||||
};
|
||||
export type UpdateOperation = OakOperation<"update" | string, UpdateOperationData, Filter, Sorter>;
|
||||
export type RemoveOperationData = {} & (({
|
||||
application?: Application.UpdateOperation | Application.RemoveOperation;
|
||||
}) & ({
|
||||
passport?: Passport.UpdateOperation | Passport.RemoveOperation;
|
||||
}));
|
||||
export type RemoveOperation = OakOperation<"remove", RemoveOperationData, Filter, Sorter>;
|
||||
export type Operation = CreateOperation | UpdateOperation | RemoveOperation;
|
||||
export type ApplicationIdSubQuery = Selection<ApplicationIdProjection>;
|
||||
export type PassportIdSubQuery = Selection<PassportIdProjection>;
|
||||
export type ApplicationPassportIdSubQuery = Selection<ApplicationPassportIdProjection>;
|
||||
export type EntityDef = {
|
||||
Schema: Schema;
|
||||
OpSchema: OpSchema;
|
||||
Action: OakMakeAction<GenericAction> | string;
|
||||
Selection: Selection;
|
||||
Aggregation: Aggregation;
|
||||
Operation: Operation;
|
||||
Create: CreateOperation;
|
||||
Update: UpdateOperation;
|
||||
Remove: RemoveOperation;
|
||||
CreateSingle: CreateSingleOperation;
|
||||
CreateMulti: CreateMultipleOperation;
|
||||
};
|
||||
export {};
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
import { StorageDesc } from "oak-domain/lib/types/Storage";
|
||||
import { OpSchema } from "./Schema";
|
||||
export declare const desc: StorageDesc<OpSchema>;
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.desc = void 0;
|
||||
const action_1 = require("oak-domain/lib/actions/action");
|
||||
exports.desc = {
|
||||
attributes: {
|
||||
applicationId: {
|
||||
notNull: true,
|
||||
type: "ref",
|
||||
ref: "application"
|
||||
},
|
||||
passportId: {
|
||||
notNull: true,
|
||||
type: "ref",
|
||||
ref: "passport"
|
||||
},
|
||||
isDefault: {
|
||||
notNull: true,
|
||||
type: "boolean"
|
||||
}
|
||||
},
|
||||
actionType: "crud",
|
||||
actions: action_1.genericActions
|
||||
};
|
||||
|
|
@ -0,0 +1 @@
|
|||
{ "name": "应用登录方式", "attr": { "application": "应用", "passport": "登录方式", "isDefault": "是否默认" } }
|
||||
|
|
@ -13,6 +13,7 @@ import { EntityDef as UserEntityGrant } from "./UserEntityGrant/Schema";
|
|||
import { EntityDef as UserRelation } from "./UserRelation/Schema";
|
||||
import { EntityDef as Address } from "./Address/Schema";
|
||||
import { EntityDef as Application } from "./Application/Schema";
|
||||
import { EntityDef as ApplicationPassport } from "./ApplicationPassport/Schema";
|
||||
import { EntityDef as Area } from "./Area/Schema";
|
||||
import { EntityDef as Article } from "./Article/Schema";
|
||||
import { EntityDef as ArticleMenu } from "./ArticleMenu/Schema";
|
||||
|
|
@ -30,6 +31,7 @@ import { EntityDef as MessageTypeTemplate } from "./MessageTypeTemplate/Schema";
|
|||
import { EntityDef as Mobile } from "./Mobile/Schema";
|
||||
import { EntityDef as Notification } from "./Notification/Schema";
|
||||
import { EntityDef as Parasite } from "./Parasite/Schema";
|
||||
import { EntityDef as Passport } from "./Passport/Schema";
|
||||
import { EntityDef as Platform } from "./Platform/Schema";
|
||||
import { EntityDef as ReadRemark } from "./ReadRemark/Schema";
|
||||
import { EntityDef as Session } from "./Session/Schema";
|
||||
|
|
@ -68,6 +70,7 @@ export type EntityDict = {
|
|||
userRelation: UserRelation;
|
||||
address: Address;
|
||||
application: Application;
|
||||
applicationPassport: ApplicationPassport;
|
||||
area: Area;
|
||||
article: Article;
|
||||
articleMenu: ArticleMenu;
|
||||
|
|
@ -85,6 +88,7 @@ export type EntityDict = {
|
|||
mobile: Mobile;
|
||||
notification: Notification;
|
||||
parasite: Parasite;
|
||||
passport: Passport;
|
||||
platform: Platform;
|
||||
readRemark: ReadRemark;
|
||||
session: Session;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,161 @@
|
|||
import { ForeignKey, JsonProjection } from "oak-domain/lib/types/DataType";
|
||||
import { Q_DateValue, Q_BooleanValue, Q_NumberValue, Q_StringValue, Q_EnumValue, NodeId, MakeFilter, ExprOp, ExpressionKey, JsonFilter, SubQueryPredicateMetadata } from "oak-domain/lib/types/Demand";
|
||||
import { OneOf } from "oak-domain/lib/types/Polyfill";
|
||||
import { FormCreateData, FormUpdateData, DeduceAggregation, Operation as OakOperation, Selection as OakSelection, MakeAction as OakMakeAction, AggregationResult, EntityShape } from "oak-domain/lib/types/Entity";
|
||||
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||
import { Boolean } from "oak-domain/lib/types/DataType";
|
||||
import * as System from "../System/Schema";
|
||||
import * as ApplicationPassport from "../ApplicationPassport/Schema";
|
||||
type Type = "password" | "sms" | "email" | "wechatWeb" | "wechatMp" | "wechatPublic" | "wechatPublicForWeb" | "wechatMpForWeb";
|
||||
type SmsConfig = {
|
||||
mockSend?: boolean;
|
||||
templateName?: string;
|
||||
codeDuration?: number;
|
||||
};
|
||||
type EmailConifg = {
|
||||
smtpUrl: string;
|
||||
smtpAccount: string;
|
||||
smtpPassword: string;
|
||||
};
|
||||
type PfwConfig = {
|
||||
appId: string;
|
||||
};
|
||||
type MfwConfig = {
|
||||
appId: string;
|
||||
};
|
||||
export type OpSchema = EntityShape & {
|
||||
systemId: ForeignKey<"system">;
|
||||
type: Type;
|
||||
config?: (SmsConfig | EmailConifg | PfwConfig | MfwConfig) | null;
|
||||
enabled: Boolean;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = EntityShape & {
|
||||
systemId: ForeignKey<"system">;
|
||||
type: Type;
|
||||
config?: (SmsConfig | EmailConifg | PfwConfig | MfwConfig) | null;
|
||||
enabled: Boolean;
|
||||
system: System.Schema;
|
||||
applicationPassport$passport?: Array<ApplicationPassport.Schema>;
|
||||
applicationPassport$passport$$aggr?: AggregationResult<ApplicationPassport.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
$$createAt$$: Q_DateValue;
|
||||
$$seq$$: Q_NumberValue;
|
||||
$$updateAt$$: Q_DateValue;
|
||||
systemId: Q_StringValue;
|
||||
system: System.Filter;
|
||||
type: Q_EnumValue<Type>;
|
||||
config: JsonFilter<SmsConfig | EmailConifg | PfwConfig | MfwConfig>;
|
||||
enabled: Q_BooleanValue;
|
||||
applicationPassport$passport: ApplicationPassport.Filter & SubQueryPredicateMetadata;
|
||||
};
|
||||
export type Filter = MakeFilter<AttrFilter & ExprOp<OpAttr | string>>;
|
||||
export type Projection = {
|
||||
"#id"?: NodeId;
|
||||
[k: string]: any;
|
||||
id?: number;
|
||||
$$createAt$$?: number;
|
||||
$$updateAt$$?: number;
|
||||
$$seq$$?: number;
|
||||
systemId?: number;
|
||||
system?: System.Projection;
|
||||
type?: number;
|
||||
config?: number | JsonProjection<SmsConfig | EmailConifg | PfwConfig | MfwConfig>;
|
||||
enabled?: number;
|
||||
applicationPassport$passport?: ApplicationPassport.Selection & {
|
||||
$entity: "applicationPassport";
|
||||
};
|
||||
applicationPassport$passport$$aggr?: ApplicationPassport.Aggregation & {
|
||||
$entity: "applicationPassport";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type PassportIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
type SystemIdProjection = OneOf<{
|
||||
systemId: number;
|
||||
}>;
|
||||
export type SortAttr = {
|
||||
id: number;
|
||||
} | {
|
||||
$$createAt$$: number;
|
||||
} | {
|
||||
$$seq$$: number;
|
||||
} | {
|
||||
$$updateAt$$: number;
|
||||
} | {
|
||||
systemId: number;
|
||||
} | {
|
||||
system: System.SortAttr;
|
||||
} | {
|
||||
type: number;
|
||||
} | {
|
||||
enabled: number;
|
||||
} | {
|
||||
[k: string]: any;
|
||||
} | OneOf<ExprOp<OpAttr | string>>;
|
||||
export type SortNode = {
|
||||
$attr: SortAttr;
|
||||
$direction?: "asc" | "desc";
|
||||
};
|
||||
export type Sorter = SortNode[];
|
||||
export type SelectOperation<P extends Object = Projection> = OakSelection<"select", P, Filter, Sorter>;
|
||||
export type Selection<P extends Object = Projection> = SelectOperation<P>;
|
||||
export type Aggregation = DeduceAggregation<Projection, Filter, Sorter>;
|
||||
export type CreateOperationData = FormCreateData<Omit<OpSchema, "systemId">> & (({
|
||||
systemId?: never;
|
||||
system: System.CreateSingleOperation;
|
||||
} | {
|
||||
systemId: ForeignKey<"system">;
|
||||
system?: System.UpdateOperation;
|
||||
} | {
|
||||
system?: never;
|
||||
systemId: ForeignKey<"system">;
|
||||
})) & {
|
||||
applicationPassport$passport?: OakOperation<ApplicationPassport.UpdateOperation["action"], Omit<ApplicationPassport.UpdateOperationData, "passport" | "passportId">, Omit<ApplicationPassport.Filter, "passport" | "passportId">> | OakOperation<"create", Omit<ApplicationPassport.CreateOperationData, "passport" | "passportId">[]> | Array<OakOperation<"create", Omit<ApplicationPassport.CreateOperationData, "passport" | "passportId">> | OakOperation<ApplicationPassport.UpdateOperation["action"], Omit<ApplicationPassport.UpdateOperationData, "passport" | "passportId">, Omit<ApplicationPassport.Filter, "passport" | "passportId">>>;
|
||||
};
|
||||
export type CreateSingleOperation = OakOperation<"create", CreateOperationData>;
|
||||
export type CreateMultipleOperation = OakOperation<"create", Array<CreateOperationData>>;
|
||||
export type CreateOperation = CreateSingleOperation | CreateMultipleOperation;
|
||||
export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "systemId">> & (({
|
||||
system?: System.CreateSingleOperation;
|
||||
systemId?: never;
|
||||
} | {
|
||||
system?: System.UpdateOperation;
|
||||
systemId?: never;
|
||||
} | {
|
||||
system?: System.RemoveOperation;
|
||||
systemId?: never;
|
||||
} | {
|
||||
system?: never;
|
||||
systemId?: ForeignKey<"system">;
|
||||
})) & {
|
||||
[k: string]: any;
|
||||
applicationPassport$passport?: OakOperation<ApplicationPassport.UpdateOperation["action"], Omit<ApplicationPassport.UpdateOperationData, "passport" | "passportId">, Omit<ApplicationPassport.Filter, "passport" | "passportId">> | OakOperation<ApplicationPassport.RemoveOperation["action"], Omit<ApplicationPassport.RemoveOperationData, "passport" | "passportId">, Omit<ApplicationPassport.Filter, "passport" | "passportId">> | OakOperation<"create", Omit<ApplicationPassport.CreateOperationData, "passport" | "passportId">[]> | Array<OakOperation<"create", Omit<ApplicationPassport.CreateOperationData, "passport" | "passportId">> | OakOperation<ApplicationPassport.UpdateOperation["action"], Omit<ApplicationPassport.UpdateOperationData, "passport" | "passportId">, Omit<ApplicationPassport.Filter, "passport" | "passportId">> | OakOperation<ApplicationPassport.RemoveOperation["action"], Omit<ApplicationPassport.RemoveOperationData, "passport" | "passportId">, Omit<ApplicationPassport.Filter, "passport" | "passportId">>>;
|
||||
};
|
||||
export type UpdateOperation = OakOperation<"update" | string, UpdateOperationData, Filter, Sorter>;
|
||||
export type RemoveOperationData = {} & (({
|
||||
system?: System.UpdateOperation | System.RemoveOperation;
|
||||
}));
|
||||
export type RemoveOperation = OakOperation<"remove", RemoveOperationData, Filter, Sorter>;
|
||||
export type Operation = CreateOperation | UpdateOperation | RemoveOperation;
|
||||
export type SystemIdSubQuery = Selection<SystemIdProjection>;
|
||||
export type PassportIdSubQuery = Selection<PassportIdProjection>;
|
||||
export type EntityDef = {
|
||||
Schema: Schema;
|
||||
OpSchema: OpSchema;
|
||||
Action: OakMakeAction<GenericAction> | string;
|
||||
Selection: Selection;
|
||||
Aggregation: Aggregation;
|
||||
Operation: Operation;
|
||||
Create: CreateOperation;
|
||||
Update: UpdateOperation;
|
||||
Remove: RemoveOperation;
|
||||
CreateSingle: CreateSingleOperation;
|
||||
CreateMulti: CreateMultipleOperation;
|
||||
};
|
||||
export {};
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
import { StorageDesc } from "oak-domain/lib/types/Storage";
|
||||
import { OpSchema } from "./Schema";
|
||||
export declare const desc: StorageDesc<OpSchema>;
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.desc = void 0;
|
||||
const action_1 = require("oak-domain/lib/actions/action");
|
||||
exports.desc = {
|
||||
attributes: {
|
||||
systemId: {
|
||||
notNull: true,
|
||||
type: "ref",
|
||||
ref: "system"
|
||||
},
|
||||
type: {
|
||||
notNull: true,
|
||||
type: "enum",
|
||||
enumeration: ["password", "sms", "email", "wechatWeb", "wechatMp", "wechatPublic", "wechatPublicForWeb", "wechatMpForWeb"]
|
||||
},
|
||||
config: {
|
||||
type: "object"
|
||||
},
|
||||
enabled: {
|
||||
notNull: true,
|
||||
type: "boolean"
|
||||
}
|
||||
},
|
||||
actionType: "crud",
|
||||
actions: action_1.genericActions
|
||||
};
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
import { EntityDef } from "./Schema";
|
||||
import { StyleDef } from "oak-domain/lib/types/Style";
|
||||
export declare const style: StyleDef<EntityDef["OpSchema"], EntityDef["Action"]>;
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.style = void 0;
|
||||
exports.style = {
|
||||
color: {
|
||||
type: {
|
||||
password: '#00BFFF',
|
||||
sms: '#F0F8FF',
|
||||
email: '#FFA07A',
|
||||
wechatWeb: '#90EE90',
|
||||
wechatPublic: '#32CD32',
|
||||
wechatMp: '#3CB371',
|
||||
wechatMpForWeb: '#006400',
|
||||
wechatPublicForWeb: '#008000',
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -0,0 +1 @@
|
|||
{ "name": "登录方式", "attr": { "system": "系统", "type": "登录方式", "config": "登录方式配置", "enabled": "是否启用" }, "v": { "type": { "email": "邮箱", "sms": "短信", "password": "密码", "wechatMp": "小程序", "wechatPublic": "公众号", "wechatWeb": "微信网站", "wechatMpForWeb": "小程序授权", "wechatPublicForWeb": "公众号授权" } } }
|
||||
|
|
@ -16,45 +16,47 @@ const Storage_12 = require("./UserEntityGrant/Storage");
|
|||
const Storage_13 = require("./UserRelation/Storage");
|
||||
const Storage_14 = require("./Address/Storage");
|
||||
const Storage_15 = require("./Application/Storage");
|
||||
const Storage_16 = require("./Area/Storage");
|
||||
const Storage_17 = require("./Article/Storage");
|
||||
const Storage_18 = require("./ArticleMenu/Storage");
|
||||
const Storage_19 = require("./Captcha/Storage");
|
||||
const Storage_20 = require("./ChangePasswordTemp/Storage");
|
||||
const Storage_21 = require("./Domain/Storage");
|
||||
const Storage_22 = require("./Email/Storage");
|
||||
const Storage_23 = require("./ExtraFile/Storage");
|
||||
const Storage_24 = require("./Livestream/Storage");
|
||||
const Storage_25 = require("./Message/Storage");
|
||||
const Storage_26 = require("./MessageSystem/Storage");
|
||||
const Storage_27 = require("./MessageType/Storage");
|
||||
const Storage_28 = require("./MessageTypeSmsTemplate/Storage");
|
||||
const Storage_29 = require("./MessageTypeTemplate/Storage");
|
||||
const Storage_30 = require("./Mobile/Storage");
|
||||
const Storage_31 = require("./Notification/Storage");
|
||||
const Storage_32 = require("./Parasite/Storage");
|
||||
const Storage_33 = require("./Platform/Storage");
|
||||
const Storage_34 = require("./ReadRemark/Storage");
|
||||
const Storage_35 = require("./Session/Storage");
|
||||
const Storage_36 = require("./SessionMessage/Storage");
|
||||
const Storage_37 = require("./SmsTemplate/Storage");
|
||||
const Storage_38 = require("./Station/Storage");
|
||||
const Storage_39 = require("./Subscription/Storage");
|
||||
const Storage_40 = require("./Subway/Storage");
|
||||
const Storage_41 = require("./SubwayStation/Storage");
|
||||
const Storage_42 = require("./System/Storage");
|
||||
const Storage_43 = require("./ToDo/Storage");
|
||||
const Storage_44 = require("./Token/Storage");
|
||||
const Storage_45 = require("./UserSystem/Storage");
|
||||
const Storage_46 = require("./UserWechatPublicTag/Storage");
|
||||
const Storage_47 = require("./WechatLogin/Storage");
|
||||
const Storage_48 = require("./WechatMenu/Storage");
|
||||
const Storage_49 = require("./WechatMpJump/Storage");
|
||||
const Storage_50 = require("./WechatPublicAutoReply/Storage");
|
||||
const Storage_51 = require("./WechatPublicTag/Storage");
|
||||
const Storage_52 = require("./WechatQrCode/Storage");
|
||||
const Storage_53 = require("./WechatTemplate/Storage");
|
||||
const Storage_54 = require("./WechatUser/Storage");
|
||||
const Storage_16 = require("./ApplicationPassport/Storage");
|
||||
const Storage_17 = require("./Area/Storage");
|
||||
const Storage_18 = require("./Article/Storage");
|
||||
const Storage_19 = require("./ArticleMenu/Storage");
|
||||
const Storage_20 = require("./Captcha/Storage");
|
||||
const Storage_21 = require("./ChangePasswordTemp/Storage");
|
||||
const Storage_22 = require("./Domain/Storage");
|
||||
const Storage_23 = require("./Email/Storage");
|
||||
const Storage_24 = require("./ExtraFile/Storage");
|
||||
const Storage_25 = require("./Livestream/Storage");
|
||||
const Storage_26 = require("./Message/Storage");
|
||||
const Storage_27 = require("./MessageSystem/Storage");
|
||||
const Storage_28 = require("./MessageType/Storage");
|
||||
const Storage_29 = require("./MessageTypeSmsTemplate/Storage");
|
||||
const Storage_30 = require("./MessageTypeTemplate/Storage");
|
||||
const Storage_31 = require("./Mobile/Storage");
|
||||
const Storage_32 = require("./Notification/Storage");
|
||||
const Storage_33 = require("./Parasite/Storage");
|
||||
const Storage_34 = require("./Passport/Storage");
|
||||
const Storage_35 = require("./Platform/Storage");
|
||||
const Storage_36 = require("./ReadRemark/Storage");
|
||||
const Storage_37 = require("./Session/Storage");
|
||||
const Storage_38 = require("./SessionMessage/Storage");
|
||||
const Storage_39 = require("./SmsTemplate/Storage");
|
||||
const Storage_40 = require("./Station/Storage");
|
||||
const Storage_41 = require("./Subscription/Storage");
|
||||
const Storage_42 = require("./Subway/Storage");
|
||||
const Storage_43 = require("./SubwayStation/Storage");
|
||||
const Storage_44 = require("./System/Storage");
|
||||
const Storage_45 = require("./ToDo/Storage");
|
||||
const Storage_46 = require("./Token/Storage");
|
||||
const Storage_47 = require("./UserSystem/Storage");
|
||||
const Storage_48 = require("./UserWechatPublicTag/Storage");
|
||||
const Storage_49 = require("./WechatLogin/Storage");
|
||||
const Storage_50 = require("./WechatMenu/Storage");
|
||||
const Storage_51 = require("./WechatMpJump/Storage");
|
||||
const Storage_52 = require("./WechatPublicAutoReply/Storage");
|
||||
const Storage_53 = require("./WechatPublicTag/Storage");
|
||||
const Storage_54 = require("./WechatQrCode/Storage");
|
||||
const Storage_55 = require("./WechatTemplate/Storage");
|
||||
const Storage_56 = require("./WechatUser/Storage");
|
||||
exports.storageSchema = {
|
||||
actionAuth: Storage_1.desc,
|
||||
i18n: Storage_2.desc,
|
||||
|
|
@ -71,43 +73,45 @@ exports.storageSchema = {
|
|||
userRelation: Storage_13.desc,
|
||||
address: Storage_14.desc,
|
||||
application: Storage_15.desc,
|
||||
area: Storage_16.desc,
|
||||
article: Storage_17.desc,
|
||||
articleMenu: Storage_18.desc,
|
||||
captcha: Storage_19.desc,
|
||||
changePasswordTemp: Storage_20.desc,
|
||||
domain: Storage_21.desc,
|
||||
email: Storage_22.desc,
|
||||
extraFile: Storage_23.desc,
|
||||
livestream: Storage_24.desc,
|
||||
message: Storage_25.desc,
|
||||
messageSystem: Storage_26.desc,
|
||||
messageType: Storage_27.desc,
|
||||
messageTypeSmsTemplate: Storage_28.desc,
|
||||
messageTypeTemplate: Storage_29.desc,
|
||||
mobile: Storage_30.desc,
|
||||
notification: Storage_31.desc,
|
||||
parasite: Storage_32.desc,
|
||||
platform: Storage_33.desc,
|
||||
readRemark: Storage_34.desc,
|
||||
session: Storage_35.desc,
|
||||
sessionMessage: Storage_36.desc,
|
||||
smsTemplate: Storage_37.desc,
|
||||
station: Storage_38.desc,
|
||||
subscription: Storage_39.desc,
|
||||
subway: Storage_40.desc,
|
||||
subwayStation: Storage_41.desc,
|
||||
system: Storage_42.desc,
|
||||
toDo: Storage_43.desc,
|
||||
token: Storage_44.desc,
|
||||
userSystem: Storage_45.desc,
|
||||
userWechatPublicTag: Storage_46.desc,
|
||||
wechatLogin: Storage_47.desc,
|
||||
wechatMenu: Storage_48.desc,
|
||||
wechatMpJump: Storage_49.desc,
|
||||
wechatPublicAutoReply: Storage_50.desc,
|
||||
wechatPublicTag: Storage_51.desc,
|
||||
wechatQrCode: Storage_52.desc,
|
||||
wechatTemplate: Storage_53.desc,
|
||||
wechatUser: Storage_54.desc
|
||||
applicationPassport: Storage_16.desc,
|
||||
area: Storage_17.desc,
|
||||
article: Storage_18.desc,
|
||||
articleMenu: Storage_19.desc,
|
||||
captcha: Storage_20.desc,
|
||||
changePasswordTemp: Storage_21.desc,
|
||||
domain: Storage_22.desc,
|
||||
email: Storage_23.desc,
|
||||
extraFile: Storage_24.desc,
|
||||
livestream: Storage_25.desc,
|
||||
message: Storage_26.desc,
|
||||
messageSystem: Storage_27.desc,
|
||||
messageType: Storage_28.desc,
|
||||
messageTypeSmsTemplate: Storage_29.desc,
|
||||
messageTypeTemplate: Storage_30.desc,
|
||||
mobile: Storage_31.desc,
|
||||
notification: Storage_32.desc,
|
||||
parasite: Storage_33.desc,
|
||||
passport: Storage_34.desc,
|
||||
platform: Storage_35.desc,
|
||||
readRemark: Storage_36.desc,
|
||||
session: Storage_37.desc,
|
||||
sessionMessage: Storage_38.desc,
|
||||
smsTemplate: Storage_39.desc,
|
||||
station: Storage_40.desc,
|
||||
subscription: Storage_41.desc,
|
||||
subway: Storage_42.desc,
|
||||
subwayStation: Storage_43.desc,
|
||||
system: Storage_44.desc,
|
||||
toDo: Storage_45.desc,
|
||||
token: Storage_46.desc,
|
||||
userSystem: Storage_47.desc,
|
||||
userWechatPublicTag: Storage_48.desc,
|
||||
wechatLogin: Storage_49.desc,
|
||||
wechatMenu: Storage_50.desc,
|
||||
wechatMpJump: Storage_51.desc,
|
||||
wechatPublicAutoReply: Storage_52.desc,
|
||||
wechatPublicTag: Storage_53.desc,
|
||||
wechatQrCode: Storage_54.desc,
|
||||
wechatTemplate: Storage_55.desc,
|
||||
wechatUser: Storage_56.desc
|
||||
};
|
||||
|
|
|
|||
|
|
@ -14,17 +14,18 @@ const Style_10 = require("./Message/Style");
|
|||
const Style_11 = require("./Mobile/Style");
|
||||
const Style_12 = require("./Notification/Style");
|
||||
const Style_13 = require("./Parasite/Style");
|
||||
const Style_14 = require("./SmsTemplate/Style");
|
||||
const Style_15 = require("./ToDo/Style");
|
||||
const Style_16 = require("./Token/Style");
|
||||
const Style_17 = require("./User/Style");
|
||||
const Style_18 = require("./UserEntityGrant/Style");
|
||||
const Style_19 = require("./UserWechatPublicTag/Style");
|
||||
const Style_20 = require("./WechatLogin/Style");
|
||||
const Style_21 = require("./WechatMenu/Style");
|
||||
const Style_22 = require("./WechatPublicTag/Style");
|
||||
const Style_23 = require("./WechatQrCode/Style");
|
||||
const Style_24 = require("./WechatUser/Style");
|
||||
const Style_14 = require("./Passport/Style");
|
||||
const Style_15 = require("./SmsTemplate/Style");
|
||||
const Style_16 = require("./ToDo/Style");
|
||||
const Style_17 = require("./Token/Style");
|
||||
const Style_18 = require("./User/Style");
|
||||
const Style_19 = require("./UserEntityGrant/Style");
|
||||
const Style_20 = require("./UserWechatPublicTag/Style");
|
||||
const Style_21 = require("./WechatLogin/Style");
|
||||
const Style_22 = require("./WechatMenu/Style");
|
||||
const Style_23 = require("./WechatPublicTag/Style");
|
||||
const Style_24 = require("./WechatQrCode/Style");
|
||||
const Style_25 = require("./WechatUser/Style");
|
||||
exports.styleDict = {
|
||||
modi: Style_1.style,
|
||||
application: Style_2.style,
|
||||
|
|
@ -39,15 +40,16 @@ exports.styleDict = {
|
|||
mobile: Style_11.style,
|
||||
notification: Style_12.style,
|
||||
parasite: Style_13.style,
|
||||
smsTemplate: Style_14.style,
|
||||
toDo: Style_15.style,
|
||||
token: Style_16.style,
|
||||
user: Style_17.style,
|
||||
userEntityGrant: Style_18.style,
|
||||
userWechatPublicTag: Style_19.style,
|
||||
wechatLogin: Style_20.style,
|
||||
wechatMenu: Style_21.style,
|
||||
wechatPublicTag: Style_22.style,
|
||||
wechatQrCode: Style_23.style,
|
||||
wechatUser: Style_24.style
|
||||
passport: Style_14.style,
|
||||
smsTemplate: Style_15.style,
|
||||
toDo: Style_16.style,
|
||||
token: Style_17.style,
|
||||
user: Style_18.style,
|
||||
userEntityGrant: Style_19.style,
|
||||
userWechatPublicTag: Style_20.style,
|
||||
wechatLogin: Style_21.style,
|
||||
wechatMenu: Style_22.style,
|
||||
wechatPublicTag: Style_23.style,
|
||||
wechatQrCode: Style_24.style,
|
||||
wechatUser: Style_25.style
|
||||
};
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import * as Platform from "../Platform/Schema";
|
|||
import * as Application from "../Application/Schema";
|
||||
import * as Domain from "../Domain/Schema";
|
||||
import * as MessageSystem from "../MessageSystem/Schema";
|
||||
import * as Passport from "../Passport/Schema";
|
||||
import * as SmsTemplate from "../SmsTemplate/Schema";
|
||||
import * as UserSystem from "../UserSystem/Schema";
|
||||
export type OpSchema = EntityShape & {
|
||||
|
|
@ -41,6 +42,8 @@ export type Schema = EntityShape & {
|
|||
domain$system$$aggr?: AggregationResult<Domain.Schema>;
|
||||
messageSystem$system?: Array<MessageSystem.Schema>;
|
||||
messageSystem$system$$aggr?: AggregationResult<MessageSystem.Schema>;
|
||||
passport$system?: Array<Passport.Schema>;
|
||||
passport$system$$aggr?: AggregationResult<Passport.Schema>;
|
||||
smsTemplate$system?: Array<SmsTemplate.Schema>;
|
||||
smsTemplate$system$$aggr?: AggregationResult<SmsTemplate.Schema>;
|
||||
userSystem$system?: Array<UserSystem.Schema>;
|
||||
|
|
@ -66,6 +69,7 @@ type AttrFilter = {
|
|||
application$system: Application.Filter & SubQueryPredicateMetadata;
|
||||
domain$system: Domain.Filter & SubQueryPredicateMetadata;
|
||||
messageSystem$system: MessageSystem.Filter & SubQueryPredicateMetadata;
|
||||
passport$system: Passport.Filter & SubQueryPredicateMetadata;
|
||||
smsTemplate$system: SmsTemplate.Filter & SubQueryPredicateMetadata;
|
||||
userSystem$system: UserSystem.Filter & SubQueryPredicateMetadata;
|
||||
};
|
||||
|
|
@ -105,6 +109,12 @@ export type Projection = {
|
|||
messageSystem$system$$aggr?: MessageSystem.Aggregation & {
|
||||
$entity: "messageSystem";
|
||||
};
|
||||
passport$system?: Passport.Selection & {
|
||||
$entity: "passport";
|
||||
};
|
||||
passport$system$$aggr?: Passport.Aggregation & {
|
||||
$entity: "passport";
|
||||
};
|
||||
smsTemplate$system?: SmsTemplate.Selection & {
|
||||
$entity: "smsTemplate";
|
||||
};
|
||||
|
|
@ -180,6 +190,7 @@ export type CreateOperationData = FormCreateData<Omit<OpSchema, "entity" | "enti
|
|||
application$system?: OakOperation<Application.UpdateOperation["action"], Omit<Application.UpdateOperationData, "system" | "systemId">, Omit<Application.Filter, "system" | "systemId">> | OakOperation<"create", Omit<Application.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<Application.CreateOperationData, "system" | "systemId">> | OakOperation<Application.UpdateOperation["action"], Omit<Application.UpdateOperationData, "system" | "systemId">, Omit<Application.Filter, "system" | "systemId">>>;
|
||||
domain$system?: OakOperation<Domain.UpdateOperation["action"], Omit<Domain.UpdateOperationData, "system" | "systemId">, Omit<Domain.Filter, "system" | "systemId">> | OakOperation<"create", Omit<Domain.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<Domain.CreateOperationData, "system" | "systemId">> | OakOperation<Domain.UpdateOperation["action"], Omit<Domain.UpdateOperationData, "system" | "systemId">, Omit<Domain.Filter, "system" | "systemId">>>;
|
||||
messageSystem$system?: OakOperation<MessageSystem.UpdateOperation["action"], Omit<MessageSystem.UpdateOperationData, "system" | "systemId">, Omit<MessageSystem.Filter, "system" | "systemId">> | OakOperation<"create", Omit<MessageSystem.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<MessageSystem.CreateOperationData, "system" | "systemId">> | OakOperation<MessageSystem.UpdateOperation["action"], Omit<MessageSystem.UpdateOperationData, "system" | "systemId">, Omit<MessageSystem.Filter, "system" | "systemId">>>;
|
||||
passport$system?: OakOperation<Passport.UpdateOperation["action"], Omit<Passport.UpdateOperationData, "system" | "systemId">, Omit<Passport.Filter, "system" | "systemId">> | OakOperation<"create", Omit<Passport.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<Passport.CreateOperationData, "system" | "systemId">> | OakOperation<Passport.UpdateOperation["action"], Omit<Passport.UpdateOperationData, "system" | "systemId">, Omit<Passport.Filter, "system" | "systemId">>>;
|
||||
smsTemplate$system?: OakOperation<SmsTemplate.UpdateOperation["action"], Omit<SmsTemplate.UpdateOperationData, "system" | "systemId">, Omit<SmsTemplate.Filter, "system" | "systemId">> | OakOperation<"create", Omit<SmsTemplate.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<SmsTemplate.CreateOperationData, "system" | "systemId">> | OakOperation<SmsTemplate.UpdateOperation["action"], Omit<SmsTemplate.UpdateOperationData, "system" | "systemId">, Omit<SmsTemplate.Filter, "system" | "systemId">>>;
|
||||
userSystem$system?: OakOperation<UserSystem.UpdateOperation["action"], Omit<UserSystem.UpdateOperationData, "system" | "systemId">, Omit<UserSystem.Filter, "system" | "systemId">> | OakOperation<"create", Omit<UserSystem.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<UserSystem.CreateOperationData, "system" | "systemId">> | OakOperation<UserSystem.UpdateOperation["action"], Omit<UserSystem.UpdateOperationData, "system" | "systemId">, Omit<UserSystem.Filter, "system" | "systemId">>>;
|
||||
};
|
||||
|
|
@ -203,6 +214,7 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "platformId">> &
|
|||
application$system?: OakOperation<Application.UpdateOperation["action"], Omit<Application.UpdateOperationData, "system" | "systemId">, Omit<Application.Filter, "system" | "systemId">> | OakOperation<Application.RemoveOperation["action"], Omit<Application.RemoveOperationData, "system" | "systemId">, Omit<Application.Filter, "system" | "systemId">> | OakOperation<"create", Omit<Application.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<Application.CreateOperationData, "system" | "systemId">> | OakOperation<Application.UpdateOperation["action"], Omit<Application.UpdateOperationData, "system" | "systemId">, Omit<Application.Filter, "system" | "systemId">> | OakOperation<Application.RemoveOperation["action"], Omit<Application.RemoveOperationData, "system" | "systemId">, Omit<Application.Filter, "system" | "systemId">>>;
|
||||
domain$system?: OakOperation<Domain.UpdateOperation["action"], Omit<Domain.UpdateOperationData, "system" | "systemId">, Omit<Domain.Filter, "system" | "systemId">> | OakOperation<Domain.RemoveOperation["action"], Omit<Domain.RemoveOperationData, "system" | "systemId">, Omit<Domain.Filter, "system" | "systemId">> | OakOperation<"create", Omit<Domain.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<Domain.CreateOperationData, "system" | "systemId">> | OakOperation<Domain.UpdateOperation["action"], Omit<Domain.UpdateOperationData, "system" | "systemId">, Omit<Domain.Filter, "system" | "systemId">> | OakOperation<Domain.RemoveOperation["action"], Omit<Domain.RemoveOperationData, "system" | "systemId">, Omit<Domain.Filter, "system" | "systemId">>>;
|
||||
messageSystem$system?: OakOperation<MessageSystem.UpdateOperation["action"], Omit<MessageSystem.UpdateOperationData, "system" | "systemId">, Omit<MessageSystem.Filter, "system" | "systemId">> | OakOperation<MessageSystem.RemoveOperation["action"], Omit<MessageSystem.RemoveOperationData, "system" | "systemId">, Omit<MessageSystem.Filter, "system" | "systemId">> | OakOperation<"create", Omit<MessageSystem.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<MessageSystem.CreateOperationData, "system" | "systemId">> | OakOperation<MessageSystem.UpdateOperation["action"], Omit<MessageSystem.UpdateOperationData, "system" | "systemId">, Omit<MessageSystem.Filter, "system" | "systemId">> | OakOperation<MessageSystem.RemoveOperation["action"], Omit<MessageSystem.RemoveOperationData, "system" | "systemId">, Omit<MessageSystem.Filter, "system" | "systemId">>>;
|
||||
passport$system?: OakOperation<Passport.UpdateOperation["action"], Omit<Passport.UpdateOperationData, "system" | "systemId">, Omit<Passport.Filter, "system" | "systemId">> | OakOperation<Passport.RemoveOperation["action"], Omit<Passport.RemoveOperationData, "system" | "systemId">, Omit<Passport.Filter, "system" | "systemId">> | OakOperation<"create", Omit<Passport.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<Passport.CreateOperationData, "system" | "systemId">> | OakOperation<Passport.UpdateOperation["action"], Omit<Passport.UpdateOperationData, "system" | "systemId">, Omit<Passport.Filter, "system" | "systemId">> | OakOperation<Passport.RemoveOperation["action"], Omit<Passport.RemoveOperationData, "system" | "systemId">, Omit<Passport.Filter, "system" | "systemId">>>;
|
||||
smsTemplate$system?: OakOperation<SmsTemplate.UpdateOperation["action"], Omit<SmsTemplate.UpdateOperationData, "system" | "systemId">, Omit<SmsTemplate.Filter, "system" | "systemId">> | OakOperation<SmsTemplate.RemoveOperation["action"], Omit<SmsTemplate.RemoveOperationData, "system" | "systemId">, Omit<SmsTemplate.Filter, "system" | "systemId">> | OakOperation<"create", Omit<SmsTemplate.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<SmsTemplate.CreateOperationData, "system" | "systemId">> | OakOperation<SmsTemplate.UpdateOperation["action"], Omit<SmsTemplate.UpdateOperationData, "system" | "systemId">, Omit<SmsTemplate.Filter, "system" | "systemId">> | OakOperation<SmsTemplate.RemoveOperation["action"], Omit<SmsTemplate.RemoveOperationData, "system" | "systemId">, Omit<SmsTemplate.Filter, "system" | "systemId">>>;
|
||||
userSystem$system?: OakOperation<UserSystem.UpdateOperation["action"], Omit<UserSystem.UpdateOperationData, "system" | "systemId">, Omit<UserSystem.Filter, "system" | "systemId">> | OakOperation<UserSystem.RemoveOperation["action"], Omit<UserSystem.RemoveOperationData, "system" | "systemId">, Omit<UserSystem.Filter, "system" | "systemId">> | OakOperation<"create", Omit<UserSystem.CreateOperationData, "system" | "systemId">[]> | Array<OakOperation<"create", Omit<UserSystem.CreateOperationData, "system" | "systemId">> | OakOperation<UserSystem.UpdateOperation["action"], Omit<UserSystem.UpdateOperationData, "system" | "systemId">, Omit<UserSystem.Filter, "system" | "systemId">> | OakOperation<UserSystem.RemoveOperation["action"], Omit<UserSystem.RemoveOperationData, "system" | "systemId">, Omit<UserSystem.Filter, "system" | "systemId">>>;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import * as UserEntityGrant from "./UserEntityGrant/Schema";
|
|||
import * as UserRelation from "./UserRelation/Schema";
|
||||
import * as Address from "./Address/Schema";
|
||||
import * as Application from "./Application/Schema";
|
||||
import * as ApplicationPassport from "./ApplicationPassport/Schema";
|
||||
import * as Area from "./Area/Schema";
|
||||
import * as Article from "./Article/Schema";
|
||||
import * as ArticleMenu from "./ArticleMenu/Schema";
|
||||
|
|
@ -30,6 +31,7 @@ import * as MessageTypeTemplate from "./MessageTypeTemplate/Schema";
|
|||
import * as Mobile from "./Mobile/Schema";
|
||||
import * as Notification from "./Notification/Schema";
|
||||
import * as Parasite from "./Parasite/Schema";
|
||||
import * as Passport from "./Passport/Schema";
|
||||
import * as Platform from "./Platform/Schema";
|
||||
import * as ReadRemark from "./ReadRemark/Schema";
|
||||
import * as Session from "./Session/Schema";
|
||||
|
|
@ -193,7 +195,9 @@ export type AddressIdSubQuery = {
|
|||
}) | any;
|
||||
};
|
||||
export type ApplicationIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (ExtraFile.ApplicationIdSubQuery & {
|
||||
[K in "$in" | "$nin"]?: (ApplicationPassport.ApplicationIdSubQuery & {
|
||||
entity: "applicationPassport";
|
||||
}) | (ExtraFile.ApplicationIdSubQuery & {
|
||||
entity: "extraFile";
|
||||
}) | (Notification.ApplicationIdSubQuery & {
|
||||
entity: "notification";
|
||||
|
|
@ -219,6 +223,11 @@ export type ApplicationIdSubQuery = {
|
|||
entity: "application";
|
||||
}) | any;
|
||||
};
|
||||
export type ApplicationPassportIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (ApplicationPassport.ApplicationPassportIdSubQuery & {
|
||||
entity: "applicationPassport";
|
||||
}) | any;
|
||||
};
|
||||
export type AreaIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (Address.AreaIdSubQuery & {
|
||||
entity: "address";
|
||||
|
|
@ -334,6 +343,13 @@ export type ParasiteIdSubQuery = {
|
|||
entity: "parasite";
|
||||
}) | any;
|
||||
};
|
||||
export type PassportIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (ApplicationPassport.PassportIdSubQuery & {
|
||||
entity: "applicationPassport";
|
||||
}) | (Passport.PassportIdSubQuery & {
|
||||
entity: "passport";
|
||||
}) | any;
|
||||
};
|
||||
export type PlatformIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (Message.PlatformIdSubQuery & {
|
||||
entity: "message";
|
||||
|
|
@ -406,6 +422,8 @@ export type SystemIdSubQuery = {
|
|||
entity: "domain";
|
||||
}) | (MessageSystem.SystemIdSubQuery & {
|
||||
entity: "messageSystem";
|
||||
}) | (Passport.SystemIdSubQuery & {
|
||||
entity: "passport";
|
||||
}) | (SmsTemplate.SystemIdSubQuery & {
|
||||
entity: "smsTemplate";
|
||||
}) | (UserSystem.SystemIdSubQuery & {
|
||||
|
|
|
|||
|
|
@ -68,5 +68,23 @@ const triggers = [
|
|||
return 1;
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '删除application前,将关联的passport删除',
|
||||
entity: 'application',
|
||||
action: 'remove',
|
||||
when: 'before',
|
||||
fn: async ({ operation }, context, option) => {
|
||||
const { filter } = operation;
|
||||
await context.operate('applicationPassport', {
|
||||
id: await (0, uuid_1.generateNewIdAsync)(),
|
||||
action: 'remove',
|
||||
data: {},
|
||||
filter: {
|
||||
application: filter,
|
||||
},
|
||||
}, option);
|
||||
return 1;
|
||||
}
|
||||
},
|
||||
];
|
||||
exports.default = triggers;
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
declare const _default: (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, "application", 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, "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, "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, "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>>)[];
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ const sessionMessage_1 = tslib_1.__importDefault(require("./sessionMessage"));
|
|||
const wechatMenu_1 = tslib_1.__importDefault(require("./wechatMenu"));
|
||||
const wechatPublicTag_1 = tslib_1.__importDefault(require("./wechatPublicTag"));
|
||||
const wechatMpJump_1 = tslib_1.__importDefault(require("./wechatMpJump"));
|
||||
const system_1 = tslib_1.__importDefault(require("./system"));
|
||||
// import accountTriggers from './account';
|
||||
exports.default = [
|
||||
// ...accountTriggers,
|
||||
|
|
@ -36,4 +37,5 @@ exports.default = [
|
|||
...wechatMenu_1.default,
|
||||
...wechatPublicTag_1.default,
|
||||
...wechatMpJump_1.default,
|
||||
...system_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, 'system', BRC<EntityDict>>[];
|
||||
export default triggers;
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const uuid_1 = require("oak-domain/lib/utils/uuid");
|
||||
const Storage_1 = require("../oak-app-domain/Passport/Storage");
|
||||
const assert_1 = require("oak-domain/lib/utils/assert");
|
||||
const { attributes: { type: passportType } } = Storage_1.desc;
|
||||
const triggers = [
|
||||
{
|
||||
name: '添加system时,添加相应的passport',
|
||||
entity: 'system',
|
||||
action: 'create',
|
||||
when: 'before',
|
||||
fn: async ({ operation }) => {
|
||||
const { data } = operation;
|
||||
(0, assert_1.assert)(!(data instanceof Array));
|
||||
data.passport$system = await Promise.all(passportType.enumeration.map(async (type) => ({
|
||||
id: await (0, uuid_1.generateNewIdAsync)(),
|
||||
action: 'create',
|
||||
data: {
|
||||
id: await (0, uuid_1.generateNewIdAsync)(),
|
||||
type,
|
||||
enabled: false,
|
||||
}
|
||||
})));
|
||||
return 1;
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '当system删除前,删除相关的passports',
|
||||
entity: 'system',
|
||||
action: 'remove',
|
||||
when: 'before',
|
||||
fn: async ({ operation }, context, option) => {
|
||||
const { filter } = operation;
|
||||
await context.operate('passport', {
|
||||
id: await (0, uuid_1.generateNewIdAsync)(),
|
||||
action: 'remove',
|
||||
data: {},
|
||||
filter: {
|
||||
system: filter,
|
||||
},
|
||||
}, option);
|
||||
return 1;
|
||||
},
|
||||
},
|
||||
];
|
||||
exports.default = triggers;
|
||||
|
|
@ -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中调用
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
import { String, Int, Datetime, Image, Boolean, Text } from 'oak-domain/lib/types/DataType';
|
||||
import { EntityShape } from 'oak-domain/lib/types/Entity';
|
||||
import { EntityDesc } from 'oak-domain/lib/types/EntityDesc';
|
||||
import { Schema as Application } from './Application';
|
||||
import { Schema as Passport } from './Passport';
|
||||
|
||||
export interface Schema extends EntityShape {
|
||||
application: Application;
|
||||
passport: Passport;
|
||||
isDefault: Boolean;
|
||||
};
|
||||
|
||||
|
||||
export const entityDesc: EntityDesc<Schema> = {
|
||||
locales: {
|
||||
zh_CN: {
|
||||
name: '应用登录方式',
|
||||
attr: {
|
||||
application: '应用',
|
||||
passport: '登录方式',
|
||||
isDefault: '是否默认',
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
|
@ -0,0 +1,88 @@
|
|||
import {
|
||||
String,
|
||||
Int,
|
||||
Datetime,
|
||||
Image,
|
||||
Boolean,
|
||||
Text,
|
||||
} from 'oak-domain/lib/types/DataType';
|
||||
import { EntityShape } from 'oak-domain/lib/types/Entity';
|
||||
import { Schema as System } from './System';
|
||||
import { EntityDesc } from 'oak-domain/lib/types/EntityDesc';
|
||||
|
||||
type Type = 'password' | 'sms' | 'email' | 'wechatWeb' | 'wechatMp' | 'wechatPublic' | 'wechatPublicForWeb' | 'wechatMpForWeb';
|
||||
type SmsConfig = {
|
||||
mockSend?: boolean;
|
||||
templateName?: string; //验证码模版名
|
||||
codeDuration?: number; //验证码有效时间 单位分钟, 不填1分钟
|
||||
};
|
||||
|
||||
type EmailConifg = {
|
||||
smtpUrl: string;
|
||||
smtpAccount: string;
|
||||
smtpPassword: string;
|
||||
};
|
||||
|
||||
type PfwConfig = {
|
||||
appId: string;
|
||||
};
|
||||
|
||||
type MfwConfig = {
|
||||
appId: string;
|
||||
};
|
||||
|
||||
export interface Schema extends EntityShape {
|
||||
system: System;
|
||||
type: Type;
|
||||
config?: SmsConfig | EmailConifg | PfwConfig | MfwConfig;
|
||||
enabled: Boolean;
|
||||
};
|
||||
|
||||
|
||||
export const entityDesc: EntityDesc<
|
||||
Schema,
|
||||
'',
|
||||
'',
|
||||
{
|
||||
type: Schema['type'];
|
||||
}
|
||||
> = {
|
||||
locales: {
|
||||
zh_CN: {
|
||||
name: '登录方式',
|
||||
attr: {
|
||||
system: '系统',
|
||||
type: '登录方式',
|
||||
config: '登录方式配置',
|
||||
enabled: '是否启用',
|
||||
},
|
||||
v: {
|
||||
type: {
|
||||
email: '邮箱',
|
||||
sms: '短信',
|
||||
password: '密码',
|
||||
wechatMp: '小程序',
|
||||
wechatPublic: '公众号',
|
||||
wechatWeb: '微信网站',
|
||||
wechatMpForWeb: '小程序授权',
|
||||
wechatPublicForWeb: '公众号授权'
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
style: {
|
||||
color: {
|
||||
type: {
|
||||
password: '#00BFFF',
|
||||
sms: '#F0F8FF',
|
||||
email: '#FFA07A',
|
||||
wechatWeb: '#90EE90',
|
||||
wechatPublic: '#32CD32',
|
||||
wechatMp: '#3CB371',
|
||||
wechatMpForWeb: '#006400',
|
||||
wechatPublicForWeb: '#008000',
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
import { generateNewIdAsync } from 'oak-domain/lib/utils/uuid';
|
||||
import { Trigger } from 'oak-domain/lib/types/Trigger';
|
||||
import { Trigger, RemoveTrigger } from 'oak-domain/lib/types/Trigger';
|
||||
import { EntityDict } from '../oak-app-domain/EntityDict';
|
||||
import { BRC } from '../types/RuntimeCxt';
|
||||
import {
|
||||
|
|
@ -73,6 +73,24 @@ const triggers: Trigger<EntityDict, 'application', BRC<EntityDict>>[] = [
|
|||
return 1;
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '删除application前,将关联的passport删除',
|
||||
entity: 'application',
|
||||
action: 'remove',
|
||||
when: 'before',
|
||||
fn: async ({ operation }, context, option) => {
|
||||
const { filter } = operation;
|
||||
await context.operate('applicationPassport', {
|
||||
id: await generateNewIdAsync(),
|
||||
action: 'remove',
|
||||
data: {},
|
||||
filter: {
|
||||
application: filter,
|
||||
},
|
||||
}, option);
|
||||
return 1;
|
||||
}
|
||||
} as RemoveTrigger<EntityDict, 'application', BRC<EntityDict>>,
|
||||
];
|
||||
|
||||
export default triggers;
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import sessionMessageTriggers from './sessionMessage';
|
|||
import wechatMenuTriggers from './wechatMenu';
|
||||
import wechatPublicTag from './wechatPublicTag';
|
||||
import wechatMpJump from './wechatMpJump';
|
||||
import systemTriggers from './system';
|
||||
|
||||
// import accountTriggers from './account';
|
||||
|
||||
|
|
@ -36,4 +37,5 @@ export default [
|
|||
...wechatMenuTriggers,
|
||||
...wechatPublicTag,
|
||||
...wechatMpJump,
|
||||
...systemTriggers,
|
||||
];
|
||||
|
|
|
|||
|
|
@ -0,0 +1,54 @@
|
|||
import { generateNewIdAsync } from 'oak-domain/lib/utils/uuid';
|
||||
import { CreateTrigger, Trigger, RemoveTrigger } from 'oak-domain/lib/types/Trigger';
|
||||
import { EntityDict } from '../oak-app-domain/EntityDict';
|
||||
import { desc } from '../oak-app-domain/Passport/Storage';
|
||||
import { BRC } from '../types/RuntimeCxt';
|
||||
import { assert } from 'oak-domain/lib/utils/assert';
|
||||
|
||||
const { attributes: { type: passportType } } = desc;
|
||||
const triggers: Trigger<EntityDict, 'system', BRC<EntityDict>>[] = [
|
||||
{
|
||||
name: '添加system时,添加相应的passport',
|
||||
entity: 'system',
|
||||
action: 'create',
|
||||
when: 'before',
|
||||
fn: async ({ operation }) => {
|
||||
const { data } = operation;
|
||||
assert(!(data instanceof Array));
|
||||
data.passport$system = await Promise.all(
|
||||
passportType.enumeration!.map(
|
||||
async (type) => ({
|
||||
id: await generateNewIdAsync(),
|
||||
action: 'create',
|
||||
data: {
|
||||
id: await generateNewIdAsync(),
|
||||
type,
|
||||
enabled: false,
|
||||
}
|
||||
})
|
||||
)
|
||||
);
|
||||
return 1;
|
||||
}
|
||||
} as CreateTrigger<EntityDict, 'system', BRC<EntityDict>>,
|
||||
{
|
||||
name: '当system删除前,删除相关的passports',
|
||||
entity: 'system',
|
||||
action: 'remove',
|
||||
when: 'before',
|
||||
fn: async ({ operation }, context, option) => {
|
||||
const { filter } = operation;
|
||||
await context.operate('passport', {
|
||||
id: await generateNewIdAsync(),
|
||||
action: 'remove',
|
||||
data: {},
|
||||
filter: {
|
||||
system: filter,
|
||||
},
|
||||
}, option);
|
||||
return 1;
|
||||
},
|
||||
} as RemoveTrigger<EntityDict, 'system', BRC<EntityDict>>,
|
||||
];
|
||||
|
||||
export default triggers;
|
||||
Loading…
Reference in New Issue