mirror of
https://github.com/certd/certd.git
synced 2026-04-28 07:57:25 +08:00
chore: project prerelease
This commit is contained in:
@@ -843,6 +843,7 @@ export default {
|
|||||||
applyJoinConfirm: "Are you sure you want to apply to join this project?",
|
applyJoinConfirm: "Are you sure you want to apply to join this project?",
|
||||||
leaveConfirm: "Are you sure you want to leave this project?",
|
leaveConfirm: "Are you sure you want to leave this project?",
|
||||||
viewDetail: "View Detail",
|
viewDetail: "View Detail",
|
||||||
|
projectManage: "Project Manage",
|
||||||
},
|
},
|
||||||
addonSelector: {
|
addonSelector: {
|
||||||
select: "Select",
|
select: "Select",
|
||||||
|
|||||||
@@ -858,5 +858,6 @@ export default {
|
|||||||
applyJoinConfirm: "确认加入项目?",
|
applyJoinConfirm: "确认加入项目?",
|
||||||
leaveConfirm: "确认退出项目?",
|
leaveConfirm: "确认退出项目?",
|
||||||
viewDetail: "查看详情",
|
viewDetail: "查看详情",
|
||||||
|
projectManage: "项目管理",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="more">
|
<div class="more">
|
||||||
<a-button v-if="userStore.isAdmin" @click="goProjectManager">{{ t("certd.project.projectManager") }}</a-button>
|
<a-button v-if="userStore.isAdmin" type="primary" @click="goProjectManager">{{ t("certd.project.projectManage") }}</a-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<div class="project-container">
|
<div class="project-container">
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
<div class="helper">SaaS模式:每个用户管理自己的流水线和授权资源,独立使用。</div>
|
<div class="helper">SaaS模式:每个用户管理自己的流水线和授权资源,独立使用。</div>
|
||||||
<div class="helper">企业模式:通过项目合作管理流水线证书和授权资源,所有用户视为企业内部员工。</div>
|
<div class="helper">企业模式:通过项目合作管理流水线证书和授权资源,所有用户视为企业内部员工。</div>
|
||||||
<div class="helper text-red-500">建议在开始使用时固定一个合适的模式,之后就不要随意切换了。</div>
|
<div class="helper text-red-500">建议在开始使用时固定一个合适的模式,之后就不要随意切换了。</div>
|
||||||
|
<div v-if="settingsStore.isComm" class="helper text-red-500">商业版不建议设置为企业模式,除非你确定要转成企业内部使用</div>
|
||||||
<div><a @click="adminModeIntroOpen = true"> 更多管理模式介绍</a></div>
|
<div><a @click="adminModeIntroOpen = true"> 更多管理模式介绍</a></div>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ typeorm:
|
|||||||
default:
|
default:
|
||||||
type: mysql # mariadb
|
type: mysql # mariadb
|
||||||
host: localhost
|
host: localhost
|
||||||
port: 3309
|
port: 3308
|
||||||
username: root
|
username: root
|
||||||
password: root
|
password: root
|
||||||
database: certd
|
database: certd
|
||||||
|
|||||||
@@ -0,0 +1,118 @@
|
|||||||
|
|
||||||
|
CREATE TABLE `cd_project`
|
||||||
|
(
|
||||||
|
`id` bigint PRIMARY KEY AUTO_INCREMENT NOT NULL,
|
||||||
|
`user_id` bigint NOT NULL,
|
||||||
|
`name` varchar(512) NOT NULL,
|
||||||
|
`admin_id` bigint NOT NULL,
|
||||||
|
`disabled` boolean NOT NULL DEFAULT false,
|
||||||
|
`is_system` boolean NOT NULL DEFAULT false,
|
||||||
|
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
CREATE INDEX `index_project_user_id` ON `cd_project` (`user_id`);
|
||||||
|
CREATE INDEX `index_project_admin_id` ON `cd_project` (`admin_id`);
|
||||||
|
INSERT INTO cd_project (id, user_id, `admin_id`, `name`, `disabled`, `is_system`) VALUES (1, -1, 1,'default', false,false);
|
||||||
|
|
||||||
|
ALTER TABLE cd_cert_info ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX `index_cert_project_id` ON `cd_cert_info` (`project_id`);
|
||||||
|
|
||||||
|
ALTER TABLE cd_site_info ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX `index_site_project_id` ON `cd_site_info` (`project_id`);
|
||||||
|
|
||||||
|
ALTER TABLE cd_site_ip ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX `index_site_ip_project_id` ON `cd_site_ip` (`project_id`);
|
||||||
|
|
||||||
|
ALTER TABLE cd_open_key ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX `index_open_key_project_id` ON `cd_open_key` (`project_id`);
|
||||||
|
|
||||||
|
ALTER TABLE cd_access ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX `index_access_project_id` ON `cd_access` (`project_id`);
|
||||||
|
|
||||||
|
ALTER TABLE cd_addon ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX `index_addon_project_id` ON `cd_addon` (`project_id`);
|
||||||
|
|
||||||
|
ALTER TABLE pi_pipeline ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX `index_pipeline_project_id` ON `pi_pipeline` (`project_id`);
|
||||||
|
|
||||||
|
ALTER TABLE pi_pipeline_group ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX `index_pipeline_group_project_id` ON `pi_pipeline_group` (`project_id`);
|
||||||
|
|
||||||
|
ALTER TABLE pi_storage ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX `index_storage_project_id` ON `pi_storage` (`project_id`);
|
||||||
|
|
||||||
|
ALTER TABLE pi_notification ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX `index_notification_project_id` ON `pi_notification` (`project_id`);
|
||||||
|
|
||||||
|
ALTER TABLE pi_history ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX `index_history_project_id` ON `pi_history` (`project_id`);
|
||||||
|
|
||||||
|
ALTER TABLE pi_history_log ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX `index_history_log_project_id` ON `pi_history_log` (`project_id`);
|
||||||
|
|
||||||
|
ALTER TABLE pi_template ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX `index_template_project_id` ON `pi_template` (`project_id`);
|
||||||
|
|
||||||
|
ALTER TABLE pi_sub_domain ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX `index_sub_domain_project_id` ON `pi_sub_domain` (`project_id`);
|
||||||
|
|
||||||
|
ALTER TABLE cd_cname_record ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX `index_cname_record_project_id` ON `cd_cname_record` (`project_id`);
|
||||||
|
|
||||||
|
ALTER TABLE cd_domain ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX `index_domain_project_id` ON `cd_domain` (`project_id`);
|
||||||
|
|
||||||
|
ALTER TABLE user_settings ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX `index_user_settings_project_id` ON `user_settings` (`project_id`);
|
||||||
|
|
||||||
|
ALTER TABLE cd_group ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX `index_group_project_id` ON `cd_group` (`project_id`);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE `cd_project_member`
|
||||||
|
(
|
||||||
|
`id` bigint PRIMARY KEY AUTO_INCREMENT NOT NULL,
|
||||||
|
`user_id` bigint NOT NULL,
|
||||||
|
`project_id` bigint NOT NULL,
|
||||||
|
`permission` varchar(128) NOT NULL DEFAULT 'read',
|
||||||
|
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE cd_project_member ADD COLUMN status varchar(128);
|
||||||
|
|
||||||
|
CREATE INDEX `index_project_member_user_id` ON `cd_project_member` (`user_id`);
|
||||||
|
CREATE INDEX `index_project_member_project_id` ON `cd_project_member` (`project_id`);
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE `cd_audit_log`
|
||||||
|
(
|
||||||
|
`id` bigint PRIMARY KEY AUTO_INCREMENT NOT NULL,
|
||||||
|
`user_id` bigint NOT NULL,
|
||||||
|
`username` varchar(128) NOT NULL,
|
||||||
|
`project_id` bigint NOT NULL,
|
||||||
|
`project_name` varchar(512) NOT NULL,
|
||||||
|
`type` varchar(128) NOT NULL,
|
||||||
|
`action` varchar(128) NOT NULL DEFAULT 'read',
|
||||||
|
`content` longtext NOT NULL,
|
||||||
|
`ip_address` varchar(128) NOT NULL,
|
||||||
|
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
CREATE INDEX `index_audit_log_user_id` ON `cd_audit_log` (`user_id`);
|
||||||
|
CREATE INDEX `index_audit_log_project_id` ON `cd_audit_log` (`project_id`);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE cd_site_info ADD COLUMN ip_address varchar(128);
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE `cd_project` ENGINE = InnoDB;
|
||||||
|
ALTER TABLE `cd_project_member` ENGINE = InnoDB;
|
||||||
|
ALTER TABLE `cd_audit_log` ENGINE = InnoDB;
|
||||||
@@ -0,0 +1,116 @@
|
|||||||
|
|
||||||
|
CREATE TABLE "cd_project"
|
||||||
|
(
|
||||||
|
"id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY NOT NULL,
|
||||||
|
"user_id" bigint NOT NULL,
|
||||||
|
"name" varchar(512) NOT NULL,
|
||||||
|
"admin_id" bigint NOT NULL,
|
||||||
|
"disabled" boolean NOT NULL DEFAULT (false),
|
||||||
|
"is_system" boolean NOT NULL DEFAULT (false),
|
||||||
|
"create_time" timestamp NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
||||||
|
"update_time" timestamp NOT NULL DEFAULT (CURRENT_TIMESTAMP)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
CREATE INDEX "index_project_user_id" ON "cd_project" ("user_id");
|
||||||
|
CREATE INDEX "index_project_admin_id" ON "cd_project" ("admin_id");
|
||||||
|
INSERT INTO cd_project (id, user_id, "admin_id", "name", "disabled", "is_system") VALUES (1, -1, 1,'default', false,false);
|
||||||
|
select setval('cd_project_id_seq', 1);
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE cd_cert_info ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX "index_cert_project_id" ON "cd_cert_info" ("project_id");
|
||||||
|
|
||||||
|
ALTER TABLE cd_site_info ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX "index_site_project_id" ON "cd_site_info" ("project_id");
|
||||||
|
|
||||||
|
ALTER TABLE cd_site_ip ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX "index_site_ip_project_id" ON "cd_site_ip" ("project_id");
|
||||||
|
|
||||||
|
ALTER TABLE cd_open_key ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX "index_open_key_project_id" ON "cd_open_key" ("project_id");
|
||||||
|
|
||||||
|
ALTER TABLE cd_access ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX "index_access_project_id" ON "cd_access" ("project_id");
|
||||||
|
|
||||||
|
ALTER TABLE cd_addon ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX "index_addon_project_id" ON "cd_addon" ("project_id");
|
||||||
|
|
||||||
|
ALTER TABLE pi_pipeline ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX "index_pipeline_project_id" ON "pi_pipeline" ("project_id");
|
||||||
|
|
||||||
|
ALTER TABLE pi_pipeline_group ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX "index_pipeline_group_project_id" ON "pi_pipeline_group" ("project_id");
|
||||||
|
|
||||||
|
ALTER TABLE pi_storage ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX "index_storage_project_id" ON "pi_storage" ("project_id");
|
||||||
|
|
||||||
|
ALTER TABLE pi_notification ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX "index_notification_project_id" ON "pi_notification" ("project_id");
|
||||||
|
|
||||||
|
ALTER TABLE pi_history ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX "index_history_project_id" ON "pi_history" ("project_id");
|
||||||
|
|
||||||
|
ALTER TABLE pi_history_log ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX "index_history_log_project_id" ON "pi_history_log" ("project_id");
|
||||||
|
|
||||||
|
ALTER TABLE pi_template ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX "index_template_project_id" ON "pi_template" ("project_id");
|
||||||
|
|
||||||
|
ALTER TABLE pi_sub_domain ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX "index_sub_domain_project_id" ON "pi_sub_domain" ("project_id");
|
||||||
|
|
||||||
|
ALTER TABLE cd_cname_record ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX "index_cname_record_project_id" ON "cd_cname_record" ("project_id");
|
||||||
|
|
||||||
|
ALTER TABLE cd_domain ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX "index_domain_project_id" ON "cd_domain" ("project_id");
|
||||||
|
|
||||||
|
ALTER TABLE user_settings ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX "index_user_settings_project_id" ON "user_settings" ("project_id");
|
||||||
|
|
||||||
|
ALTER TABLE cd_group ADD COLUMN project_id bigint;
|
||||||
|
CREATE INDEX "index_group_project_id" ON "cd_group" ("project_id");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE "cd_project_member"
|
||||||
|
(
|
||||||
|
"id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY NOT NULL,
|
||||||
|
"user_id" bigint NOT NULL,
|
||||||
|
"project_id" bigint NOT NULL,
|
||||||
|
"permission" varchar(128) NOT NULL DEFAULT ('read'),
|
||||||
|
"create_time" timestamp NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
||||||
|
"update_time" timestamp NOT NULL DEFAULT (CURRENT_TIMESTAMP)
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE cd_project_member ADD COLUMN status varchar(128);
|
||||||
|
|
||||||
|
CREATE INDEX "index_project_member_user_id" ON "cd_project_member" ("user_id");
|
||||||
|
CREATE INDEX "index_project_member_project_id" ON "cd_project_member" ("project_id");
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE "cd_audit_log"
|
||||||
|
(
|
||||||
|
"id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY NOT NULL,
|
||||||
|
"user_id" bigint NOT NULL,
|
||||||
|
"username" varchar(128) NOT NULL,
|
||||||
|
"project_id" bigint NOT NULL,
|
||||||
|
"project_name" varchar(512) NOT NULL,
|
||||||
|
"type" varchar(128) NOT NULL,
|
||||||
|
"action" varchar(128) NOT NULL DEFAULT ('read'),
|
||||||
|
"content" text NOT NULL,
|
||||||
|
"ip_address" varchar(128) NOT NULL,
|
||||||
|
"create_time" timestamp NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
||||||
|
"update_time" timestamp NOT NULL DEFAULT (CURRENT_TIMESTAMP)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
CREATE INDEX "index_audit_log_user_id" ON "cd_audit_log" ("user_id");
|
||||||
|
CREATE INDEX "index_audit_log_project_id" ON "cd_audit_log" ("project_id");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE cd_site_info ADD COLUMN ip_address varchar(128);
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@ CREATE TABLE "cd_project"
|
|||||||
|
|
||||||
CREATE INDEX "index_project_user_id" ON "cd_project" ("user_id");
|
CREATE INDEX "index_project_user_id" ON "cd_project" ("user_id");
|
||||||
CREATE INDEX "index_project_admin_id" ON "cd_project" ("admin_id");
|
CREATE INDEX "index_project_admin_id" ON "cd_project" ("admin_id");
|
||||||
INSERT INTO cd_project (id, user_id, "admin_id", "name", "disabled") VALUES (1, -1, 1,'default', false,false);
|
INSERT INTO cd_project (id, user_id, "admin_id", "name", "disabled", "is_system") VALUES (1, -1, 1,'default', false,false);
|
||||||
|
|
||||||
ALTER TABLE cd_cert_info ADD COLUMN project_id integer;
|
ALTER TABLE cd_cert_info ADD COLUMN project_id integer;
|
||||||
CREATE INDEX "index_cert_project_id" ON "cd_cert_info" ("project_id");
|
CREATE INDEX "index_cert_project_id" ON "cd_cert_info" ("project_id");
|
||||||
|
|||||||
@@ -69,7 +69,10 @@ export class ProjectService extends BaseService<ProjectEntity> {
|
|||||||
async getUserProjects(userId: number) {
|
async getUserProjects(userId: number) {
|
||||||
|
|
||||||
const memberList = await this.projectMemberService.getByUserId(userId, 'approved');
|
const memberList = await this.projectMemberService.getByUserId(userId, 'approved');
|
||||||
const projectIds = memberList.map(item => item.projectId);
|
let projectIds = memberList.map(item => item.projectId);
|
||||||
|
if (!projectIds || projectIds.length === 0) {
|
||||||
|
projectIds = [0]
|
||||||
|
}
|
||||||
const projectList = await this.repository.createQueryBuilder('project')
|
const projectList = await this.repository.createQueryBuilder('project')
|
||||||
.where(' project.disabled = false')
|
.where(' project.disabled = false')
|
||||||
.where(' project.userId = :userId', { userId: ENTERPRISE_USER_ID })
|
.where(' project.userId = :userId', { userId: ENTERPRISE_USER_ID })
|
||||||
|
|||||||
Reference in New Issue
Block a user