feat: 支持审计日志,操作日志

This commit is contained in:
xiaojunnuo
2026-07-12 02:29:54 +08:00
parent 4250d0e266
commit f2855d6dac
83 changed files with 1252 additions and 1341 deletions
@@ -4,6 +4,7 @@ import { DomainService } from "../../../modules/cert/service/domain-service.js";
import { checkPlus } from "@certd/plus-core";
import { ApiTags } from "@midwayjs/swagger";
import { parseDomainByPsl } from "@certd/plugin-lib";
import { AuditType } from "../../../modules/sys/enterprise/service/audit-constants.js";
/**
* 授权
@@ -19,6 +20,10 @@ export class DomainController extends CrudController<DomainService> {
return this.service;
}
getAuditType(): string {
return AuditType.domain;
}
@Post("/page", { description: Constants.per.authOnly, summary: "查询域名分页列表" })
async page(@Body(ALL) body: any) {
const { projectId, userId } = await this.getProjectUserIdRead();
@@ -58,7 +63,9 @@ export class DomainController extends CrudController<DomainService> {
const { projectId, userId } = await this.getProjectUserIdRead();
bean.projectId = projectId;
bean.userId = userId;
return super.add(bean);
const res = await super.add(bean);
this.auditLog({ content: `新增了域名「${bean.domain}` });
return res;
}
@Post("/update", { description: Constants.per.authOnly, summary: "更新域名" })
@@ -66,7 +73,9 @@ export class DomainController extends CrudController<DomainService> {
await this.checkOwner(this.getService(), bean.id, "write");
delete bean.userId;
delete bean.projectId;
return super.update(bean);
const res = await super.update(bean);
this.auditLog({ content: `修改了域名「${bean.domain}` });
return res;
}
@Post("/info", { description: Constants.per.authOnly, summary: "查询域名详情" })
@@ -78,13 +87,16 @@ export class DomainController extends CrudController<DomainService> {
@Post("/delete", { description: Constants.per.authOnly, summary: "删除域名" })
async delete(@Query("id") id: number) {
await this.checkOwner(this.getService(), id, "write");
return super.delete(id);
const res = await super.delete(id);
this.auditLog({ content: `删除了域名(ID:${id})` });
return res;
}
@Post("/deleteByIds", { description: Constants.per.authOnly, summary: "批量删除域名" })
async deleteByIds(@Body(ALL) body: any) {
const { projectId, userId } = await this.getProjectUserIdRead();
await this.service.batchDelete(body.ids, userId, projectId);
this.auditLog({ content: `批量删除了${body.ids.length}条域名` });
return this.ok();
}
@@ -99,6 +111,7 @@ export class DomainController extends CrudController<DomainService> {
projectId: projectId,
};
await this.service.startDomainImportTask(req);
this.auditLog({ content: "开始了域名导入任务" });
return this.ok();
}
@@ -123,6 +136,7 @@ export class DomainController extends CrudController<DomainService> {
key,
};
await this.service.deleteDomainImportTask(req);
this.auditLog({ content: "删除了域名导入任务" });
return this.ok();
}
@@ -139,6 +153,7 @@ export class DomainController extends CrudController<DomainService> {
key,
};
const item = await this.service.saveDomainImportTask(req);
this.auditLog({ content: "保存了域名导入任务" });
return this.ok(item);
}
@@ -149,6 +164,7 @@ export class DomainController extends CrudController<DomainService> {
userId: userId,
projectId: projectId,
});
this.auditLog({ content: "开始了同步域名过期时间任务" });
return this.ok();
}
@Post("/sync/expiration/status", { description: Constants.per.authOnly, summary: "查询同步域名过期时间任务状态" })
@@ -169,6 +185,7 @@ export class DomainController extends CrudController<DomainService> {
projectId: projectId,
setting: { ...body },
});
this.auditLog({ content: "保存了域名监控设置" });
return this.ok();
}