@pengzi/kms 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.service.d.ts","sourceRoot":"","sources":["../../src/services/project.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"project.service.d.ts","sourceRoot":"","sources":["../../src/services/project.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAQ,MAAM,UAAU,CAAC;AAU/D,qBAAa,cAAc;IAEvB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,aAAa;gBAHb,WAAW,EAAE,iBAAiB,EAC9B,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa;IAGtC;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwDpF;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUrD;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAIxC;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBrE;;OAEG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAWzF"}
|
|
@@ -5,11 +5,14 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.ProjectService = void 0;
|
|
8
|
+
const types_1 = require("../types");
|
|
8
9
|
const project_model_1 = require("../models/project.model");
|
|
10
|
+
const user_model_1 = require("../models/user.model");
|
|
9
11
|
const key_derivation_1 = require("../core/key-derivation");
|
|
10
|
-
const types_1 = require("../types");
|
|
11
|
-
const constants_1 = require("../utils/constants");
|
|
12
12
|
const types_2 = require("../types");
|
|
13
|
+
const constants_1 = require("../utils/constants");
|
|
14
|
+
const types_3 = require("../types");
|
|
15
|
+
const bcrypt_1 = require("bcrypt");
|
|
13
16
|
class ProjectService {
|
|
14
17
|
projectRepo;
|
|
15
18
|
userRepo;
|
|
@@ -28,12 +31,12 @@ class ProjectService {
|
|
|
28
31
|
// 验证密码强度
|
|
29
32
|
const passwordValidation = (0, constants_1.validatePasswordStrength)(options.masterPassword);
|
|
30
33
|
if (!passwordValidation.valid) {
|
|
31
|
-
throw new
|
|
34
|
+
throw new types_2.ValidationError(passwordValidation.errors.join(', '));
|
|
32
35
|
}
|
|
33
36
|
// 验证项目名称唯一性
|
|
34
37
|
const existingProject = await this.projectRepo.findByProjectName(options.projectName);
|
|
35
38
|
if (existingProject) {
|
|
36
|
-
throw new
|
|
39
|
+
throw new types_2.ValidationError('Project name already exists');
|
|
37
40
|
}
|
|
38
41
|
// 派生主密钥
|
|
39
42
|
const salt = (0, key_derivation_1.generateSalt)();
|
|
@@ -45,6 +48,14 @@ class ProjectService {
|
|
|
45
48
|
const project = (0, project_model_1.createProject)(options, '', // 加密后的主密钥(可选实现)
|
|
46
49
|
masterKeyHash, salt);
|
|
47
50
|
await this.projectRepo.insertOne(project);
|
|
51
|
+
// 自动创建项目所有者用户(管理员)
|
|
52
|
+
// 使用 userId 作为用户名,这样 setCurrentUser 后可以直接使用
|
|
53
|
+
const ownerUser = (0, user_model_1.createUser)(project.projectId, {
|
|
54
|
+
username: userId, // 使用调用者的 userId 作为用户名
|
|
55
|
+
password: options.masterPassword,
|
|
56
|
+
roles: [types_1.Role.ADMIN]
|
|
57
|
+
}, await (0, bcrypt_1.hash)(options.masterPassword, 10));
|
|
58
|
+
await this.userRepo.insertOne(ownerUser);
|
|
48
59
|
// 记录审计日志
|
|
49
60
|
await this.auditService.logProjectCreated(project.projectId, userId, project.projectName, true);
|
|
50
61
|
return project;
|
|
@@ -55,7 +66,7 @@ class ProjectService {
|
|
|
55
66
|
async getProject(projectId) {
|
|
56
67
|
const project = await this.projectRepo.findByProjectId(projectId);
|
|
57
68
|
if (!project) {
|
|
58
|
-
throw new
|
|
69
|
+
throw new types_2.ProjectNotFoundError(projectId);
|
|
59
70
|
}
|
|
60
71
|
return project;
|
|
61
72
|
}
|
|
@@ -74,8 +85,8 @@ class ProjectService {
|
|
|
74
85
|
await this.auditService.log({
|
|
75
86
|
projectId,
|
|
76
87
|
userId,
|
|
77
|
-
action:
|
|
78
|
-
resourceType:
|
|
88
|
+
action: types_3.AuditAction.DELETE_PROJECT,
|
|
89
|
+
resourceType: types_3.ResourceType.PROJECT,
|
|
79
90
|
resourceId: projectId,
|
|
80
91
|
details: {
|
|
81
92
|
keyName: project.projectName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.service.js","sourceRoot":"","sources":["../../src/services/project.service.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"project.service.js","sourceRoot":"","sources":["../../src/services/project.service.ts"],"names":[],"mappings":"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"}
|