{isPlus ? "当前专业版已激活,到期时间" + dayjs(userStore.plusInfo.expireTime).format("YYYY-MM-DD") : ""}
{isPlus ? `当前${vipLabel}已激活,到期时间` + dayjs(userStore.plusInfo.expireTime).format("YYYY-MM-DD") : ""}
站点ID:
diff --git a/packages/ui/certd-client/src/plugin/fast-crud/index.tsx b/packages/ui/certd-client/src/plugin/fast-crud/index.tsx
index fc2b588fe..9a67325d3 100644
--- a/packages/ui/certd-client/src/plugin/fast-crud/index.tsx
+++ b/packages/ui/certd-client/src/plugin/fast-crud/index.tsx
@@ -350,7 +350,7 @@ function install(app: App, options: any = {}) {
}
columnProps.column.resizable = true;
if (!columnProps.column.width) {
- columnProps.column.width = 100;
+ columnProps.column.width = -1;
} else if (typeof columnProps.column?.width === "string" && columnProps.column.width.indexOf("px") > -1) {
columnProps.column.width = parseInt(columnProps.column.width.replace("px", ""));
}
diff --git a/packages/ui/certd-client/src/store/modules/user.ts b/packages/ui/certd-client/src/store/modules/user.ts
index 46d14fd20..1d9d9a582 100644
--- a/packages/ui/certd-client/src/store/modules/user.ts
+++ b/packages/ui/certd-client/src/store/modules/user.ts
@@ -23,6 +23,7 @@ interface PlusInfo {
vipType: string;
expireTime: number;
isPlus: boolean;
+ isComm: boolean;
}
const USER_INFO_KEY = "USER_INFO";
@@ -46,10 +47,21 @@ export const useUserStore = defineStore({
return this.token || LocalStorage.get(TOKEN_KEY);
},
isAdmin(): boolean {
- return this.getUserInfo?.id === 1;
+ return this.getUserInfo.id === 1 || this.getUserInfo.roles?.includes(1);
},
isPlus(): boolean {
return this.plusInfo?.isPlus && this.plusInfo?.expireTime > new Date().getTime();
+ },
+ isComm(): boolean {
+ return this.plusInfo?.isComm && this.plusInfo?.expireTime > new Date().getTime();
+ },
+ vipLabel(): string {
+ const vipLabelMap: any = {
+ free: "免费版",
+ vip: "专业版",
+ comm: "商业版"
+ };
+ return vipLabelMap[this.plusInfo?.vipType];
}
},
actions: {
diff --git a/packages/ui/certd-client/src/views/sys/authority/user/crud.tsx b/packages/ui/certd-client/src/views/sys/authority/user/crud.tsx
index d41cb0bdf..a97b7c1e1 100644
--- a/packages/ui/certd-client/src/views/sys/authority/user/crud.tsx
+++ b/packages/ui/certd-client/src/views/sys/authority/user/crud.tsx
@@ -40,7 +40,7 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti
type: "text",
form: { show: false }, // 表单配置
column: {
- width: 70,
+ width: 100,
sorter: true
}
},
@@ -74,7 +74,8 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti
},
editForm: { component: { disabled: true } },
column: {
- sorter: true
+ sorter: true,
+ width: 200
}
},
password: {
diff --git a/packages/ui/certd-server/.env.development.yaml b/packages/ui/certd-server/.env.development.yaml
index ca3756b3c..0db333ae3 100644
--- a/packages/ui/certd-server/.env.development.yaml
+++ b/packages/ui/certd-server/.env.development.yaml
@@ -17,18 +17,21 @@
# password: root
# database: postgres
-
+typeorm:
+ dataSource:
+ default:
+ database: './data/db-comm.sqlite'
+#plus:
+# server:
+# baseUrls: ['https://api.ai.handsfree.work', 'https://api.ai.docmirror.cn']
plus:
server:
- baseUrls: ['https://api.ai.handsfree.work', 'https://api.ai.docmirror.cn']
-#typeorm:
-# dataSource:
-# default:
-# database: './data/db2.sqlite'
-#account:
-# server:
-# baseUrl: 'http://127.0.0.1:1017/subject'
+ baseUrls: ['http://127.0.0.1:11007']
account:
server:
- baseUrl: 'https://ai.handsfree.work/subject'
+ baseUrl: 'http://127.0.0.1:1017/subject'
+
+#account:
+# server:
+# baseUrl: 'https://ai.handsfree.work/subject'
diff --git a/packages/ui/certd-server/package.json b/packages/ui/certd-server/package.json
index ddb5f217b..8694a0e56 100644
--- a/packages/ui/certd-server/package.json
+++ b/packages/ui/certd-server/package.json
@@ -24,6 +24,7 @@
"@alicloud/pop-core": "^1.7.10",
"@certd/acme-client": "^1.25.9",
"@certd/lib-huawei": "^1.25.9",
+ "@certd/commcial-core": "^1.25.9",
"@certd/lib-jdcloud": "^1.25.9",
"@certd/lib-k8s": "^1.25.9",
"@certd/midway-flyway-js": "^1.25.9",
diff --git a/packages/ui/certd-server/src/modules/authority/controller/role-controller.ts b/packages/ui/certd-server/src/modules/authority/controller/role-controller.ts
index 014cf6335..a6bd8c670 100644
--- a/packages/ui/certd-server/src/modules/authority/controller/role-controller.ts
+++ b/packages/ui/certd-server/src/modules/authority/controller/role-controller.ts
@@ -49,6 +49,9 @@ export class RoleController extends CrudController {
@Query('id')
id: number
) {
+ if (id === 1) {
+ throw new Error('不能删除默认的管理员角色');
+ }
return await super.delete(id);
}
diff --git a/packages/ui/certd-server/src/modules/authority/controller/user-controller.ts b/packages/ui/certd-server/src/modules/authority/controller/user-controller.ts
index edfba457b..dc710cc77 100644
--- a/packages/ui/certd-server/src/modules/authority/controller/user-controller.ts
+++ b/packages/ui/certd-server/src/modules/authority/controller/user-controller.ts
@@ -73,8 +73,11 @@ export class UserController extends CrudController {
@Post('/delete', { summary: 'sys:auth:user:remove' })
async delete(
@Query('id')
- id : number
+ id: number
) {
+ if (id === 1) {
+ throw new Error('不能删除默认的管理员用户');
+ }
return await super.delete(id);
}
diff --git a/packages/ui/certd-server/src/modules/authority/entity/user.ts b/packages/ui/certd-server/src/modules/authority/entity/user.ts
index 246474c8b..842dc8d1e 100644
--- a/packages/ui/certd-server/src/modules/authority/entity/user.ts
+++ b/packages/ui/certd-server/src/modules/authority/entity/user.ts
@@ -66,4 +66,6 @@ export class UserEntity {
static of(user: Partial) {
return Object.assign(new UserEntity(), user);
}
+
+ roleIds: number[];
}
diff --git a/packages/ui/certd-server/src/modules/mine/controller/mine-controller.ts b/packages/ui/certd-server/src/modules/mine/controller/mine-controller.ts
index 2ffd4bb87..803456938 100644
--- a/packages/ui/certd-server/src/modules/mine/controller/mine-controller.ts
+++ b/packages/ui/certd-server/src/modules/mine/controller/mine-controller.ts
@@ -3,6 +3,7 @@ import { BaseController } from '../../../basic/base-controller.js';
import { Constants } from '../../../basic/constants.js';
import { UserService } from '../../authority/service/user-service.js';
import { getPlusInfo } from '@certd/pipeline';
+import { RoleService } from '../../authority/service/role-service.js';
/**
*/
@@ -11,10 +12,13 @@ import { getPlusInfo } from '@certd/pipeline';
export class MineController extends BaseController {
@Inject()
userService: UserService;
+ @Inject()
+ roleService: RoleService;
@Post('/info', { summary: Constants.per.authOnly })
public async info() {
const userId = this.getUserId();
const user = await this.userService.info(userId);
+ user.roleIds = await this.roleService.getRoleIdsByUserId(userId);
delete user.password;
return this.ok(user);
}
diff --git a/packages/ui/certd-server/src/modules/mine/entity/user-settings.ts b/packages/ui/certd-server/src/modules/mine/entity/user-settings.ts
index 84cd1f2a8..fe682ebaf 100644
--- a/packages/ui/certd-server/src/modules/mine/entity/user-settings.ts
+++ b/packages/ui/certd-server/src/modules/mine/entity/user-settings.ts
@@ -27,4 +27,5 @@ export class UserSettingsEntity {
default: () => 'CURRENT_TIMESTAMP',
})
updateTime: Date;
+
}