From fb85e168e767724712bf042ac0d852b86b10c04f Mon Sep 17 00:00:00 2001 From: ibuler Date: Wed, 7 Jun 2023 17:41:40 +0800 Subject: [PATCH 1/6] =?UTF-8?q?perf:=20=E7=94=A8=E6=88=B7=E7=99=BB?= =?UTF-8?q?=E5=BD=95=20ACL=20=E6=8C=AA=E5=88=B0=E6=8E=A7=E5=88=B6=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AutoDataForm/components/NestedField.vue | 4 + src/i18n/langs/en.json | 1 + src/i18n/langs/zh.json | 8 +- src/router/console/perms.js | 94 ++++++++++++++++++- src/router/console/sessions.js | 1 - src/router/console/users.js | 41 -------- src/utils/startup.js | 5 +- .../AssetLoginAclCreateUpdate.vue} | 8 +- .../AssetLoginAclDetail}/Detail.vue | 0 .../AssetLoginAclDetail}/index.vue | 0 .../AssetLoginAclList.vue} | 0 .../ConnectMethodAclCreateUpdate.vue | 71 ++++++++++++++ .../ConnectMethodAcl/ConnectMethodAclList.vue | 35 +++++++ .../acl/UserLoginACL/UserDetail/index.vue | 7 +- .../UserLoginACL/UserLoginACLCreateUpdate.vue | 65 ++----------- .../acl/UserLoginACL/UserLoginACLList.vue | 53 ++--------- .../acl/UserLoginACL/UserLoginACLTable.vue | 69 ++++++++++++++ .../users/User/UserDetail/UserLoginAcl.vue | 30 ++++++ src/views/users/User/UserDetail/index.vue | 6 +- 19 files changed, 337 insertions(+), 161 deletions(-) rename src/views/acl/{AssetAcl/AssetAclCreateUpdate.vue => AssetLoginAcl/AssetLoginAclCreateUpdate.vue} (96%) rename src/views/acl/{AssetAcl/AssetAclDetail => AssetLoginAcl/AssetLoginAclDetail}/Detail.vue (100%) rename src/views/acl/{AssetAcl/AssetAclDetail => AssetLoginAcl/AssetLoginAclDetail}/index.vue (100%) rename src/views/acl/{AssetAcl/AssetAclList.vue => AssetLoginAcl/AssetLoginAclList.vue} (100%) create mode 100644 src/views/acl/ConnectMethodAcl/ConnectMethodAclCreateUpdate.vue create mode 100644 src/views/acl/ConnectMethodAcl/ConnectMethodAclList.vue create mode 100644 src/views/acl/UserLoginACL/UserLoginACLTable.vue create mode 100644 src/views/users/User/UserDetail/UserLoginAcl.vue diff --git a/src/components/AutoDataForm/components/NestedField.vue b/src/components/AutoDataForm/components/NestedField.vue index d57dc56bb..934797aa6 100644 --- a/src/components/AutoDataForm/components/NestedField.vue +++ b/src/components/AutoDataForm/components/NestedField.vue @@ -65,6 +65,10 @@ export default { return fields } }, + mounted() { + console.log('Value is: ', this.value) + console.log('Fields: ', this.iFields) + }, methods: { objectToString(obj) { let data = '' diff --git a/src/i18n/langs/en.json b/src/i18n/langs/en.json index bf84b9c3a..f80ff3039 100644 --- a/src/i18n/langs/en.json +++ b/src/i18n/langs/en.json @@ -1151,6 +1151,7 @@ }, "route": { "": "", + "AppletDetail": "Remote apps", "CreateEndpoint": "Create endpoint", "UpdateEndpoint": "Update endpoint", diff --git a/src/i18n/langs/zh.json b/src/i18n/langs/zh.json index 249f716d7..6a3a50d5b 100644 --- a/src/i18n/langs/zh.json +++ b/src/i18n/langs/zh.json @@ -1150,6 +1150,11 @@ }, "route": { "": "", + "UserLoginAclList": "登录控制", + "UserLoginAclUpdate": "更新登录控制", + "ConnectMethodAclList": "连接方式", + "ConnectMethodAclCreate": "创建连接方式控制", + "ConnectMethodAclUpdate": "更新连接方式控制", "AppletDetail": "远程应用", "AppletHostDetail": "远程应用发布机详情", "AppletHostCreate": "添加远程应用发布机", @@ -1369,7 +1374,8 @@ "uploadZipTips": "请上传 zip 格式的文件", "HostDeployment": "发布机部署", "TerminalStat": "CPU/内存/磁盘", - "Endpoint": "端点" + "Endpoint": "端点", + "ConnectMethod": "连接方式" }, "sessions": { "SetToDefaultStorage": "设置为默认存储", diff --git a/src/router/console/perms.js b/src/router/console/perms.js index 8c20d0616..feace1a51 100644 --- a/src/router/console/perms.js +++ b/src/router/console/perms.js @@ -39,6 +39,7 @@ export default [ } ] }, + { path: 'login-asset-acls', component: empty, @@ -53,27 +54,27 @@ export default [ { path: '', name: 'AssetAclList', - component: () => import('@/views/acl/AssetAcl/AssetAclList'), + component: () => import('@/views/acl/AssetLoginAcl/AssetLoginAclList.vue'), meta: { title: i18n.t('route.AssetAclList') } }, { path: 'create', name: 'AssetAclCreate', - component: () => import('@/views/acl/AssetAcl/AssetAclCreateUpdate'), + component: () => import('@/views/acl/AssetLoginAcl/AssetLoginAclCreateUpdate.vue'), hidden: true, meta: { title: i18n.t('route.AssetAclCreate') } }, { path: ':id', name: 'AssetAclDetail', - component: () => import('@/views/acl/AssetAcl/AssetAclDetail/index'), + component: () => import('@/views/acl/AssetLoginAcl/AssetLoginAclDetail/index'), hidden: true, meta: { title: i18n.t('route.AssetAclDetail') } }, { path: ':id/update', name: 'AssetAclUpdate', - component: () => import('@/views/acl/AssetAcl/AssetAclCreateUpdate'), + component: () => import('@/views/acl/AssetLoginAcl/AssetLoginAclCreateUpdate.vue'), hidden: true, meta: { title: i18n.t('route.AssetAclUpdate') } } @@ -175,5 +176,90 @@ export default [ } } ] + }, + { + path: 'login-acls', + component: empty, + redirect: '', + meta: { + title: i18n.t('route.UserLoginAclList'), + app: 'acls', + resource: 'loginacl' + }, + children: [ + { + path: '', + name: 'UserLoginAclList', + component: () => import('@/views/acl/UserLoginACL/UserLoginACLList.vue'), + meta: { title: i18n.t('route.UserLoginAclList') } + }, + { + path: 'create', + name: 'UserLoginAclCreate', + component: () => import('@/views/acl/UserLoginACL/UserLoginACLCreateUpdate.vue'), + hidden: true, + meta: { + title: i18n.t('route.UserLoginAclCreate') + } + }, + { + path: ':id', + name: 'UserLoginAclDetail', + component: () => import('@/views/acl/UserLoginACL/UserDetail/index'), + hidden: true, + meta: { + title: i18n.t('route.AssetAclDetail'), + app: 'acls', + resource: 'loginacl' + } + }, + { + path: ':id/update', + name: 'UserLoginAclUpdate', + component: () => import('@/views/acl/UserLoginACL/UserLoginACLCreateUpdate.vue'), + hidden: true, + meta: { title: i18n.t('route.UserLoginAclUpdate') } + } + ] + }, + { + path: 'connect-method-acls', + component: empty, + redirect: '', + meta: { + title: i18n.t('route.ConnectMethodList'), + licenseRequired: true, + app: 'acls', + resource: 'connectmethodacl' + }, + children: [ + { + path: '', + name: 'ConnectMethodAclList', + component: () => import('@/views/acl/ConnectMethodAcl/ConnectMethodAclList.vue'), + meta: { title: i18n.t('route.ConnectMethodAclList') } + }, + { + path: 'create', + name: 'ConnectMethodAclCreate', + component: () => import('@/views/acl/ConnectMethodAcl/ConnectMethodAclCreateUpdate.vue'), + hidden: true, + meta: { title: i18n.t('route.ConnectMethodAclCreate') } + }, + { + path: ':id', + name: 'ConnectMethodAclDetail', + component: () => import('@/views/acl/AssetLoginAcl/AssetLoginAclDetail/index'), + hidden: true, + meta: { title: i18n.t('route.AssetAclDetail') } + }, + { + path: ':id/update', + name: 'ConnectMethodAclUpdate', + component: () => import('@/views/acl/ConnectMethodAcl/ConnectMethodAclCreateUpdate.vue'), + hidden: true, + meta: { title: i18n.t('route.ConnectMethodAclUpdate') } + } + ] } ] diff --git a/src/router/console/sessions.js b/src/router/console/sessions.js index 366adbbc4..6997519c3 100644 --- a/src/router/console/sessions.js +++ b/src/router/console/sessions.js @@ -2,7 +2,6 @@ import i18n from '@/i18n/i18n' import empty from '@/layout/empty' import { BASE_URL } from '@/utils/common' -// Todo: 放到系统设置中 export default [ { path: 'sessions', diff --git a/src/router/console/users.js b/src/router/console/users.js index 5fcb3f206..ca90d6c3b 100644 --- a/src/router/console/users.js +++ b/src/router/console/users.js @@ -44,47 +44,6 @@ export default [ name: 'UserDetail', hidden: true, meta: { title: i18n.t('route.UserDetail') } - }, - { - path: 'user-acl', - component: empty, - redirect: '', - hidden: true, - meta: { - title: i18n.t('route.UserLoginACLList'), - app: 'acls', - resource: 'loginacl' - }, - children: [ - { - path: '', - name: 'UserLoginACLList', - component: () => import('@/views/acl/UserLoginACL/UserLoginACLList'), - hidden: true, - meta: { title: i18n.t('route.UserLoginACLList') } - }, - { - path: 'create', - name: 'UserLoginACLCreate', - component: () => import('@/views/acl/UserLoginACL/UserLoginACLCreateUpdate'), - hidden: true, - meta: { title: i18n.t('route.UserLoginACLCreate') } - }, - { - path: ':id', - name: 'UserLoginACLDetail', - component: () => import('@/views/acl/UserLoginACL/UserDetail/index'), - hidden: true, - meta: { title: i18n.t('route.UserLoginACLDetail') } - }, - { - path: ':id/update', - name: 'UserLoginACLUpdate', - component: () => import('@/views/acl/UserLoginACL/UserLoginACLCreateUpdate'), - hidden: true, - meta: { title: i18n.t('route.UserLoginACLUpdate') } - } - ] } ] }, diff --git a/src/utils/startup.js b/src/utils/startup.js index 0110e91b3..3c20d4562 100644 --- a/src/utils/startup.js +++ b/src/utils/startup.js @@ -107,7 +107,10 @@ export async function generatePageRoutes({ to, from, next }) { hidden: true }] // dynamically add accessible routes - Vue.$log.debug('All routes:', accessRoutes) + Vue.$log.debug('All routes:', accessRoutes.reduce((acc, cur) => { + acc[cur.name] = cur + return acc + }, {})) router.addRoutes(accessRoutes) await store.dispatch('permission/generateViewRoutes', { to, from }) diff --git a/src/views/acl/AssetAcl/AssetAclCreateUpdate.vue b/src/views/acl/AssetLoginAcl/AssetLoginAclCreateUpdate.vue similarity index 96% rename from src/views/acl/AssetAcl/AssetAclCreateUpdate.vue rename to src/views/acl/AssetLoginAcl/AssetLoginAclCreateUpdate.vue index 495237b06..5a4c4736f 100644 --- a/src/views/acl/AssetAcl/AssetAclCreateUpdate.vue +++ b/src/views/acl/AssetLoginAcl/AssetLoginAclCreateUpdate.vue @@ -19,11 +19,9 @@ export default { return { initial: { accounts: ['@ALL'], - rules: [ - { - ip_group: ['*'] - } - ] + rules: { + ip_group: ['*'] + } }, fields: [ [this.$t('common.Basic'), ['name', 'priority']], diff --git a/src/views/acl/AssetAcl/AssetAclDetail/Detail.vue b/src/views/acl/AssetLoginAcl/AssetLoginAclDetail/Detail.vue similarity index 100% rename from src/views/acl/AssetAcl/AssetAclDetail/Detail.vue rename to src/views/acl/AssetLoginAcl/AssetLoginAclDetail/Detail.vue diff --git a/src/views/acl/AssetAcl/AssetAclDetail/index.vue b/src/views/acl/AssetLoginAcl/AssetLoginAclDetail/index.vue similarity index 100% rename from src/views/acl/AssetAcl/AssetAclDetail/index.vue rename to src/views/acl/AssetLoginAcl/AssetLoginAclDetail/index.vue diff --git a/src/views/acl/AssetAcl/AssetAclList.vue b/src/views/acl/AssetLoginAcl/AssetLoginAclList.vue similarity index 100% rename from src/views/acl/AssetAcl/AssetAclList.vue rename to src/views/acl/AssetLoginAcl/AssetLoginAclList.vue diff --git a/src/views/acl/ConnectMethodAcl/ConnectMethodAclCreateUpdate.vue b/src/views/acl/ConnectMethodAcl/ConnectMethodAclCreateUpdate.vue new file mode 100644 index 000000000..9f49c4fcf --- /dev/null +++ b/src/views/acl/ConnectMethodAcl/ConnectMethodAclCreateUpdate.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/views/acl/ConnectMethodAcl/ConnectMethodAclList.vue b/src/views/acl/ConnectMethodAcl/ConnectMethodAclList.vue new file mode 100644 index 000000000..0b220908e --- /dev/null +++ b/src/views/acl/ConnectMethodAcl/ConnectMethodAclList.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/views/acl/UserLoginACL/UserDetail/index.vue b/src/views/acl/UserLoginACL/UserDetail/index.vue index ff826782e..59bc548cb 100644 --- a/src/views/acl/UserLoginACL/UserDetail/index.vue +++ b/src/views/acl/UserLoginACL/UserDetail/index.vue @@ -1,5 +1,5 @@