feat: 修改了oauth服务相关的实体定义
This commit is contained in:
parent
476b68ab1c
commit
7baa7f808c
|
|
@ -15,7 +15,8 @@ export interface Schema extends EntityShape {
|
|||
isConfidential: Boolean;
|
||||
scopes?: StringListJson;
|
||||
}
|
||||
export type Action = AbleAction;
|
||||
export type SecretAction = 'resetSecret';
|
||||
export type Action = AbleAction | SecretAction;
|
||||
export declare const AbleActionDef: ActionDef<AbleAction, AbleState>;
|
||||
export declare const entityDesc: EntityDesc<Schema, Action, '', {
|
||||
ableState: AbleState;
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ export const entityDesc = {
|
|||
action: {
|
||||
enable: '启用',
|
||||
disable: '禁用',
|
||||
resetSecret: '重置密钥',
|
||||
},
|
||||
v: {
|
||||
ableState: {
|
||||
|
|
|
|||
|
|
@ -1,13 +1,22 @@
|
|||
import { Datetime } from 'oak-domain/lib/types/DataType';
|
||||
import { Schema as User } from './User';
|
||||
import { EntityShape } from 'oak-domain/lib/types/Entity';
|
||||
import { ActionDef } from 'oak-domain/lib/types';
|
||||
import { EntityDesc } from 'oak-domain/lib/types/EntityDesc';
|
||||
import { Schema as OauthApplication } from './OauthApplication';
|
||||
import { Schema as OauthToken } from './OauthToken';
|
||||
import { Schema as OauthAuthorizationCode } from './OauthAuthorizationCode';
|
||||
export interface Schema extends EntityShape {
|
||||
user: User;
|
||||
application: OauthApplication;
|
||||
authorizedAt: Datetime;
|
||||
token: OauthToken;
|
||||
code?: OauthAuthorizationCode;
|
||||
token?: OauthToken;
|
||||
}
|
||||
export declare const entityDesc: EntityDesc<Schema, '', '', {}>;
|
||||
export type UsageState = 'granted' | 'denied' | 'revoked';
|
||||
export type UsageAction = 'revoke';
|
||||
export type Action = UsageAction;
|
||||
export declare const UsageActionDef: ActionDef<UsageAction, UsageState>;
|
||||
export declare const entityDesc: EntityDesc<Schema, Action, '', {
|
||||
usageState: UsageState;
|
||||
}>;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,9 @@
|
|||
;
|
||||
export const UsageActionDef = {
|
||||
stm: {
|
||||
revoke: ['granted', "revoked"]
|
||||
}
|
||||
};
|
||||
export const entityDesc = {
|
||||
locales: {
|
||||
zh_CN: {
|
||||
|
|
@ -9,7 +14,31 @@ export const entityDesc = {
|
|||
application: 'Oauth应用',
|
||||
authorizedAt: '首次授权时间',
|
||||
token: '关联的令牌',
|
||||
code: '授权码',
|
||||
usageState: '授权状态',
|
||||
},
|
||||
action: {
|
||||
revoke: '撤销授权',
|
||||
},
|
||||
v: {
|
||||
usageState: {
|
||||
granted: '已授权',
|
||||
denied: '未授权',
|
||||
revoked: '已撤销',
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
style: {
|
||||
icon: {
|
||||
revoke: 'fa-user-slash',
|
||||
},
|
||||
color: {
|
||||
usageState: {
|
||||
granted: '#28a745',
|
||||
denied: '#dc3545',
|
||||
revoked: '#6c757d',
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -31,6 +31,9 @@ export declare const actionDefDict: {
|
|||
oauthProvider: {
|
||||
ableState: import("oak-domain/lib/types").ActionDef<import("oak-domain/lib/actions/action").AbleAction, import("oak-domain/lib/actions/action").AbleState>;
|
||||
};
|
||||
oauthUserAuthorization: {
|
||||
usageState: import("oak-domain/lib/types").ActionDef<string, string>;
|
||||
};
|
||||
parasite: {};
|
||||
toDo: {
|
||||
iState: import("oak-domain/lib/types").ActionDef<string, string>;
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import { actionDefDict as mobile } from "./Mobile/Action";
|
|||
import { actionDefDict as notification } from "./Notification/Action";
|
||||
import { actionDefDict as oauthApplication } from "./OauthApplication/Action";
|
||||
import { actionDefDict as oauthProvider } from "./OauthProvider/Action";
|
||||
import { actionDefDict as oauthUserAuthorization } from "./OauthUserAuthorization/Action";
|
||||
import { actionDefDict as parasite } from "./Parasite/Action";
|
||||
import { actionDefDict as toDo } from "./ToDo/Action";
|
||||
import { actionDefDict as token } from "./Token/Action";
|
||||
|
|
@ -30,6 +31,7 @@ export const actionDefDict = {
|
|||
notification,
|
||||
oauthApplication,
|
||||
oauthProvider,
|
||||
oauthUserAuthorization,
|
||||
parasite,
|
||||
toDo,
|
||||
token,
|
||||
|
|
|
|||
|
|
@ -2223,7 +2223,9 @@ export type OauthAuthorizationCode = {
|
|||
application: OauthApplication["Schema"];
|
||||
user: User["Schema"];
|
||||
oauthToken$code?: Array<Omit<OauthToken["Schema"], "code">>;
|
||||
oauthUserAuthorization$code?: Array<Omit<OauthUserAuthorization["Schema"], "code">>;
|
||||
oauthToken$code$$aggr?: AggregationResult<Omit<OauthToken["Schema"], "code">>;
|
||||
oauthUserAuthorization$code$$aggr?: AggregationResult<Omit<OauthUserAuthorization["Schema"], "code">>;
|
||||
};
|
||||
Projection: BaseOauthAuthorizationCode.OpProjection & {
|
||||
application?: OauthApplication["Projection"];
|
||||
|
|
@ -2234,11 +2236,18 @@ export type OauthAuthorizationCode = {
|
|||
oauthToken$code$$aggr?: DeduceAggregation<Omit<OauthToken["Projection"], "oauthAuthorizationCode">, Omit<OauthToken["Filter"], "oauthAuthorizationCode">, OauthToken["Sorter"]> & {
|
||||
$entity: "oauthToken";
|
||||
};
|
||||
oauthUserAuthorization$code?: OakSelection<"select", Omit<OauthUserAuthorization["Projection"], "oauthAuthorizationCode">, Omit<OauthUserAuthorization["Filter"], "oauthAuthorizationCode">, OauthUserAuthorization["Sorter"]> & {
|
||||
$entity: "oauthUserAuthorization";
|
||||
};
|
||||
oauthUserAuthorization$code$$aggr?: DeduceAggregation<Omit<OauthUserAuthorization["Projection"], "oauthAuthorizationCode">, Omit<OauthUserAuthorization["Filter"], "oauthAuthorizationCode">, OauthUserAuthorization["Sorter"]> & {
|
||||
$entity: "oauthUserAuthorization";
|
||||
};
|
||||
};
|
||||
FilterUnit: BaseOauthAuthorizationCode.OpFilter & {
|
||||
application: MakeFilter<OauthApplication["FilterUnit"]>;
|
||||
user: MakeFilter<User["FilterUnit"]>;
|
||||
oauthToken$code: MakeFilter<Omit<OauthToken["FilterUnit"], "code">> & SubQueryPredicateMetadata;
|
||||
oauthUserAuthorization$code: MakeFilter<Omit<OauthUserAuthorization["FilterUnit"], "code">> & SubQueryPredicateMetadata;
|
||||
};
|
||||
Filter: MakeFilter<OauthAuthorizationCode["FilterUnit"]>;
|
||||
SortAttr: Partial<BaseOauthAuthorizationCode.OpSortAttr | {
|
||||
|
|
@ -2256,6 +2265,7 @@ export type OauthAuthorizationCode = {
|
|||
application?: OakOperation<"create", OauthApplication["CreateOperationData"]> | OakOperation<BaseOauthApplication.OpUpdateAction, OauthApplication["UpdateOperationData"], OauthApplication["Filter"]>;
|
||||
user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation<BaseUser.OpUpdateAction, User["UpdateOperationData"], User["Filter"]>;
|
||||
oauthToken$code?: (OakOperation<"create", Omit<OauthToken["CreateOperationData"], "code"> | Omit<OauthToken["CreateOperationData"], "code">[]> | OakOperation<BaseOauthToken.OpUpdateAction, Omit<OauthToken["UpdateOperationData"], "code">, OauthToken["Filter"]>)[];
|
||||
oauthUserAuthorization$code?: (OakOperation<"create", Omit<OauthUserAuthorization["CreateOperationData"], "code"> | Omit<OauthUserAuthorization["CreateOperationData"], "code">[]> | OakOperation<BaseOauthUserAuthorization.OpUpdateAction, Omit<OauthUserAuthorization["UpdateOperationData"], "code">, OauthUserAuthorization["Filter"]>)[];
|
||||
}>;
|
||||
CreateSingle: OakOperation<"create", OauthAuthorizationCode["CreateOperationData"]>;
|
||||
CreateMulti: OakOperation<"create", Array<OauthAuthorizationCode["CreateOperationData"]>>;
|
||||
|
|
@ -2264,6 +2274,7 @@ export type OauthAuthorizationCode = {
|
|||
application?: OakOperation<"create", OauthApplication["CreateOperationData"]> | OakOperation<BaseOauthApplication.OpUpdateAction, OauthApplication["UpdateOperationData"], OauthApplication["Filter"]> | OakOperation<"remove", OauthApplication["RemoveOperationData"], OauthApplication["Filter"]>;
|
||||
user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation<BaseUser.OpUpdateAction, User["UpdateOperationData"], User["Filter"]> | OakOperation<"remove", User["RemoveOperationData"], User["Filter"]>;
|
||||
oauthToken$code?: (OakOperation<"create", Omit<OauthToken["CreateOperationData"], "code"> | Omit<OauthToken["CreateOperationData"], "code">[]> | OakOperation<BaseOauthToken.OpUpdateAction, Omit<OauthToken["UpdateOperationData"], "code">, OauthToken["Filter"]> | OakOperation<"remove", OauthToken["RemoveOperationData"], OauthToken["Filter"]>)[];
|
||||
oauthUserAuthorization$code?: (OakOperation<"create", Omit<OauthUserAuthorization["CreateOperationData"], "code"> | Omit<OauthUserAuthorization["CreateOperationData"], "code">[]> | OakOperation<BaseOauthUserAuthorization.OpUpdateAction, Omit<OauthUserAuthorization["UpdateOperationData"], "code">, OauthUserAuthorization["Filter"]> | OakOperation<"remove", OauthUserAuthorization["RemoveOperationData"], OauthUserAuthorization["Filter"]>)[];
|
||||
}>;
|
||||
Update: OakOperation<BaseOauthAuthorizationCode.OpUpdateAction, OauthAuthorizationCode["UpdateOperationData"], OauthAuthorizationCode["Filter"], OauthAuthorizationCode["Sorter"]>;
|
||||
RemoveOperationData: {};
|
||||
|
|
@ -2509,22 +2520,26 @@ export type OauthUserAuthorization = {
|
|||
Schema: BaseOauthUserAuthorization.OpSchema & {
|
||||
user: User["Schema"];
|
||||
application: OauthApplication["Schema"];
|
||||
token: OauthToken["Schema"];
|
||||
code?: OauthAuthorizationCode["Schema"];
|
||||
token?: OauthToken["Schema"];
|
||||
};
|
||||
Projection: BaseOauthUserAuthorization.OpProjection & {
|
||||
user?: User["Projection"];
|
||||
application?: OauthApplication["Projection"];
|
||||
code?: OauthAuthorizationCode["Projection"];
|
||||
token?: OauthToken["Projection"];
|
||||
};
|
||||
FilterUnit: BaseOauthUserAuthorization.OpFilter & {
|
||||
user: MakeFilter<User["FilterUnit"]>;
|
||||
application: MakeFilter<OauthApplication["FilterUnit"]>;
|
||||
code: MakeFilter<OauthAuthorizationCode["FilterUnit"]>;
|
||||
token: MakeFilter<OauthToken["FilterUnit"]>;
|
||||
};
|
||||
Filter: MakeFilter<OauthUserAuthorization["FilterUnit"]>;
|
||||
SortAttr: Partial<BaseOauthUserAuthorization.OpSortAttr | {
|
||||
user: User["SortAttr"];
|
||||
application: OauthApplication["SortAttr"];
|
||||
code: OauthAuthorizationCode["SortAttr"];
|
||||
token: OauthToken["SortAttr"];
|
||||
}>;
|
||||
SortNode: {
|
||||
|
|
@ -2537,6 +2552,7 @@ export type OauthUserAuthorization = {
|
|||
CreateOperationData: FormCreateData<BaseOauthUserAuthorization.OpSchema & {
|
||||
user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation<BaseUser.OpUpdateAction, User["UpdateOperationData"], User["Filter"]>;
|
||||
application?: OakOperation<"create", OauthApplication["CreateOperationData"]> | OakOperation<BaseOauthApplication.OpUpdateAction, OauthApplication["UpdateOperationData"], OauthApplication["Filter"]>;
|
||||
code?: OakOperation<"create", OauthAuthorizationCode["CreateOperationData"]> | OakOperation<BaseOauthAuthorizationCode.OpUpdateAction, OauthAuthorizationCode["UpdateOperationData"], OauthAuthorizationCode["Filter"]>;
|
||||
token?: OakOperation<"create", OauthToken["CreateOperationData"]> | OakOperation<BaseOauthToken.OpUpdateAction, OauthToken["UpdateOperationData"], OauthToken["Filter"]>;
|
||||
}>;
|
||||
CreateSingle: OakOperation<"create", OauthUserAuthorization["CreateOperationData"]>;
|
||||
|
|
@ -2545,6 +2561,7 @@ export type OauthUserAuthorization = {
|
|||
UpdateOperationData: FormUpdateData<BaseOauthUserAuthorization.OpSchema & {
|
||||
user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation<BaseUser.OpUpdateAction, User["UpdateOperationData"], User["Filter"]> | OakOperation<"remove", User["RemoveOperationData"], User["Filter"]>;
|
||||
application?: OakOperation<"create", OauthApplication["CreateOperationData"]> | OakOperation<BaseOauthApplication.OpUpdateAction, OauthApplication["UpdateOperationData"], OauthApplication["Filter"]> | OakOperation<"remove", OauthApplication["RemoveOperationData"], OauthApplication["Filter"]>;
|
||||
code?: OakOperation<"create", OauthAuthorizationCode["CreateOperationData"]> | OakOperation<BaseOauthAuthorizationCode.OpUpdateAction, OauthAuthorizationCode["UpdateOperationData"], OauthAuthorizationCode["Filter"]> | OakOperation<"remove", OauthAuthorizationCode["RemoveOperationData"], OauthAuthorizationCode["Filter"]>;
|
||||
token?: OakOperation<"create", OauthToken["CreateOperationData"]> | OakOperation<BaseOauthToken.OpUpdateAction, OauthToken["UpdateOperationData"], OauthToken["Filter"]> | OakOperation<"remove", OauthToken["RemoveOperationData"], OauthToken["Filter"]>;
|
||||
}>;
|
||||
Update: OakOperation<BaseOauthUserAuthorization.OpUpdateAction, OauthUserAuthorization["UpdateOperationData"], OauthUserAuthorization["Filter"], OauthUserAuthorization["Sorter"]>;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
import { AbleState, AbleAction } from "oak-domain/lib/actions/action";
|
||||
import { ActionDef } from "oak-domain/lib/types/Action";
|
||||
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||
export type ParticularAction = AbleAction;
|
||||
export type SecretAction = 'resetSecret' | string;
|
||||
export type ParticularAction = AbleAction | SecretAction;
|
||||
export declare const actions: string[];
|
||||
export declare const AbleActionDef: ActionDef<AbleAction, AbleState>;
|
||||
export type Action = GenericAction | ParticularAction | string;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { makeAbleActionDef } from "oak-domain/lib/actions/action";
|
||||
export const actions = ["count", "stat", "download", "select", "aggregate", "create", "remove", "update", "enable", "disable"];
|
||||
export const actions = ["count", "stat", "download", "select", "aggregate", "create", "remove", "update", "enable", "disable", "resetSecret"];
|
||||
export const AbleActionDef = makeAbleActionDef('enabled');
|
||||
export const actionDefDict = {
|
||||
ableState: AbleActionDef
|
||||
|
|
|
|||
|
|
@ -13,7 +13,8 @@
|
|||
},
|
||||
"action": {
|
||||
"enable": "启用",
|
||||
"disable": "禁用"
|
||||
"disable": "禁用",
|
||||
"resetSecret": "重置密钥"
|
||||
},
|
||||
"v": {
|
||||
"ableState": {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
import { ActionDef } from "oak-domain/lib/types/Action";
|
||||
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||
export type UsageState = 'granted' | 'denied' | 'revoked' | string;
|
||||
export type UsageAction = 'revoke' | string;
|
||||
export type ParticularAction = UsageAction;
|
||||
export declare const actions: string[];
|
||||
export declare const UsageActionDef: ActionDef<UsageAction, UsageState>;
|
||||
export type Action = GenericAction | ParticularAction | string;
|
||||
export declare const actionDefDict: {
|
||||
usageState: ActionDef<string, string>;
|
||||
};
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
export const actions = ["count", "stat", "download", "select", "aggregate", "create", "remove", "update", "revoke"];
|
||||
export const UsageActionDef = {
|
||||
stm: {
|
||||
revoke: ['granted', "revoked"]
|
||||
}
|
||||
};
|
||||
export const actionDefDict = {
|
||||
usageState: UsageActionDef
|
||||
};
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import { genericActions as actions } from "oak-domain/lib/actions/action";
|
||||
import { actions } from "./Action";
|
||||
export const desc = {
|
||||
attributes: {
|
||||
userId: {
|
||||
|
|
@ -15,10 +15,17 @@ export const desc = {
|
|||
notNull: true,
|
||||
type: "datetime"
|
||||
},
|
||||
codeId: {
|
||||
type: "ref",
|
||||
ref: "oauthAuthorizationCode"
|
||||
},
|
||||
tokenId: {
|
||||
notNull: true,
|
||||
type: "ref",
|
||||
ref: "oauthToken"
|
||||
},
|
||||
usageState: {
|
||||
type: "enum",
|
||||
enumeration: ["granted", "denied", "revoked"]
|
||||
}
|
||||
},
|
||||
actionType: "crud",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
import { Action, OpSchema } from "./Schema";
|
||||
import { StyleDef } from "oak-domain/lib/types/Style";
|
||||
export declare const style: StyleDef<OpSchema, Action>;
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
export const style = {
|
||||
icon: {
|
||||
revoke: 'fa-user-slash',
|
||||
},
|
||||
color: {
|
||||
usageState: {
|
||||
granted: '#28a745',
|
||||
denied: '#dc3545',
|
||||
revoked: '#6c757d',
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -1,13 +1,15 @@
|
|||
import { ForeignKey } from "oak-domain/lib/types/DataType";
|
||||
import { Q_DateValue, Q_NumberValue, Q_StringValue, NodeId, ExprOp, ExpressionKey } from "oak-domain/lib/types/Demand";
|
||||
import { Q_DateValue, Q_NumberValue, Q_StringValue, Q_EnumValue, NodeId, ExprOp, ExpressionKey } from "oak-domain/lib/types/Demand";
|
||||
import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity";
|
||||
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||
import { Action, ParticularAction, UsageState } from "./Action";
|
||||
import { Datetime } from "oak-domain/lib/types/DataType";
|
||||
export type OpSchema = EntityShape & {
|
||||
userId: ForeignKey<"user">;
|
||||
applicationId: ForeignKey<"oauthApplication">;
|
||||
authorizedAt: Datetime;
|
||||
tokenId: ForeignKey<"oauthToken">;
|
||||
codeId?: ForeignKey<"oauthAuthorizationCode"> | null;
|
||||
tokenId?: ForeignKey<"oauthToken"> | null;
|
||||
usageState?: UsageState | null;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
};
|
||||
|
|
@ -20,7 +22,9 @@ export type OpFilter = {
|
|||
userId: Q_StringValue;
|
||||
applicationId: Q_StringValue;
|
||||
authorizedAt: Q_DateValue;
|
||||
codeId: Q_StringValue;
|
||||
tokenId: Q_StringValue;
|
||||
usageState: Q_EnumValue<UsageState>;
|
||||
} & ExprOp<OpAttr | string>;
|
||||
export type OpProjection = {
|
||||
"#id"?: NodeId;
|
||||
|
|
@ -32,7 +36,9 @@ export type OpProjection = {
|
|||
userId?: number;
|
||||
applicationId?: number;
|
||||
authorizedAt?: number;
|
||||
codeId?: number;
|
||||
tokenId?: number;
|
||||
usageState?: number;
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
export type OpSortAttr = Partial<{
|
||||
id: number;
|
||||
|
|
@ -42,8 +48,10 @@ export type OpSortAttr = Partial<{
|
|||
userId: number;
|
||||
applicationId: number;
|
||||
authorizedAt: number;
|
||||
codeId: number;
|
||||
tokenId: number;
|
||||
usageState: number;
|
||||
[k: string]: any;
|
||||
} | ExprOp<OpAttr | string>>;
|
||||
export type OpAction = OakMakeAction<GenericAction | string>;
|
||||
export type OpUpdateAction = "update" | string;
|
||||
export type OpAction = OakMakeAction<Action | string>;
|
||||
export type OpUpdateAction = "update" | ParticularAction | string;
|
||||
|
|
|
|||
|
|
@ -4,6 +4,18 @@
|
|||
"user": "用户",
|
||||
"application": "Oauth应用",
|
||||
"authorizedAt": "首次授权时间",
|
||||
"token": "关联的令牌"
|
||||
"token": "关联的令牌",
|
||||
"code": "授权码",
|
||||
"usageState": "授权状态"
|
||||
},
|
||||
"action": {
|
||||
"revoke": "撤销授权"
|
||||
},
|
||||
"v": {
|
||||
"usageState": {
|
||||
"granted": "已授权",
|
||||
"denied": "未授权",
|
||||
"revoked": "已撤销"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import { style as mobile } from "./Mobile/Style";
|
|||
import { style as notification } from "./Notification/Style";
|
||||
import { style as oauthApplication } from "./OauthApplication/Style";
|
||||
import { style as oauthProvider } from "./OauthProvider/Style";
|
||||
import { style as oauthUserAuthorization } from "./OauthUserAuthorization/Style";
|
||||
import { style as parasite } from "./Parasite/Style";
|
||||
import { style as passport } from "./Passport/Style";
|
||||
import { style as smsTemplate } from "./SmsTemplate/Style";
|
||||
|
|
@ -46,6 +47,7 @@ export const styleDict = {
|
|||
notification,
|
||||
oauthApplication,
|
||||
oauthProvider,
|
||||
oauthUserAuthorization,
|
||||
parasite,
|
||||
passport,
|
||||
smsTemplate,
|
||||
|
|
|
|||
|
|
@ -15,7 +15,8 @@ export interface Schema extends EntityShape {
|
|||
isConfidential: Boolean;
|
||||
scopes?: StringListJson;
|
||||
}
|
||||
export type Action = AbleAction;
|
||||
export type SecretAction = 'resetSecret';
|
||||
export type Action = AbleAction | SecretAction;
|
||||
export declare const AbleActionDef: ActionDef<AbleAction, AbleState>;
|
||||
export declare const entityDesc: EntityDesc<Schema, Action, '', {
|
||||
ableState: AbleState;
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ exports.entityDesc = {
|
|||
action: {
|
||||
enable: '启用',
|
||||
disable: '禁用',
|
||||
resetSecret: '重置密钥',
|
||||
},
|
||||
v: {
|
||||
ableState: {
|
||||
|
|
|
|||
|
|
@ -1,13 +1,22 @@
|
|||
import { Datetime } from 'oak-domain/lib/types/DataType';
|
||||
import { Schema as User } from './User';
|
||||
import { EntityShape } from 'oak-domain/lib/types/Entity';
|
||||
import { ActionDef } from 'oak-domain/lib/types';
|
||||
import { EntityDesc } from 'oak-domain/lib/types/EntityDesc';
|
||||
import { Schema as OauthApplication } from './OauthApplication';
|
||||
import { Schema as OauthToken } from './OauthToken';
|
||||
import { Schema as OauthAuthorizationCode } from './OauthAuthorizationCode';
|
||||
export interface Schema extends EntityShape {
|
||||
user: User;
|
||||
application: OauthApplication;
|
||||
authorizedAt: Datetime;
|
||||
token: OauthToken;
|
||||
code?: OauthAuthorizationCode;
|
||||
token?: OauthToken;
|
||||
}
|
||||
export declare const entityDesc: EntityDesc<Schema, '', '', {}>;
|
||||
export type UsageState = 'granted' | 'denied' | 'revoked';
|
||||
export type UsageAction = 'revoke';
|
||||
export type Action = UsageAction;
|
||||
export declare const UsageActionDef: ActionDef<UsageAction, UsageState>;
|
||||
export declare const entityDesc: EntityDesc<Schema, Action, '', {
|
||||
usageState: UsageState;
|
||||
}>;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,12 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.entityDesc = void 0;
|
||||
exports.entityDesc = exports.UsageActionDef = void 0;
|
||||
;
|
||||
exports.UsageActionDef = {
|
||||
stm: {
|
||||
revoke: ['granted', "revoked"]
|
||||
}
|
||||
};
|
||||
exports.entityDesc = {
|
||||
locales: {
|
||||
zh_CN: {
|
||||
|
|
@ -12,7 +17,31 @@ exports.entityDesc = {
|
|||
application: 'Oauth应用',
|
||||
authorizedAt: '首次授权时间',
|
||||
token: '关联的令牌',
|
||||
code: '授权码',
|
||||
usageState: '授权状态',
|
||||
},
|
||||
action: {
|
||||
revoke: '撤销授权',
|
||||
},
|
||||
v: {
|
||||
usageState: {
|
||||
granted: '已授权',
|
||||
denied: '未授权',
|
||||
revoked: '已撤销',
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
style: {
|
||||
icon: {
|
||||
revoke: 'fa-user-slash',
|
||||
},
|
||||
color: {
|
||||
usageState: {
|
||||
granted: '#28a745',
|
||||
denied: '#dc3545',
|
||||
revoked: '#6c757d',
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -31,6 +31,9 @@ export declare const actionDefDict: {
|
|||
oauthProvider: {
|
||||
ableState: import("oak-domain/lib/types").ActionDef<import("oak-domain/lib/actions/action").AbleAction, import("oak-domain/lib/actions/action").AbleState>;
|
||||
};
|
||||
oauthUserAuthorization: {
|
||||
usageState: import("oak-domain/lib/types").ActionDef<string, string>;
|
||||
};
|
||||
parasite: {};
|
||||
toDo: {
|
||||
iState: import("oak-domain/lib/types").ActionDef<string, string>;
|
||||
|
|
|
|||
|
|
@ -12,15 +12,16 @@ const Action_8 = require("./Mobile/Action");
|
|||
const Action_9 = require("./Notification/Action");
|
||||
const Action_10 = require("./OauthApplication/Action");
|
||||
const Action_11 = require("./OauthProvider/Action");
|
||||
const Action_12 = require("./Parasite/Action");
|
||||
const Action_13 = require("./ToDo/Action");
|
||||
const Action_14 = require("./Token/Action");
|
||||
const Action_15 = require("./User/Action");
|
||||
const Action_16 = require("./UserEntityGrant/Action");
|
||||
const Action_17 = require("./UserWechatPublicTag/Action");
|
||||
const Action_18 = require("./WechatLogin/Action");
|
||||
const Action_19 = require("./WechatMenu/Action");
|
||||
const Action_20 = require("./WechatPublicTag/Action");
|
||||
const Action_12 = require("./OauthUserAuthorization/Action");
|
||||
const Action_13 = require("./Parasite/Action");
|
||||
const Action_14 = require("./ToDo/Action");
|
||||
const Action_15 = require("./Token/Action");
|
||||
const Action_16 = require("./User/Action");
|
||||
const Action_17 = require("./UserEntityGrant/Action");
|
||||
const Action_18 = require("./UserWechatPublicTag/Action");
|
||||
const Action_19 = require("./WechatLogin/Action");
|
||||
const Action_20 = require("./WechatMenu/Action");
|
||||
const Action_21 = require("./WechatPublicTag/Action");
|
||||
exports.actionDefDict = {
|
||||
log: Action_1.actionDefDict,
|
||||
modi: Action_2.actionDefDict,
|
||||
|
|
@ -33,13 +34,14 @@ exports.actionDefDict = {
|
|||
notification: Action_9.actionDefDict,
|
||||
oauthApplication: Action_10.actionDefDict,
|
||||
oauthProvider: Action_11.actionDefDict,
|
||||
parasite: Action_12.actionDefDict,
|
||||
toDo: Action_13.actionDefDict,
|
||||
token: Action_14.actionDefDict,
|
||||
user: Action_15.actionDefDict,
|
||||
userEntityGrant: Action_16.actionDefDict,
|
||||
userWechatPublicTag: Action_17.actionDefDict,
|
||||
wechatLogin: Action_18.actionDefDict,
|
||||
wechatMenu: Action_19.actionDefDict,
|
||||
wechatPublicTag: Action_20.actionDefDict
|
||||
oauthUserAuthorization: Action_12.actionDefDict,
|
||||
parasite: Action_13.actionDefDict,
|
||||
toDo: Action_14.actionDefDict,
|
||||
token: Action_15.actionDefDict,
|
||||
user: Action_16.actionDefDict,
|
||||
userEntityGrant: Action_17.actionDefDict,
|
||||
userWechatPublicTag: Action_18.actionDefDict,
|
||||
wechatLogin: Action_19.actionDefDict,
|
||||
wechatMenu: Action_20.actionDefDict,
|
||||
wechatPublicTag: Action_21.actionDefDict
|
||||
};
|
||||
|
|
|
|||
|
|
@ -2223,7 +2223,9 @@ export type OauthAuthorizationCode = {
|
|||
application: OauthApplication["Schema"];
|
||||
user: User["Schema"];
|
||||
oauthToken$code?: Array<Omit<OauthToken["Schema"], "code">>;
|
||||
oauthUserAuthorization$code?: Array<Omit<OauthUserAuthorization["Schema"], "code">>;
|
||||
oauthToken$code$$aggr?: AggregationResult<Omit<OauthToken["Schema"], "code">>;
|
||||
oauthUserAuthorization$code$$aggr?: AggregationResult<Omit<OauthUserAuthorization["Schema"], "code">>;
|
||||
};
|
||||
Projection: BaseOauthAuthorizationCode.OpProjection & {
|
||||
application?: OauthApplication["Projection"];
|
||||
|
|
@ -2234,11 +2236,18 @@ export type OauthAuthorizationCode = {
|
|||
oauthToken$code$$aggr?: DeduceAggregation<Omit<OauthToken["Projection"], "oauthAuthorizationCode">, Omit<OauthToken["Filter"], "oauthAuthorizationCode">, OauthToken["Sorter"]> & {
|
||||
$entity: "oauthToken";
|
||||
};
|
||||
oauthUserAuthorization$code?: OakSelection<"select", Omit<OauthUserAuthorization["Projection"], "oauthAuthorizationCode">, Omit<OauthUserAuthorization["Filter"], "oauthAuthorizationCode">, OauthUserAuthorization["Sorter"]> & {
|
||||
$entity: "oauthUserAuthorization";
|
||||
};
|
||||
oauthUserAuthorization$code$$aggr?: DeduceAggregation<Omit<OauthUserAuthorization["Projection"], "oauthAuthorizationCode">, Omit<OauthUserAuthorization["Filter"], "oauthAuthorizationCode">, OauthUserAuthorization["Sorter"]> & {
|
||||
$entity: "oauthUserAuthorization";
|
||||
};
|
||||
};
|
||||
FilterUnit: BaseOauthAuthorizationCode.OpFilter & {
|
||||
application: MakeFilter<OauthApplication["FilterUnit"]>;
|
||||
user: MakeFilter<User["FilterUnit"]>;
|
||||
oauthToken$code: MakeFilter<Omit<OauthToken["FilterUnit"], "code">> & SubQueryPredicateMetadata;
|
||||
oauthUserAuthorization$code: MakeFilter<Omit<OauthUserAuthorization["FilterUnit"], "code">> & SubQueryPredicateMetadata;
|
||||
};
|
||||
Filter: MakeFilter<OauthAuthorizationCode["FilterUnit"]>;
|
||||
SortAttr: Partial<BaseOauthAuthorizationCode.OpSortAttr | {
|
||||
|
|
@ -2256,6 +2265,7 @@ export type OauthAuthorizationCode = {
|
|||
application?: OakOperation<"create", OauthApplication["CreateOperationData"]> | OakOperation<BaseOauthApplication.OpUpdateAction, OauthApplication["UpdateOperationData"], OauthApplication["Filter"]>;
|
||||
user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation<BaseUser.OpUpdateAction, User["UpdateOperationData"], User["Filter"]>;
|
||||
oauthToken$code?: (OakOperation<"create", Omit<OauthToken["CreateOperationData"], "code"> | Omit<OauthToken["CreateOperationData"], "code">[]> | OakOperation<BaseOauthToken.OpUpdateAction, Omit<OauthToken["UpdateOperationData"], "code">, OauthToken["Filter"]>)[];
|
||||
oauthUserAuthorization$code?: (OakOperation<"create", Omit<OauthUserAuthorization["CreateOperationData"], "code"> | Omit<OauthUserAuthorization["CreateOperationData"], "code">[]> | OakOperation<BaseOauthUserAuthorization.OpUpdateAction, Omit<OauthUserAuthorization["UpdateOperationData"], "code">, OauthUserAuthorization["Filter"]>)[];
|
||||
}>;
|
||||
CreateSingle: OakOperation<"create", OauthAuthorizationCode["CreateOperationData"]>;
|
||||
CreateMulti: OakOperation<"create", Array<OauthAuthorizationCode["CreateOperationData"]>>;
|
||||
|
|
@ -2264,6 +2274,7 @@ export type OauthAuthorizationCode = {
|
|||
application?: OakOperation<"create", OauthApplication["CreateOperationData"]> | OakOperation<BaseOauthApplication.OpUpdateAction, OauthApplication["UpdateOperationData"], OauthApplication["Filter"]> | OakOperation<"remove", OauthApplication["RemoveOperationData"], OauthApplication["Filter"]>;
|
||||
user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation<BaseUser.OpUpdateAction, User["UpdateOperationData"], User["Filter"]> | OakOperation<"remove", User["RemoveOperationData"], User["Filter"]>;
|
||||
oauthToken$code?: (OakOperation<"create", Omit<OauthToken["CreateOperationData"], "code"> | Omit<OauthToken["CreateOperationData"], "code">[]> | OakOperation<BaseOauthToken.OpUpdateAction, Omit<OauthToken["UpdateOperationData"], "code">, OauthToken["Filter"]> | OakOperation<"remove", OauthToken["RemoveOperationData"], OauthToken["Filter"]>)[];
|
||||
oauthUserAuthorization$code?: (OakOperation<"create", Omit<OauthUserAuthorization["CreateOperationData"], "code"> | Omit<OauthUserAuthorization["CreateOperationData"], "code">[]> | OakOperation<BaseOauthUserAuthorization.OpUpdateAction, Omit<OauthUserAuthorization["UpdateOperationData"], "code">, OauthUserAuthorization["Filter"]> | OakOperation<"remove", OauthUserAuthorization["RemoveOperationData"], OauthUserAuthorization["Filter"]>)[];
|
||||
}>;
|
||||
Update: OakOperation<BaseOauthAuthorizationCode.OpUpdateAction, OauthAuthorizationCode["UpdateOperationData"], OauthAuthorizationCode["Filter"], OauthAuthorizationCode["Sorter"]>;
|
||||
RemoveOperationData: {};
|
||||
|
|
@ -2509,22 +2520,26 @@ export type OauthUserAuthorization = {
|
|||
Schema: BaseOauthUserAuthorization.OpSchema & {
|
||||
user: User["Schema"];
|
||||
application: OauthApplication["Schema"];
|
||||
token: OauthToken["Schema"];
|
||||
code?: OauthAuthorizationCode["Schema"];
|
||||
token?: OauthToken["Schema"];
|
||||
};
|
||||
Projection: BaseOauthUserAuthorization.OpProjection & {
|
||||
user?: User["Projection"];
|
||||
application?: OauthApplication["Projection"];
|
||||
code?: OauthAuthorizationCode["Projection"];
|
||||
token?: OauthToken["Projection"];
|
||||
};
|
||||
FilterUnit: BaseOauthUserAuthorization.OpFilter & {
|
||||
user: MakeFilter<User["FilterUnit"]>;
|
||||
application: MakeFilter<OauthApplication["FilterUnit"]>;
|
||||
code: MakeFilter<OauthAuthorizationCode["FilterUnit"]>;
|
||||
token: MakeFilter<OauthToken["FilterUnit"]>;
|
||||
};
|
||||
Filter: MakeFilter<OauthUserAuthorization["FilterUnit"]>;
|
||||
SortAttr: Partial<BaseOauthUserAuthorization.OpSortAttr | {
|
||||
user: User["SortAttr"];
|
||||
application: OauthApplication["SortAttr"];
|
||||
code: OauthAuthorizationCode["SortAttr"];
|
||||
token: OauthToken["SortAttr"];
|
||||
}>;
|
||||
SortNode: {
|
||||
|
|
@ -2537,6 +2552,7 @@ export type OauthUserAuthorization = {
|
|||
CreateOperationData: FormCreateData<BaseOauthUserAuthorization.OpSchema & {
|
||||
user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation<BaseUser.OpUpdateAction, User["UpdateOperationData"], User["Filter"]>;
|
||||
application?: OakOperation<"create", OauthApplication["CreateOperationData"]> | OakOperation<BaseOauthApplication.OpUpdateAction, OauthApplication["UpdateOperationData"], OauthApplication["Filter"]>;
|
||||
code?: OakOperation<"create", OauthAuthorizationCode["CreateOperationData"]> | OakOperation<BaseOauthAuthorizationCode.OpUpdateAction, OauthAuthorizationCode["UpdateOperationData"], OauthAuthorizationCode["Filter"]>;
|
||||
token?: OakOperation<"create", OauthToken["CreateOperationData"]> | OakOperation<BaseOauthToken.OpUpdateAction, OauthToken["UpdateOperationData"], OauthToken["Filter"]>;
|
||||
}>;
|
||||
CreateSingle: OakOperation<"create", OauthUserAuthorization["CreateOperationData"]>;
|
||||
|
|
@ -2545,6 +2561,7 @@ export type OauthUserAuthorization = {
|
|||
UpdateOperationData: FormUpdateData<BaseOauthUserAuthorization.OpSchema & {
|
||||
user?: OakOperation<"create", User["CreateOperationData"]> | OakOperation<BaseUser.OpUpdateAction, User["UpdateOperationData"], User["Filter"]> | OakOperation<"remove", User["RemoveOperationData"], User["Filter"]>;
|
||||
application?: OakOperation<"create", OauthApplication["CreateOperationData"]> | OakOperation<BaseOauthApplication.OpUpdateAction, OauthApplication["UpdateOperationData"], OauthApplication["Filter"]> | OakOperation<"remove", OauthApplication["RemoveOperationData"], OauthApplication["Filter"]>;
|
||||
code?: OakOperation<"create", OauthAuthorizationCode["CreateOperationData"]> | OakOperation<BaseOauthAuthorizationCode.OpUpdateAction, OauthAuthorizationCode["UpdateOperationData"], OauthAuthorizationCode["Filter"]> | OakOperation<"remove", OauthAuthorizationCode["RemoveOperationData"], OauthAuthorizationCode["Filter"]>;
|
||||
token?: OakOperation<"create", OauthToken["CreateOperationData"]> | OakOperation<BaseOauthToken.OpUpdateAction, OauthToken["UpdateOperationData"], OauthToken["Filter"]> | OakOperation<"remove", OauthToken["RemoveOperationData"], OauthToken["Filter"]>;
|
||||
}>;
|
||||
Update: OakOperation<BaseOauthUserAuthorization.OpUpdateAction, OauthUserAuthorization["UpdateOperationData"], OauthUserAuthorization["Filter"], OauthUserAuthorization["Sorter"]>;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
import { AbleState, AbleAction } from "oak-domain/lib/actions/action";
|
||||
import { ActionDef } from "oak-domain/lib/types/Action";
|
||||
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||
export type ParticularAction = AbleAction;
|
||||
export type SecretAction = 'resetSecret' | string;
|
||||
export type ParticularAction = AbleAction | SecretAction;
|
||||
export declare const actions: string[];
|
||||
export declare const AbleActionDef: ActionDef<AbleAction, AbleState>;
|
||||
export type Action = GenericAction | ParticularAction | string;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.actionDefDict = exports.AbleActionDef = exports.actions = void 0;
|
||||
const action_1 = require("oak-domain/lib/actions/action");
|
||||
exports.actions = ["count", "stat", "download", "select", "aggregate", "create", "remove", "update", "enable", "disable"];
|
||||
exports.actions = ["count", "stat", "download", "select", "aggregate", "create", "remove", "update", "enable", "disable", "resetSecret"];
|
||||
exports.AbleActionDef = (0, action_1.makeAbleActionDef)('enabled');
|
||||
exports.actionDefDict = {
|
||||
ableState: exports.AbleActionDef
|
||||
|
|
|
|||
|
|
@ -13,7 +13,8 @@
|
|||
},
|
||||
"action": {
|
||||
"enable": "启用",
|
||||
"disable": "禁用"
|
||||
"disable": "禁用",
|
||||
"resetSecret": "重置密钥"
|
||||
},
|
||||
"v": {
|
||||
"ableState": {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
import { ActionDef } from "oak-domain/lib/types/Action";
|
||||
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||
export type UsageState = 'granted' | 'denied' | 'revoked' | string;
|
||||
export type UsageAction = 'revoke' | string;
|
||||
export type ParticularAction = UsageAction;
|
||||
export declare const actions: string[];
|
||||
export declare const UsageActionDef: ActionDef<UsageAction, UsageState>;
|
||||
export type Action = GenericAction | ParticularAction | string;
|
||||
export declare const actionDefDict: {
|
||||
usageState: ActionDef<string, string>;
|
||||
};
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.actionDefDict = exports.UsageActionDef = exports.actions = void 0;
|
||||
exports.actions = ["count", "stat", "download", "select", "aggregate", "create", "remove", "update", "revoke"];
|
||||
exports.UsageActionDef = {
|
||||
stm: {
|
||||
revoke: ['granted', "revoked"]
|
||||
}
|
||||
};
|
||||
exports.actionDefDict = {
|
||||
usageState: exports.UsageActionDef
|
||||
};
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.desc = void 0;
|
||||
const action_1 = require("oak-domain/lib/actions/action");
|
||||
const Action_1 = require("./Action");
|
||||
exports.desc = {
|
||||
attributes: {
|
||||
userId: {
|
||||
|
|
@ -18,12 +18,19 @@ exports.desc = {
|
|||
notNull: true,
|
||||
type: "datetime"
|
||||
},
|
||||
codeId: {
|
||||
type: "ref",
|
||||
ref: "oauthAuthorizationCode"
|
||||
},
|
||||
tokenId: {
|
||||
notNull: true,
|
||||
type: "ref",
|
||||
ref: "oauthToken"
|
||||
},
|
||||
usageState: {
|
||||
type: "enum",
|
||||
enumeration: ["granted", "denied", "revoked"]
|
||||
}
|
||||
},
|
||||
actionType: "crud",
|
||||
actions: action_1.genericActions
|
||||
actions: Action_1.actions
|
||||
};
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
import { Action, OpSchema } from "./Schema";
|
||||
import { StyleDef } from "oak-domain/lib/types/Style";
|
||||
export declare const style: StyleDef<OpSchema, Action>;
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.style = void 0;
|
||||
exports.style = {
|
||||
icon: {
|
||||
revoke: 'fa-user-slash',
|
||||
},
|
||||
color: {
|
||||
usageState: {
|
||||
granted: '#28a745',
|
||||
denied: '#dc3545',
|
||||
revoked: '#6c757d',
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -1,13 +1,15 @@
|
|||
import { ForeignKey } from "oak-domain/lib/types/DataType";
|
||||
import { Q_DateValue, Q_NumberValue, Q_StringValue, NodeId, ExprOp, ExpressionKey } from "oak-domain/lib/types/Demand";
|
||||
import { Q_DateValue, Q_NumberValue, Q_StringValue, Q_EnumValue, NodeId, ExprOp, ExpressionKey } from "oak-domain/lib/types/Demand";
|
||||
import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity";
|
||||
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||
import { Action, ParticularAction, UsageState } from "./Action";
|
||||
import { Datetime } from "oak-domain/lib/types/DataType";
|
||||
export type OpSchema = EntityShape & {
|
||||
userId: ForeignKey<"user">;
|
||||
applicationId: ForeignKey<"oauthApplication">;
|
||||
authorizedAt: Datetime;
|
||||
tokenId: ForeignKey<"oauthToken">;
|
||||
codeId?: ForeignKey<"oauthAuthorizationCode"> | null;
|
||||
tokenId?: ForeignKey<"oauthToken"> | null;
|
||||
usageState?: UsageState | null;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
};
|
||||
|
|
@ -20,7 +22,9 @@ export type OpFilter = {
|
|||
userId: Q_StringValue;
|
||||
applicationId: Q_StringValue;
|
||||
authorizedAt: Q_DateValue;
|
||||
codeId: Q_StringValue;
|
||||
tokenId: Q_StringValue;
|
||||
usageState: Q_EnumValue<UsageState>;
|
||||
} & ExprOp<OpAttr | string>;
|
||||
export type OpProjection = {
|
||||
"#id"?: NodeId;
|
||||
|
|
@ -32,7 +36,9 @@ export type OpProjection = {
|
|||
userId?: number;
|
||||
applicationId?: number;
|
||||
authorizedAt?: number;
|
||||
codeId?: number;
|
||||
tokenId?: number;
|
||||
usageState?: number;
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
export type OpSortAttr = Partial<{
|
||||
id: number;
|
||||
|
|
@ -42,8 +48,10 @@ export type OpSortAttr = Partial<{
|
|||
userId: number;
|
||||
applicationId: number;
|
||||
authorizedAt: number;
|
||||
codeId: number;
|
||||
tokenId: number;
|
||||
usageState: number;
|
||||
[k: string]: any;
|
||||
} | ExprOp<OpAttr | string>>;
|
||||
export type OpAction = OakMakeAction<GenericAction | string>;
|
||||
export type OpUpdateAction = "update" | string;
|
||||
export type OpAction = OakMakeAction<Action | string>;
|
||||
export type OpUpdateAction = "update" | ParticularAction | string;
|
||||
|
|
|
|||
|
|
@ -4,6 +4,18 @@
|
|||
"user": "用户",
|
||||
"application": "Oauth应用",
|
||||
"authorizedAt": "首次授权时间",
|
||||
"token": "关联的令牌"
|
||||
"token": "关联的令牌",
|
||||
"code": "授权码",
|
||||
"usageState": "授权状态"
|
||||
},
|
||||
"action": {
|
||||
"revoke": "撤销授权"
|
||||
},
|
||||
"v": {
|
||||
"usageState": {
|
||||
"granted": "已授权",
|
||||
"denied": "未授权",
|
||||
"revoked": "已撤销"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,19 +18,20 @@ const Style_14 = require("./Mobile/Style");
|
|||
const Style_15 = require("./Notification/Style");
|
||||
const Style_16 = require("./OauthApplication/Style");
|
||||
const Style_17 = require("./OauthProvider/Style");
|
||||
const Style_18 = require("./Parasite/Style");
|
||||
const Style_19 = require("./Passport/Style");
|
||||
const Style_20 = require("./SmsTemplate/Style");
|
||||
const Style_21 = require("./ToDo/Style");
|
||||
const Style_22 = require("./Token/Style");
|
||||
const Style_23 = require("./User/Style");
|
||||
const Style_24 = require("./UserEntityGrant/Style");
|
||||
const Style_25 = require("./UserWechatPublicTag/Style");
|
||||
const Style_26 = require("./WechatLogin/Style");
|
||||
const Style_27 = require("./WechatMenu/Style");
|
||||
const Style_28 = require("./WechatPublicTag/Style");
|
||||
const Style_29 = require("./WechatQrCode/Style");
|
||||
const Style_30 = require("./WechatUser/Style");
|
||||
const Style_18 = require("./OauthUserAuthorization/Style");
|
||||
const Style_19 = require("./Parasite/Style");
|
||||
const Style_20 = require("./Passport/Style");
|
||||
const Style_21 = require("./SmsTemplate/Style");
|
||||
const Style_22 = require("./ToDo/Style");
|
||||
const Style_23 = require("./Token/Style");
|
||||
const Style_24 = require("./User/Style");
|
||||
const Style_25 = require("./UserEntityGrant/Style");
|
||||
const Style_26 = require("./UserWechatPublicTag/Style");
|
||||
const Style_27 = require("./WechatLogin/Style");
|
||||
const Style_28 = require("./WechatMenu/Style");
|
||||
const Style_29 = require("./WechatPublicTag/Style");
|
||||
const Style_30 = require("./WechatQrCode/Style");
|
||||
const Style_31 = require("./WechatUser/Style");
|
||||
exports.styleDict = {
|
||||
log: Style_1.style,
|
||||
modi: Style_2.style,
|
||||
|
|
@ -49,17 +50,18 @@ exports.styleDict = {
|
|||
notification: Style_15.style,
|
||||
oauthApplication: Style_16.style,
|
||||
oauthProvider: Style_17.style,
|
||||
parasite: Style_18.style,
|
||||
passport: Style_19.style,
|
||||
smsTemplate: Style_20.style,
|
||||
toDo: Style_21.style,
|
||||
token: Style_22.style,
|
||||
user: Style_23.style,
|
||||
userEntityGrant: Style_24.style,
|
||||
userWechatPublicTag: Style_25.style,
|
||||
wechatLogin: Style_26.style,
|
||||
wechatMenu: Style_27.style,
|
||||
wechatPublicTag: Style_28.style,
|
||||
wechatQrCode: Style_29.style,
|
||||
wechatUser: Style_30.style
|
||||
oauthUserAuthorization: Style_18.style,
|
||||
parasite: Style_19.style,
|
||||
passport: Style_20.style,
|
||||
smsTemplate: Style_21.style,
|
||||
toDo: Style_22.style,
|
||||
token: Style_23.style,
|
||||
user: Style_24.style,
|
||||
userEntityGrant: Style_25.style,
|
||||
userWechatPublicTag: Style_26.style,
|
||||
wechatLogin: Style_27.style,
|
||||
wechatMenu: Style_28.style,
|
||||
wechatPublicTag: Style_29.style,
|
||||
wechatQrCode: Style_30.style,
|
||||
wechatUser: Style_31.style
|
||||
};
|
||||
|
|
|
|||
|
|
@ -22,7 +22,8 @@ export interface Schema extends EntityShape {
|
|||
scopes?: StringListJson;
|
||||
};
|
||||
|
||||
export type Action = AbleAction;
|
||||
export type SecretAction = 'resetSecret';
|
||||
export type Action = AbleAction | SecretAction;
|
||||
export const AbleActionDef: ActionDef<AbleAction, AbleState> = makeAbleActionDef('enabled');
|
||||
|
||||
export const entityDesc: EntityDesc<Schema, Action, '', {
|
||||
|
|
@ -46,6 +47,7 @@ export const entityDesc: EntityDesc<Schema, Action, '', {
|
|||
action: {
|
||||
enable: '启用',
|
||||
disable: '禁用',
|
||||
resetSecret: '重置密钥',
|
||||
},
|
||||
v: {
|
||||
ableState: {
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import { EntityDesc } from 'oak-domain/lib/types/EntityDesc';
|
|||
import { Schema as System } from './System';
|
||||
import { Schema as OauthApplication } from './OauthApplication';
|
||||
import { Schema as OauthToken } from './OauthToken';
|
||||
import { Schema as OauthAuthorizationCode } from './OauthAuthorizationCode';
|
||||
|
||||
// oauth 提供方用户授权记录
|
||||
// 用户授权记录表 OAuth Authorization Records
|
||||
|
|
@ -15,11 +16,23 @@ export interface Schema extends EntityShape {
|
|||
user: User;
|
||||
application: OauthApplication;
|
||||
authorizedAt: Datetime; // 用户首次授权时间
|
||||
token: OauthToken; // 关联的令牌
|
||||
code?: OauthAuthorizationCode; // 使用的授权码
|
||||
token?: OauthToken; // 关联的令牌(在调用接口之后生成)
|
||||
};
|
||||
|
||||
export const entityDesc: EntityDesc<Schema, '', '', {
|
||||
}> = {
|
||||
export type UsageState = 'granted' | 'denied' | 'revoked';
|
||||
export type UsageAction = 'revoke';
|
||||
export type Action = UsageAction;
|
||||
|
||||
export const UsageActionDef: ActionDef<UsageAction, UsageState> = {
|
||||
stm: {
|
||||
revoke: ['granted', "revoked"]
|
||||
}
|
||||
};
|
||||
|
||||
export const entityDesc: EntityDesc<Schema, Action, '', {
|
||||
usageState: UsageState;
|
||||
}> = {
|
||||
locales: {
|
||||
zh_CN: {
|
||||
// 用户可以查看和管理已授权的应用
|
||||
|
|
@ -29,8 +42,32 @@ export const entityDesc: EntityDesc<Schema, '', '', {
|
|||
application: 'Oauth应用',
|
||||
authorizedAt: '首次授权时间',
|
||||
token: '关联的令牌',
|
||||
code: '授权码',
|
||||
usageState: '授权状态',
|
||||
},
|
||||
action: {
|
||||
revoke: '撤销授权',
|
||||
},
|
||||
v: {
|
||||
usageState: {
|
||||
granted: '已授权',
|
||||
denied: '未授权',
|
||||
revoked: '已撤销',
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
style: {
|
||||
icon: {
|
||||
revoke: 'fa-user-slash',
|
||||
},
|
||||
color: {
|
||||
usageState: {
|
||||
granted: '#28a745',
|
||||
denied: '#dc3545',
|
||||
revoked: '#6c757d',
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue