diff --git a/packages/ui/certd-client/src/views/certd/access/access-selector/index.vue b/packages/ui/certd-client/src/views/certd/access/access-selector/index.vue index ed634573..2d5140df 100644 --- a/packages/ui/certd-client/src/views/certd/access/access-selector/index.vue +++ b/packages/ui/certd-client/src/views/certd/access/access-selector/index.vue @@ -55,7 +55,7 @@ export default defineComponent({ async function refreshTarget(value) { selectedId.value = value; if (value > 0) { - target.value = await api.GetObj(value); + target.value = await api.GetSimpleInfo(value); } } diff --git a/packages/ui/certd-client/src/views/certd/access/api.ts b/packages/ui/certd-client/src/views/certd/access/api.ts index ca9d47c6..84d04048 100644 --- a/packages/ui/certd-client/src/views/certd/access/api.ts +++ b/packages/ui/certd-client/src/views/certd/access/api.ts @@ -43,6 +43,14 @@ export function createAccessApi(from = "user") { }); }, + async GetSimpleInfo(id: number) { + return await request({ + url: apiPrefix + "/simpleInfo", + method: "post", + params: { id } + }); + }, + async GetSecretPlain(id: number, key: string) { return await request({ url: apiPrefix + "/getSecretPlain", diff --git a/packages/ui/certd-server/src/controller/pipeline/access-controller.ts b/packages/ui/certd-server/src/controller/pipeline/access-controller.ts index 004f12a7..a8b9df63 100644 --- a/packages/ui/certd-server/src/controller/pipeline/access-controller.ts +++ b/packages/ui/certd-server/src/controller/pipeline/access-controller.ts @@ -1,6 +1,7 @@ import { ALL, Body, Controller, Inject, Post, Provide, Query } from '@midwayjs/core'; import { Constants, CrudController } from '@certd/lib-server'; import { AccessService } from '../../modules/pipeline/service/access-service.js'; +import { AuthService } from '../../modules/sys/authority/service/auth-service.js'; /** * 授权 @@ -10,6 +11,8 @@ import { AccessService } from '../../modules/pipeline/service/access-service.js' export class AccessController extends CrudController { @Inject() service: AccessService; + @Inject() + authService: AuthService; getService(): AccessService { return this.service; @@ -84,4 +87,11 @@ export class AccessController extends CrudController { } return this.ok(dict); } + + @Post('/simpleInfo', { summary: Constants.per.authOnly }) + async simpleInfo(@Query('id') id: number) { + await this.authService.checkEntityUserId(this.ctx, this.service, id); + const res = await this.service.getSimpleInfo(id); + return this.ok(res); + } } diff --git a/packages/ui/certd-server/src/modules/pipeline/service/access-service.ts b/packages/ui/certd-server/src/modules/pipeline/service/access-service.ts index 01caae37..dffeb23f 100644 --- a/packages/ui/certd-server/src/modules/pipeline/service/access-service.ts +++ b/packages/ui/certd-server/src/modules/pipeline/service/access-service.ts @@ -107,6 +107,18 @@ export class AccessService extends BaseService { return await super.update(param); } + async getSimpleInfo(id: number) { + const entity = await this.info(id); + if (entity == null) { + throw new ValidateException('该授权配置不存在,请确认是否已被删除'); + } + return { + id: entity.id, + name: entity.name, + userId: entity.userId, + }; + } + async getAccessById(id: any, checkUserId: boolean, userId?: number): Promise { const entity = await this.info(id); if (entity == null) { diff --git a/packages/ui/certd-server/src/modules/sys/authority/service/auth-service.ts b/packages/ui/certd-server/src/modules/sys/authority/service/auth-service.ts index 3c982f73..05dcc546 100644 --- a/packages/ui/certd-server/src/modules/sys/authority/service/auth-service.ts +++ b/packages/ui/certd-server/src/modules/sys/authority/service/auth-service.ts @@ -27,6 +27,7 @@ export class AuthService { } } + //管理员有权限查看其他用户的数据 async checkEntityUserId(ctx: any, service: any, id: any = 0, userKey = 'userId') { const isAdmin = await this.isAdmin(ctx); if (isAdmin) {