Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions packages/global/core/evaluation/type.d.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import type { EvaluationStatusEnum } from './constants';
import type { EvalDatasetDataSchemaType } from './dataset/type';
import type { MetricResult } from './metric/type';
import type { EvaluationPermission } from '../../../support/permission/evaluation/controller';

// Evaluation target related types
export interface WorkflowConfig {
Expand Down Expand Up @@ -122,3 +123,7 @@ export interface EvaluationItemJobData {
evalId: string;
evalItemId: string;
}

export type EvaluationDetailType = EvaluationSchemaType & {
permission: EvaluationPermission;
};
3 changes: 2 additions & 1 deletion packages/global/support/permission/constant.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ export const PermissionTypeMap = {
export enum PerResourceTypeEnum {
team = 'team',
app = 'app',
dataset = 'dataset'
dataset = 'dataset',
evaluation = 'evaluation'
}

/* new permission */
Expand Down
21 changes: 21 additions & 0 deletions packages/global/support/permission/evaluation/constant.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { type PermissionListType, type RoleListType, type RolePerMapType } from '../type';
import { CommonPerList, CommonRoleList, CommonRolePerMap } from '../constant';

// 评估模块权限列表 (沿用通用权限,无特殊权限)
export const EvaluationPerList: PermissionListType = CommonPerList;

// 评估模块角色列表 (沿用通用角色)
export const EvaluationRoleList: RoleListType = {
...CommonRoleList
} as const;

// 评估模块角色权限映射 (沿用通用映射)
export const EvaluationRolePerMap: RolePerMapType = CommonRolePerMap;

// 评估模块默认权限值
export const EvaluationDefaultRoleVal = 0;

// 常用权限值导出
export const EvaluationReadPermissionVal = EvaluationPerList.read;
export const EvaluationWritePermissionVal = EvaluationPerList.write;
export const EvaluationManagePermissionVal = EvaluationPerList.manage;
23 changes: 23 additions & 0 deletions packages/global/support/permission/evaluation/controller.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { type PerConstructPros, Permission } from '../controller';
import {
EvaluationDefaultRoleVal,
EvaluationPerList,
EvaluationRoleList,
EvaluationRolePerMap
} from './constant';

export class EvaluationPermission extends Permission {
constructor(props?: PerConstructPros) {
if (!props) {
props = {
role: EvaluationDefaultRoleVal
};
} else if (!props?.role) {
props.role = EvaluationDefaultRoleVal;
}
props.roleList = EvaluationRoleList;
props.rolePerMap = EvaluationRolePerMap;
props.perList = EvaluationPerList;
super(props);
}
}
25 changes: 22 additions & 3 deletions packages/global/support/permission/user/constant.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,23 @@ import { sumPer } from '../utils';
export enum TeamPerKeyEnum {
appCreate = 'appCreate',
datasetCreate = 'datasetCreate',
apikeyCreate = 'apikeyCreate'
apikeyCreate = 'apikeyCreate',
evaluationCreate = 'evaluationCreate'
}

export enum TeamRoleKeyEnum {
appCreate = 'appCreate',
datasetCreate = 'datasetCreate',
apikeyCreate = 'apikeyCreate'
apikeyCreate = 'apikeyCreate',
evaluationCreate = 'evaluationCreate'
}

export const TeamPerList: PermissionListType<TeamPerKeyEnum> = {
...CommonPerList,
apikeyCreate: 0b100000,
appCreate: 0b001000,
datasetCreate: 0b010000
datasetCreate: 0b010000,
evaluationCreate: 0b1000000
};

export const TeamRoleList: RoleListType<TeamRoleKeyEnum> = {
Expand Down Expand Up @@ -58,6 +61,12 @@ export const TeamRoleList: RoleListType<TeamRoleKeyEnum> = {
description: '',
name: i18nT('account_team:permission_apikeyCreate'),
value: 0b100000
},
[TeamRoleKeyEnum.evaluationCreate]: {
checkBoxType: 'multiple',
description: '',
name: i18nT('account_team:permission_evaluationCreate'),
value: 0b1000000
}
};

Expand All @@ -78,13 +87,22 @@ export const TeamRolePerMap: RolePerMapType = new Map([
[
TeamRoleList['apikeyCreate'].value,
sumPer(TeamPerList.apikeyCreate, CommonPerList.read, CommonPerList.write) as PermissionValueType
],
[
TeamRoleList['evaluationCreate'].value,
sumPer(
TeamPerList.evaluationCreate,
CommonPerList.read,
CommonPerList.write
) as PermissionValueType
]
]);

export const TeamReadRoleVal = TeamRoleList['read'].value;
export const TeamWriteRoleVal = TeamRoleList['write'].value;
export const TeamManageRoleVal = TeamRoleList['manage'].value;
export const TeamAppCreateRoleVal = TeamRoleList['appCreate'].value;
export const TeamEvaluationCreateRoleVal = TeamRoleList['evaluationCreate'].value;
export const TeamDatasetCreateRoleVal = TeamRoleList['datasetCreate'].value;
export const TeamApikeyCreateRoleVal = TeamRoleList['apikeyCreate'].value;
export const TeamDefaultRoleVal = TeamReadRoleVal;
Expand All @@ -95,4 +113,5 @@ export const TeamManagePermissionVal = TeamPerList.manage;
export const TeamAppCreatePermissionVal = TeamPerList.appCreate;
export const TeamDatasetCreatePermissionVal = TeamPerList.datasetCreate;
export const TeamApikeyCreatePermissionVal = TeamPerList.apikeyCreate;
export const TeamEvaluationCreatePermissionVal = TeamPerList.evaluationCreate;
export const TeamDefaultPermissionVal = TeamReadPermissionVal;
5 changes: 5 additions & 0 deletions packages/global/support/permission/user/controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import {
TeamApikeyCreateRoleVal,
TeamAppCreateRoleVal,
TeamDatasetCreateRoleVal,
TeamEvaluationCreateRoleVal,
TeamDefaultRoleVal,
TeamPerList,
TeamRoleList,
Expand All @@ -13,9 +14,11 @@ export class TeamPermission extends Permission {
hasAppCreateRole: boolean = false;
hasDatasetCreateRole: boolean = false;
hasApikeyCreateRole: boolean = false;
hasEvaluationCreateRole: boolean = false;
hasAppCreatePer: boolean = false;
hasDatasetCreatePer: boolean = false;
hasApikeyCreatePer: boolean = false;
hasEvaluationCreatePer: boolean = false;

constructor(props?: PerConstructPros) {
if (!props) {
Expand All @@ -34,9 +37,11 @@ export class TeamPermission extends Permission {
this.hasAppCreateRole = this.checkRole(TeamAppCreateRoleVal);
this.hasDatasetCreateRole = this.checkRole(TeamDatasetCreateRoleVal);
this.hasApikeyCreateRole = this.checkRole(TeamApikeyCreateRoleVal);
this.hasEvaluationCreateRole = this.checkRole(TeamEvaluationCreateRoleVal);
this.hasAppCreatePer = this.checkPer(TeamAppCreateRoleVal);
this.hasDatasetCreatePer = this.checkPer(TeamDatasetCreateRoleVal);
this.hasApikeyCreatePer = this.checkPer(TeamApikeyCreateRoleVal);
this.hasEvaluationCreatePer = this.checkPer(TeamEvaluationCreateRoleVal);
});
}
}
Loading
Loading