mirror of
https://github.com/certd/certd.git
synced 2026-04-03 14:10:54 +08:00
chore: swagger support
This commit is contained in:
@@ -116,7 +116,7 @@ export abstract class BaseController {
|
||||
await authService.checkProjectId(service, id, projectId);
|
||||
}else{
|
||||
|
||||
if(userId === 0){
|
||||
if(userId === Constants.systemUserId){
|
||||
//系统级别,不检查权限
|
||||
}else{
|
||||
if(allowAdmin){
|
||||
|
||||
@@ -4,6 +4,7 @@ import { Inject } from '@midwayjs/core';
|
||||
import { TypeORMDataSourceManager } from '@midwayjs/typeorm';
|
||||
import { EntityManager } from 'typeorm/entity-manager/EntityManager.js';
|
||||
import { FindManyOptions } from 'typeorm';
|
||||
import { Constants } from './constants.js';
|
||||
|
||||
export type PageReq<T = any> = {
|
||||
page?: { offset: number; limit: number };
|
||||
@@ -258,7 +259,7 @@ export abstract class BaseService<T> {
|
||||
|
||||
export function checkUserProjectParam(userId: number, projectId: number) {
|
||||
if (projectId != null ){
|
||||
if( userId !==-1) {
|
||||
if( userId !== Constants.enterpriseUserId) {
|
||||
throw new ValidateException('userId projectId 错误');
|
||||
}
|
||||
return true
|
||||
|
||||
@@ -120,4 +120,6 @@ export const Constants = {
|
||||
message: '用户邮箱还未配置',
|
||||
},
|
||||
},
|
||||
systemUserId: 0, // 系统级别userid固定为0
|
||||
enterpriseUserId: -1 // 企业模式用户id固定为-1
|
||||
};
|
||||
|
||||
@@ -78,6 +78,7 @@
|
||||
"@midwayjs/koa": "3.20.13",
|
||||
"@midwayjs/logger": "3.4.2",
|
||||
"@midwayjs/static-file": "3.20.13",
|
||||
"@midwayjs/swagger": "3.20.11",
|
||||
"@midwayjs/typeorm": "3.20.11",
|
||||
"@midwayjs/upload": "3.20.13",
|
||||
"@midwayjs/validate": "3.20.13",
|
||||
|
||||
@@ -131,6 +131,12 @@ const development = {
|
||||
contactText: '',
|
||||
contactLink: '',
|
||||
},
|
||||
swagger: {
|
||||
isGenerateTagForController: false,
|
||||
routerFilter: (url: string) => {
|
||||
return url.startsWith('/api/sys');
|
||||
}
|
||||
}
|
||||
} as MidwayConfig;
|
||||
loadDotEnv();
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ import * as commercial from '@certd/commercial-core';
|
||||
import * as upload from '@midwayjs/upload';
|
||||
import { setLogger } from '@certd/acme-client';
|
||||
import {HiddenMiddleware} from "./middleware/hidden.js";
|
||||
|
||||
import * as swagger from '@midwayjs/swagger';
|
||||
//@ts-ignore
|
||||
// process.env.UV_THREADPOOL_SIZE = 2
|
||||
process.on('uncaughtException', error => {
|
||||
@@ -62,6 +62,7 @@ process.on('uncaughtException', error => {
|
||||
upload,
|
||||
libServer,
|
||||
commercial,
|
||||
swagger,
|
||||
{
|
||||
component: info,
|
||||
enabledEnvironment: ['local'],
|
||||
|
||||
@@ -5,6 +5,7 @@ import { OpenKey } from "../../../modules/open/service/open-key-service.js";
|
||||
import { BaseOpenController } from "../base-open-controller.js";
|
||||
import { CertInfoFacade } from "../../../modules/monitor/facade/cert-info-facade.js";
|
||||
import { merge } from "lodash-es";
|
||||
import { ApiTags } from "@midwayjs/swagger";
|
||||
|
||||
export type CertGetReq = {
|
||||
domains?: string;
|
||||
@@ -17,6 +18,7 @@ export type CertGetReq = {
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/v1/cert')
|
||||
@ApiTags(['openapi'])
|
||||
export class OpenCertController extends BaseOpenController {
|
||||
@Inject()
|
||||
certInfoFacade: CertInfoFacade;
|
||||
|
||||
@@ -12,12 +12,14 @@ import { AuthService } from "../../../modules/sys/authority/service/auth-service
|
||||
import { checkPlus } from "@certd/plus-core";
|
||||
import { http, logger, utils } from "@certd/basic";
|
||||
import { TaskServiceBuilder } from "../../../modules/pipeline/service/getter/task-service-getter.js";
|
||||
import { ApiTags } from "@midwayjs/swagger";
|
||||
|
||||
/**
|
||||
* Addon
|
||||
*/
|
||||
@Provide()
|
||||
@Controller("/api/addon")
|
||||
@ApiTags(['addon'])
|
||||
export class AddonController extends CrudController<AddonService> {
|
||||
@Inject()
|
||||
service: AddonService;
|
||||
|
||||
@@ -2,12 +2,14 @@ import { ALL, Body, Controller, Inject, Post, Provide, Query } from '@midwayjs/c
|
||||
import { Constants, CrudController } from '@certd/lib-server';
|
||||
import { AuthService } from '../../../modules/sys/authority/service/auth-service.js';
|
||||
import { GroupService } from '../../../modules/basic/service/group-service.js';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
/**
|
||||
* 通知
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/basic/group')
|
||||
@ApiTags(['basic-group'])
|
||||
export class GroupController extends CrudController<GroupService> {
|
||||
@Inject()
|
||||
service: GroupService;
|
||||
|
||||
@@ -5,12 +5,14 @@ import { AuthService } from '../../../modules/sys/authority/service/auth-service
|
||||
import { UserService } from '../../../modules/sys/authority/service/user-service.js';
|
||||
import { BasicController } from '../../basic/code-controller.js';
|
||||
import { RoleService } from '../../../modules/sys/authority/service/role-service.js';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
/**
|
||||
* 通知
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/basic/user')
|
||||
@ApiTags(['basic-user'])
|
||||
export class BasicUserController extends BasicController {
|
||||
@Inject()
|
||||
service: UserService;
|
||||
|
||||
@@ -2,12 +2,14 @@ import { ALL, Body, Controller, Inject, Post, Provide, Query } from '@midwayjs/c
|
||||
import { Constants, CrudController } from '@certd/lib-server';
|
||||
import { DomainService } from "../../../modules/cert/service/domain-service.js";
|
||||
import { checkPlus } from '@certd/plus-core';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
/**
|
||||
* 授权
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/cert/domain')
|
||||
@ApiTags(['cert'])
|
||||
export class DomainController extends CrudController<DomainService> {
|
||||
@Inject()
|
||||
service: DomainService;
|
||||
|
||||
@@ -2,12 +2,14 @@ import { ALL, Body, Controller, Inject, Post, Provide } from '@midwayjs/core';
|
||||
import { BaseController, Constants } from '@certd/lib-server';
|
||||
import { CnameRecordService } from '../../../modules/cname/service/cname-record-service.js';
|
||||
import { CnameProviderService } from '../../../modules/cname/service/cname-provider-service.js';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
/**
|
||||
* 授权
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/cname/provider')
|
||||
@ApiTags(['pipeline-cname'])
|
||||
export class CnameProviderController extends BaseController {
|
||||
@Inject()
|
||||
service: CnameRecordService;
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
import { ALL, Body, Controller, Inject, Post, Provide, Query } from '@midwayjs/core';
|
||||
import { Constants, CrudController } from '@certd/lib-server';
|
||||
import { CnameRecordService } from '../../../modules/cname/service/cname-record-service.js';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
/**
|
||||
* 授权
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/cname/record')
|
||||
@ApiTags(['pipeline-cname'])
|
||||
export class CnameRecordController extends CrudController<CnameRecordService> {
|
||||
@Inject()
|
||||
service: CnameRecordService;
|
||||
|
||||
@@ -5,6 +5,7 @@ import { RoleService } from '../../../modules/sys/authority/service/role-service
|
||||
import { PipelineService } from '../../../modules/pipeline/service/pipeline-service.js';
|
||||
import { HistoryService } from '../../../modules/pipeline/service/history-service.js';
|
||||
import { CertInfoService } from '../../../modules/monitor/index.js';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
export type ChartItem = {
|
||||
name: string;
|
||||
@@ -30,6 +31,7 @@ export type UserStatisticCount = {
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/statistic/')
|
||||
@ApiTags(['dashboard'])
|
||||
export class StatisticController extends BaseController {
|
||||
@Inject()
|
||||
userService: UserService;
|
||||
|
||||
@@ -3,11 +3,13 @@ import { ALL, Body, Controller, Inject, Post, Provide } from '@midwayjs/core';
|
||||
import { AuthService } from '../../../modules/sys/authority/service/auth-service.js';
|
||||
import { ProjectService } from '../../../modules/sys/enterprise/service/project-service.js';
|
||||
import { ProjectMemberService } from '../../../modules/sys/enterprise/service/project-member-service.js';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
/**
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/enterprise/project')
|
||||
@ApiTags(['enterprise-project'])
|
||||
export class UserProjectController extends BaseController {
|
||||
@Inject()
|
||||
service: ProjectService;
|
||||
|
||||
@@ -4,10 +4,12 @@ import { ProjectMemberEntity } from "../../../modules/sys/enterprise/entity/proj
|
||||
import { ProjectMemberService } from "../../../modules/sys/enterprise/service/project-member-service.js";
|
||||
import { merge } from "lodash-es";
|
||||
import { ProjectService } from "../../../modules/sys/enterprise/service/project-service.js";
|
||||
import { ApiTags } from "@midwayjs/swagger";
|
||||
/**
|
||||
*/
|
||||
@Provide()
|
||||
@Controller("/api/enterprise/projectMember")
|
||||
@ApiTags(['enterprise-project-member'])
|
||||
export class ProjectMemberController extends CrudController<ProjectMemberEntity> {
|
||||
@Inject()
|
||||
service: ProjectMemberService;
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import { BaseController, Constants } from '@certd/lib-server';
|
||||
import { Controller, Inject, Post, Provide } from '@midwayjs/core';
|
||||
import { TransferService } from '../../../modules/sys/enterprise/service/transfer-service.js';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
/**
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/enterprise/transfer')
|
||||
@ApiTags(['enterprise-project'])
|
||||
export class TransferController extends BaseController {
|
||||
@Inject()
|
||||
service: TransferService;
|
||||
|
||||
@@ -2,11 +2,13 @@ import { Body, Controller, Inject, Post, Provide } from '@midwayjs/core';
|
||||
import { BaseController } from '@certd/lib-server';
|
||||
import { Constants } from '@certd/lib-server';
|
||||
import { EmailService } from '../../../modules/basic/service/email-service.js';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
/**
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/mine/email')
|
||||
@ApiTags(['mine'])
|
||||
export class EmailController extends BaseController {
|
||||
@Inject()
|
||||
emailService: EmailService;
|
||||
|
||||
@@ -3,11 +3,13 @@ import { ALL, Body, Controller, Inject, Post, Provide } from '@midwayjs/core';
|
||||
import { PasskeyService } from '../../../modules/login/service/passkey-service.js';
|
||||
import { RoleService } from '../../../modules/sys/authority/service/role-service.js';
|
||||
import { UserService } from '../../../modules/sys/authority/service/user-service.js';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
/**
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/mine')
|
||||
@ApiTags(['mine'])
|
||||
export class MineController extends BaseController {
|
||||
@Inject()
|
||||
userService: UserService;
|
||||
|
||||
@@ -2,9 +2,11 @@ import { ALL, Body, Controller, Inject, Post, Provide, RequestIP } from "@midway
|
||||
import { PasskeyService } from "../../../modules/login/service/passkey-service.js";
|
||||
import { BaseController, Constants } from "@certd/lib-server";
|
||||
import { UserService } from "../../../modules/sys/authority/service/user-service.js";
|
||||
import { ApiTags } from "@midwayjs/swagger";
|
||||
|
||||
@Provide()
|
||||
@Controller('/api/mine/passkey')
|
||||
@ApiTags(['mine'])
|
||||
export class MinePasskeyController extends BaseController {
|
||||
@Inject()
|
||||
passkeyService: PasskeyService;
|
||||
|
||||
@@ -5,11 +5,13 @@ import { UserTwoFactorSetting } from "../../../modules/mine/service/models.js";
|
||||
import { merge } from "lodash-es";
|
||||
import { TwoFactorService } from "../../../modules/mine/service/two-factor-service.js";
|
||||
import {isPlus} from "@certd/plus-core";
|
||||
import { ApiTags } from "@midwayjs/swagger";
|
||||
|
||||
/**
|
||||
*/
|
||||
@Provide()
|
||||
@Controller("/api/user/settings/twoFactor")
|
||||
@ApiTags(['mine'])
|
||||
export class UserTwoFactorSettingController extends BaseController {
|
||||
@Inject()
|
||||
service: UserSettingsService;
|
||||
|
||||
@@ -5,11 +5,13 @@ import { UserSettingsEntity } from "../../../modules/mine/entity/user-settings.j
|
||||
import { UserGrantSetting } from "../../../modules/mine/service/models.js";
|
||||
import { isPlus } from "@certd/plus-core";
|
||||
import { merge } from "lodash-es";
|
||||
import { ApiTags } from "@midwayjs/swagger";
|
||||
|
||||
/**
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/user/settings')
|
||||
@ApiTags(['mine'])
|
||||
export class UserSettingsController extends CrudController<UserSettingsService> {
|
||||
@Inject()
|
||||
service: UserSettingsService;
|
||||
|
||||
@@ -7,11 +7,13 @@ import { SelectQueryBuilder } from "typeorm";
|
||||
import { logger } from "@certd/basic";
|
||||
import fs from "fs";
|
||||
import dayjs from "dayjs";
|
||||
import { ApiTags } from "@midwayjs/swagger";
|
||||
|
||||
/**
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/monitor/cert')
|
||||
@ApiTags(['cert'])
|
||||
export class CertInfoController extends CrudController<CertInfoService> {
|
||||
@Inject()
|
||||
service: CertInfoService;
|
||||
|
||||
@@ -6,11 +6,13 @@ import { UserSiteMonitorSetting } from "../../../modules/mine/service/models.js"
|
||||
import { merge } from "lodash-es";
|
||||
import {SiteIpService} from "../../../modules/monitor/service/site-ip-service.js";
|
||||
import { utils } from "@certd/basic";
|
||||
import { ApiTags } from "@midwayjs/swagger";
|
||||
|
||||
/**
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/monitor/site')
|
||||
@ApiTags(['monitor'])
|
||||
export class SiteInfoController extends CrudController<SiteInfoService> {
|
||||
@Inject()
|
||||
service: SiteInfoService;
|
||||
|
||||
@@ -3,11 +3,13 @@ import { Constants, CrudController } from "@certd/lib-server";
|
||||
import { AuthService } from "../../../modules/sys/authority/service/auth-service.js";
|
||||
import { SiteIpService } from "../../../modules/monitor/service/site-ip-service.js";
|
||||
import { SiteInfoService } from "../../../modules/monitor/index.js";
|
||||
import { ApiTags } from "@midwayjs/swagger";
|
||||
|
||||
/**
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/monitor/site/ip')
|
||||
@ApiTags(['monitor'])
|
||||
export class SiteInfoController extends CrudController<SiteIpService> {
|
||||
@Inject()
|
||||
service: SiteIpService;
|
||||
|
||||
@@ -2,11 +2,13 @@ import { ALL, Body, Controller, Inject, Post, Provide, Query } from '@midwayjs/c
|
||||
import { Constants, CrudController } from '@certd/lib-server';
|
||||
import { AuthService } from '../../../modules/sys/authority/service/auth-service.js';
|
||||
import { OpenKeyService } from '../../../modules/open/service/open-key-service.js';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
/**
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/open/key')
|
||||
@ApiTags(['open'])
|
||||
export class OpenKeyController extends CrudController<OpenKeyService> {
|
||||
@Inject()
|
||||
service: OpenKeyService;
|
||||
|
||||
@@ -3,11 +3,13 @@ import { Constants, CrudController } from '@certd/lib-server';
|
||||
import { AccessService } from '@certd/lib-server';
|
||||
import { AuthService } from '../../../modules/sys/authority/service/auth-service.js';
|
||||
import { AccessDefine } from '@certd/pipeline';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
/**
|
||||
* 授权
|
||||
*/
|
||||
@Provide()
|
||||
@ApiTags(['pipeline-access'])
|
||||
@Controller('/api/pi/access')
|
||||
export class AccessController extends CrudController<AccessService> {
|
||||
@Inject()
|
||||
|
||||
@@ -5,9 +5,11 @@ import { StorageService } from '../../../modules/pipeline/service/storage-servic
|
||||
import { CertReader } from "@certd/plugin-cert";
|
||||
import { UserSettingsService } from '../../../modules/mine/service/user-settings-service.js';
|
||||
import { UserGrantSetting } from '../../../modules/mine/service/models.js';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
@Provide()
|
||||
@Controller('/api/pi/cert')
|
||||
@ApiTags(['pipeline-cert'])
|
||||
export class CertController extends BaseController {
|
||||
@Inject()
|
||||
pipelineService: PipelineService;
|
||||
|
||||
@@ -2,12 +2,14 @@ import { ALL, Controller, Inject, Post, Provide, Query } from '@midwayjs/core';
|
||||
import { DnsProviderService } from '../../../modules/pipeline/service/dns-provider-service.js';
|
||||
import { BaseController } from '@certd/lib-server';
|
||||
import { Constants } from '@certd/lib-server';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
/**
|
||||
* 插件
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/pi/dnsProvider')
|
||||
@ApiTags(['pipeline-dns-provider'])
|
||||
export class DnsProviderController extends BaseController {
|
||||
@Inject()
|
||||
service: DnsProviderService;
|
||||
|
||||
@@ -16,9 +16,11 @@ import {http, HttpRequestConfig, logger, mergeUtils, utils} from '@certd/basic';
|
||||
import {NotificationService} from '../../../modules/pipeline/service/notification-service.js';
|
||||
import {TaskServiceBuilder} from "../../../modules/pipeline/service/getter/task-service-getter.js";
|
||||
import { cloneDeep } from 'lodash-es';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
@Provide()
|
||||
@Controller('/api/pi/handle')
|
||||
@ApiTags(['pipeline-handle'])
|
||||
export class HandleController extends BaseController {
|
||||
@Inject()
|
||||
accessService: AccessService;
|
||||
|
||||
@@ -12,12 +12,14 @@ import { HistoryLogService } from "../../../modules/pipeline/service/history-log
|
||||
import { HistoryService } from "../../../modules/pipeline/service/history-service.js";
|
||||
import { PipelineService } from "../../../modules/pipeline/service/pipeline-service.js";
|
||||
import { AuthService } from "../../../modules/sys/authority/service/auth-service.js";
|
||||
import { ApiTags } from "@midwayjs/swagger";
|
||||
|
||||
/**
|
||||
* 证书
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/pi/history')
|
||||
@ApiTags(['pipeline-history'])
|
||||
export class HistoryController extends CrudController<HistoryService> {
|
||||
@Inject()
|
||||
service: HistoryService;
|
||||
|
||||
@@ -4,12 +4,14 @@ import { NotificationService } from '../../../modules/pipeline/service/notificat
|
||||
import { AuthService } from '../../../modules/sys/authority/service/auth-service.js';
|
||||
import { NotificationDefine } from '@certd/pipeline';
|
||||
import { checkPlus } from '@certd/plus-core';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
/**
|
||||
* 通知
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/pi/notification')
|
||||
@ApiTags(['pipeline-notification'])
|
||||
export class NotificationController extends CrudController<NotificationService> {
|
||||
@Inject()
|
||||
service: NotificationService;
|
||||
|
||||
@@ -6,11 +6,13 @@ import { PipelineEntity } from '../../../modules/pipeline/entity/pipeline.js';
|
||||
import { HistoryService } from '../../../modules/pipeline/service/history-service.js';
|
||||
import { PipelineService } from '../../../modules/pipeline/service/pipeline-service.js';
|
||||
import { AuthService } from '../../../modules/sys/authority/service/auth-service.js';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
/**
|
||||
* 证书
|
||||
*/
|
||||
@Provide()
|
||||
@ApiTags(['pipeline'])
|
||||
@Controller('/api/pi/pipeline')
|
||||
export class PipelineController extends CrudController<PipelineService> {
|
||||
@Inject()
|
||||
@@ -85,23 +87,23 @@ export class PipelineController extends CrudController<PipelineService> {
|
||||
}
|
||||
|
||||
|
||||
@Post('/add', { summary: Constants.per.authOnly })
|
||||
async add(@Body(ALL) bean: PipelineEntity) {
|
||||
const { projectId, userId } = await this.getProjectUserIdWrite()
|
||||
bean.userId = userId
|
||||
bean.projectId = projectId
|
||||
return super.add(bean);
|
||||
}
|
||||
// @Post('/add', { summary: Constants.per.authOnly })
|
||||
// async add(@Body(ALL) bean: PipelineEntity) {
|
||||
// const { projectId, userId } = await this.getProjectUserIdWrite()
|
||||
// bean.userId = userId
|
||||
// bean.projectId = projectId
|
||||
// return super.add(bean);
|
||||
// }
|
||||
|
||||
@Post('/update', { summary: Constants.per.authOnly })
|
||||
async update(@Body(ALL) bean) {
|
||||
await this.checkOwner(this.getService(), bean.id,"write",true);
|
||||
delete bean.userId;
|
||||
delete bean.projectId;
|
||||
return super.update(bean);
|
||||
}
|
||||
// @Post('/update', { summary: Constants.per.authOnly })
|
||||
// async update(@Body(ALL) bean) {
|
||||
// await this.checkOwner(this.getService(), bean.id,"write",true);
|
||||
// delete bean.userId;
|
||||
// delete bean.projectId;
|
||||
// return super.update(bean);
|
||||
// }
|
||||
|
||||
@Post('/save', { summary: Constants.per.authOnly })
|
||||
@Post('/save', { summary: Constants.per.authOnly,description: '新增/更新流水线' })
|
||||
async save(@Body(ALL) bean: { addToMonitorEnabled: boolean, addToMonitorDomains: string } & PipelineEntity) {
|
||||
const { userId ,projectId} = await this.getProjectUserIdWrite()
|
||||
if (bean.id > 0) {
|
||||
|
||||
@@ -2,12 +2,14 @@ import { ALL, Body, Controller, Inject, Post, Provide, Query } from '@midwayjs/c
|
||||
import { Constants, CrudController } from '@certd/lib-server';
|
||||
import { AuthService } from '../../../modules/sys/authority/service/auth-service.js';
|
||||
import { PipelineGroupService } from '../../../modules/pipeline/service/pipeline-group-service.js';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
/**
|
||||
* 通知
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/pi/pipeline/group')
|
||||
@ApiTags(['pipeline-group'])
|
||||
export class PipelineGroupController extends CrudController<PipelineGroupService> {
|
||||
@Inject()
|
||||
service: PipelineGroupService;
|
||||
|
||||
@@ -3,12 +3,14 @@ import { BaseController, Constants } from '@certd/lib-server';
|
||||
import { PluginService } from '../../../modules/plugin/service/plugin-service.js';
|
||||
import { PluginConfigService } from '../../../modules/plugin/service/plugin-config-service.js';
|
||||
import {pluginGroups} from "@certd/pipeline";
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
/**
|
||||
* 插件
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/pi/plugin')
|
||||
@ApiTags(['pipeline-plugin'])
|
||||
export class PluginController extends BaseController {
|
||||
@Inject()
|
||||
service: PluginService;
|
||||
|
||||
@@ -3,12 +3,14 @@ import { DomainParser } from '@certd/plugin-cert';
|
||||
import { ALL, Body, Controller, Inject, Post, Provide, Query } from '@midwayjs/core';
|
||||
import { SubDomainService } from "../../../modules/pipeline/service/sub-domain-service.js";
|
||||
import { TaskServiceBuilder } from '../../../modules/pipeline/service/getter/task-service-getter.js';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
/**
|
||||
* 子域名托管
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/pi/subDomain')
|
||||
@ApiTags(['pipeline-subdomain'])
|
||||
export class SubDomainController extends CrudController<SubDomainService> {
|
||||
@Inject()
|
||||
service: SubDomainService;
|
||||
|
||||
@@ -2,12 +2,14 @@ import {ALL, Body, Controller, Inject, Post, Provide, Query} from '@midwayjs/cor
|
||||
import {Constants, CrudController} from '@certd/lib-server';
|
||||
import { TemplateService } from '../../../modules/pipeline/service/template-service.js';
|
||||
import { checkPlus } from '@certd/plus-core';
|
||||
import { ApiTags } from '@midwayjs/swagger';
|
||||
|
||||
/**
|
||||
* 流水线模版
|
||||
*/
|
||||
@Provide()
|
||||
@Controller('/api/pi/template')
|
||||
@ApiTags(['pipeline-template'])
|
||||
export class TemplateController extends CrudController<TemplateService> {
|
||||
@Inject()
|
||||
service: TemplateService;
|
||||
|
||||
@@ -128,8 +128,11 @@ export class AuthorityMiddleware implements IWebMiddleware {
|
||||
|
||||
//校验 openKey
|
||||
const openKeyRes = await this.openKeyService.verifyOpenKey(openKey);
|
||||
const roles = await this.roleService.getRoleIdsByUserId(openKeyRes.userId);
|
||||
ctx.user = { id: openKeyRes.userId, roles };
|
||||
let roles = [1]
|
||||
if (!openKeyRes.projectId || openKeyRes.projectId <= 0) {
|
||||
roles = await this.roleService.getRoleIdsByUserId(openKeyRes.userId);
|
||||
}
|
||||
ctx.user = { id: openKeyRes.userId, roles ,projectId:openKeyRes.projectId};
|
||||
ctx.openKey = openKeyRes;
|
||||
return openKeyRes;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { BaseService, SysSettingsService } from '@certd/lib-server';
|
||||
import { BaseService, Constants, SysSettingsService } from '@certd/lib-server';
|
||||
import { Inject, Provide, Scope, ScopeEnum } from '@midwayjs/core';
|
||||
import { InjectEntityModel } from '@midwayjs/typeorm';
|
||||
import { LRUCache } from 'lru-cache';
|
||||
@@ -11,7 +11,7 @@ const projectCache = new LRUCache<string, any>({
|
||||
ttl: 1000 * 60 * 10,
|
||||
});
|
||||
|
||||
const ENTERPRISE_USER_ID = -1 //企业模式下 企业userId 固定为-1
|
||||
const ENTERPRISE_USER_ID = Constants.enterpriseUserId; //企业模式下 企业userId 固定为-1
|
||||
|
||||
@Provide()
|
||||
@Scope(ScopeEnum.Request, { allowDowngrade: true })
|
||||
@@ -182,6 +182,10 @@ export class ProjectService extends BaseService<ProjectEntity> {
|
||||
throw new Error('项目ID不能为空');
|
||||
}
|
||||
|
||||
if (userId === ENTERPRISE_USER_ID) {
|
||||
return true
|
||||
}
|
||||
|
||||
const cacheKey = `projectPermission:${projectId}:${userId}`
|
||||
let savedPermission = projectCache.get(cacheKey);
|
||||
|
||||
|
||||
8
pnpm-lock.yaml
generated
8
pnpm-lock.yaml
generated
@@ -1527,6 +1527,9 @@ importers:
|
||||
'@midwayjs/static-file':
|
||||
specifier: 3.20.13
|
||||
version: 3.20.13
|
||||
'@midwayjs/swagger':
|
||||
specifier: 3.20.11
|
||||
version: 3.20.11
|
||||
'@midwayjs/typeorm':
|
||||
specifier: 3.20.11
|
||||
version: 3.20.11
|
||||
@@ -3846,6 +3849,9 @@ packages:
|
||||
resolution: {integrity: sha512-aX67LvpIPYVWpuhuWSATgTBNvaNbvOFk7wbh0BTS0XRaO6vVieNe0mJoBXFkf89w1qExAHgIPHZDPIoEOHEBiQ==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
'@midwayjs/swagger@3.20.11':
|
||||
resolution: {integrity: sha512-ZF4BJC/ogVYVM4F3ve7Y9cZWDiM+TIAfUFyTNcSw3TgcLB+QnJVHkXSeKXL+PoUHHfE/cztboOk1UEfWxikIuA==}
|
||||
|
||||
'@midwayjs/typeorm@3.20.11':
|
||||
resolution: {integrity: sha512-QMCUwLhQStK1RuF+7hbpHoPOGT5DxIt4YalJNC8KtnaBMsIBVf4W+7dHbk9WpsBBx/GCraKfTYIoPA2wJWVj5g==}
|
||||
engines: {node: '>=12'}
|
||||
@@ -16271,6 +16277,8 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@midwayjs/swagger@3.20.11': {}
|
||||
|
||||
'@midwayjs/typeorm@3.20.11': {}
|
||||
|
||||
'@midwayjs/upload@3.20.13':
|
||||
|
||||
Reference in New Issue
Block a user