diff --git a/docs/quickstart/docker-install.md b/docs/quickstart/docker-install.md
index a467202d..ae26a3d1 100644
--- a/docs/quickstart/docker-install.md
+++ b/docs/quickstart/docker-install.md
@@ -23,11 +23,11 @@ Dashboard 修改)
# 进入仓库目录
cd orion-ops-pro
# 修改 docker-compose.yml (建议修改)
- # SECRET_KEY 加密秘钥
# MYSQL_USER mysql 用户名
# MYSQL_PASSWORD mysql 用户密码
# MYSQL_ROOT_PASSWORD mysql root 密码
# REDIS_PASSWORD redis 密码
+ # SECRET_KEY 加密秘钥
# 构建
docker compose build
```
diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostIdentityServiceImpl.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostIdentityServiceImpl.java
index fc4d6279..2227f632 100644
--- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostIdentityServiceImpl.java
+++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostIdentityServiceImpl.java
@@ -9,6 +9,7 @@ import com.orion.lang.utils.Strings;
import com.orion.ops.framework.biz.operator.log.core.utils.OperatorLogs;
import com.orion.ops.framework.common.constant.ErrorMessage;
import com.orion.ops.framework.common.security.PasswordModifier;
+import com.orion.ops.framework.common.utils.CryptoUtils;
import com.orion.ops.framework.common.utils.Valid;
import com.orion.ops.framework.redis.core.utils.RedisMaps;
import com.orion.ops.framework.redis.core.utils.barrier.CacheBarriers;
@@ -68,6 +69,11 @@ public class HostIdentityServiceImpl implements HostIdentityService {
HostIdentityDO record = HostIdentityConvert.MAPPER.to(request);
// 查询数据是否冲突
this.checkHostIdentityPresent(record);
+ // 加密密码
+ String password = record.getPassword();
+ if (!Strings.isBlank(password)) {
+ record.setPassword(CryptoUtils.encryptAsString(password));
+ }
// 插入
int effect = hostIdentityDAO.insert(record);
log.info("HostIdentityService-createHostIdentity effect: {}", effect);
diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/SystemRoleServiceImpl.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/SystemRoleServiceImpl.java
index 1d163ff9..f4932b16 100644
--- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/SystemRoleServiceImpl.java
+++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/SystemRoleServiceImpl.java
@@ -68,6 +68,7 @@ public class SystemRoleServiceImpl implements SystemRoleService {
// 查询编码是否存在
this.checkCodePresent(record);
// 插入
+ record.setStatus(RoleStatusEnum.ENABLED.getStatus());
int effect = systemRoleDAO.insert(record);
log.info("SystemRoleService-createSystemRole effect: {}, domain: {}", effect, JSON.toJSONString(record));
// 设置到缓存
diff --git a/orion-ops-ui/src/components/asset/host-group/host-group-tree.vue b/orion-ops-ui/src/components/asset/host-group/host-group-tree.vue
index 01a21501..e629feae 100644
--- a/orion-ops-ui/src/components/asset/host-group/host-group-tree.vue
+++ b/orion-ops-ui/src/components/asset/host-group/host-group-tree.vue
@@ -306,7 +306,7 @@
try {
const groups = await cacheStore.loadHostGroups(force);
emits('loading', true);
- treeData.value = groups;
+ treeData.value = groups || [];
} catch (e) {
} finally {
emits('loading', false);
diff --git a/orion-ops-ui/src/components/view/editor/core.ts b/orion-ops-ui/src/components/view/editor/core.ts
index 3b9cf24f..bf80c288 100644
--- a/orion-ops-ui/src/components/view/editor/core.ts
+++ b/orion-ops-ui/src/components/view/editor/core.ts
@@ -66,6 +66,8 @@ export interface Options {
overviewRulerBorder?: boolean;
// 颜色装饰器
colorDecorators?: boolean;
+ // 将溢出小部件显示为 fixed 编辑器较小的话需要设置为 true 否则 suggest 会被覆盖
+ fixedOverflowWidgets?: boolean;
[key: string]: unknown;
}
@@ -94,7 +96,7 @@ export const createDefaultOptions = (): Options => {
scrollBeyondLastLine: false,
overviewRulerBorder: false,
colorDecorators: true,
- suggest: true,
+ fixedOverflowWidgets: true,
};
};
diff --git a/orion-ops-ui/src/views/host/terminal/components/layout/layout-header.vue b/orion-ops-ui/src/views/host/terminal/components/layout/layout-header.vue
index 63a2c617..46e5512f 100644
--- a/orion-ops-ui/src/views/host/terminal/components/layout/layout-header.vue
+++ b/orion-ops-ui/src/views/host/terminal/components/layout/layout-header.vue
@@ -166,8 +166,8 @@
:deep(.arco-tabs-tab) {
height: 100%;
- margin: 0;
- padding: 0;
+ margin: 0 !important;
+ padding: 0 !important;
color: var(--color-header-text-1);
background: var(--color-bg-header-tabs);
position: relative;
diff --git a/orion-ops-ui/src/views/host/terminal/components/sftp/sftp-upload-modal.vue b/orion-ops-ui/src/views/host/terminal/components/sftp/sftp-upload-modal.vue
index 9ef464dd..ef1960aa 100644
--- a/orion-ops-ui/src/views/host/terminal/components/sftp/sftp-upload-modal.vue
+++ b/orion-ops-ui/src/views/host/terminal/components/sftp/sftp-upload-modal.vue
@@ -159,7 +159,7 @@
}
:deep(.arco-upload-list) {
- max-height: calc(100vh - 388px);
+ max-height: calc(100vh - 386px);
overflow-y: auto;
padding: 0 12px 0 0;
}
diff --git a/orion-ops-ui/src/views/host/terminal/components/transfer/transfer-drawer.vue b/orion-ops-ui/src/views/host/terminal/components/transfer/transfer-drawer.vue
index 62d31a19..44c198ec 100644
--- a/orion-ops-ui/src/views/host/terminal/components/transfer/transfer-drawer.vue
+++ b/orion-ops-ui/src/views/host/terminal/components/transfer/transfer-drawer.vue
@@ -13,8 +13,7 @@
:data="transferManager.transferList">
-
+
@@ -157,6 +156,11 @@
padding: 0 !important;
}
+ .list-empty {
+ flex-direction: column;
+ margin-top: 32px;
+ }
+
.transfer-item {
min-height: 36px;
padding: 8px 0;