diff --git a/cmdb-ui/src/modules/acl/lang/en.js b/cmdb-ui/src/modules/acl/lang/en.js new file mode 100644 index 0000000..ddde5a8 --- /dev/null +++ b/cmdb-ui/src/modules/acl/lang/en.js @@ -0,0 +1,125 @@ +const acl_en = { + date: 'Date', + operator: 'Operator', + resource: 'Resource', + resourceType: 'Resource Type', + addResourceType: 'Add Resource Type', + app: 'App', + operateTime: 'Operate Time', + permission: 'Permission', + permission_placeholder: 'please select permission', + permissionList: 'Permission List', + summaryPermissions: 'Summary of permissions', + source: 'Source', + username: 'Username', + username_placeholder: 'please input username', + userList: 'User List', + groupUser: 'Group User', + addUser: 'Add User', + subordinateUsers: 'Subordinate Users', + nickname: 'Nickname', + nickname_placeholder: 'please input nickname', + password: 'Password', + password_placeholder: 'please input password', + department: 'Department', + group: 'Group', + email: 'Email', + email_placeholder: 'please input email', + mobile: 'Mobile', + isBlock: 'Is Block', + block: 'Block', + joined_at: 'Joined At', + role: 'Role', + role_placeholder1: 'please input role', + role_placeholder2: 'please select role', + role_placeholder3: 'please select a role name, multiple choices are allowed', + allRole: 'All Roles', + visualRole: 'Virtual Role', + addVisualRole: 'Add Virtual Role', + inheritedFrom: 'Inherited from', + heir: 'Inherit Roles', + permissionChange: 'Permissions', + roleChange: 'Roles', + resourceChange: 'Resources', + resourceTypeChange: 'Resource Type', + trigger: 'Triggers', + triggerNameInput: 'Please enter trigger name', + triggerChange: 'Triggers', + roleManage: 'Roles', + userManage: 'Users', + appManage: 'Applications', + resourceManage: 'Resources', + history: 'Audits', + userSecret: 'Secrets', + none: 'none', + danger: 'Dangerous', + confirmDeleteApp: 'Are you sure you want to delete this app?', + revoke: 'Revoke', + convenient: 'Quick Grant', + group2: 'Group', + groupName: 'Group Name', + resourceName: 'Resource Name', + creator: 'Creator', + member: 'Members', + viewAuth: 'view Auth', + addTypeTips: 'There is no type information yet, please add the resource type first!', + addResource: 'Add Resource', + resourceList: 'Resource List', + confirmResetSecret: 'Are you sure you want to reset the user secrets?', + addTrigger: 'Add Trigger', + deleteTrigger: 'Delete Trigger', + applyTrigger: 'Apply Trigger', + cancelTrigger: 'Cancel Trigger', + enable: 'Enable', + disable: 'Disable', + viewMatchResult: 'View regular matching results', + confirmDeleteTrigger: 'Are you sure you want to delete this trigger?', + ruleApply: 'Apply', + triggerTip1: 'Are you sure you want to apply this trigger?', + triggerTip2: 'Cancel applying this trigger?', + appNameInput: 'Please enter an application name', + descInput: 'Please enter a description', + addApp: 'Add', + updateApp: 'Update', + cancel: 'Cancel', + typeName: 'Name', + typeNameInput: 'Please enter a type name', + resourceNameInput: 'Please enter resource name', + pressEnter: 'Press Enter to confirm filtering', + groupMember: 'Group Members:', + isGroup: 'Group?', + errorTips: 'Error message', + roleList: 'Role List', + virtual: 'Virtual', + resourceBatchTips: 'Please enter the resource name, separated by newlines', + memberManage: 'Members: ', + newResource: 'New Resource: ', + deleteResource: 'Delete Resource: ', + deleteResourceType: 'Delete Resource Type: ', + noChange: 'No change', + batchOperate: 'Batch Operations', + batchGrant: 'Batch Grant', + batchRevoke: 'Batch Revoke', + editPerm: 'Add authorization: ', + permInput: 'Please enter permission name', + resourceTypeName: 'Resource Type Name', + selectedParents: 'Optionally inherit roles', + isAppAdmin: 'is app admin', + addRole: 'Add Role', + roleRelation: 'Role Relation', + roleRelationAdd: 'Add Role Relation', + roleRelationDelete: 'Delete Role Relation', + role2: 'Role', + admin: 'Admin', + involvingRP: 'Involving resources and permissions', + startAt: 'Start Time', + endAt: 'End Time', + triggerTips1: 'Priority regular pattern (secondary wildcard)', + pleaseSelectType: 'Please select resource type', + apply: 'Apply', + mobileTips: 'Please enter the correct phone number', + remove: 'Remove', + deleteUserConfirm: 'Are you sure you want to remove this user?', + copyResource: 'Copy resource name' +} +export default acl_en diff --git a/cmdb-ui/src/modules/acl/lang/zh.js b/cmdb-ui/src/modules/acl/lang/zh.js new file mode 100644 index 0000000..626911f --- /dev/null +++ b/cmdb-ui/src/modules/acl/lang/zh.js @@ -0,0 +1,125 @@ +const acl_zh = { + date: '日期', + operator: '操作员', + resource: '资源', + resourceType: '资源类型', + addResourceType: '新增资源类型', + app: '应用', + operateTime: '操作时间', + permission: '权限', + permission_placeholder: '请选择权限', + permissionList: '权限列表', + summaryPermissions: '权限汇总', + source: '来源', + username: '用户名', + username_placeholder: '请输入用户名', + userList: '用户列表', + groupUser: '组用户', + addUser: '新增用户', + subordinateUsers: '下属用户', + nickname: '中文名', + nickname_placeholder: '请输入中文名', + password: '密码', + password_placeholder: '请输入密码', + department: '部门', + group: '小组', + email: '邮箱', + email_placeholder: '请输入邮箱', + mobile: '手机号', + isBlock: '是否锁定', + block: '锁定', + joined_at: '加入时间', + role: '角色名', + role_placeholder1: '请输入角色名', + role_placeholder2: '请选择角色名称', + role_placeholder3: '请选择角色名称,可多选', + allRole: '所有角色', + visualRole: '虚拟角色', + addVisualRole: '新增虚拟角色', + inheritedFrom: '继承自', + heir: '继承者', + permissionChange: '权限变更', + roleChange: '角色变更', + resourceChange: '资源变更', + resourceTypeChange: '资源类型变更', + trigger: '触发器', + triggerNameInput: '请输入触发器名', + triggerChange: '触发器变更', + roleManage: '角色管理', + userManage: '用户管理', + appManage: '应用管理', + resourceManage: '资源管理', + history: '操作审计', + userSecret: '用户密钥', + none: '无', + danger: '危险操作', + confirmDeleteApp: '确定要删除该App吗?', + revoke: '权限回收', + convenient: '便捷授权', + group2: '组', + groupName: '资源组名', + resourceName: '资源名', + creator: '创建者', + member: '成员', + viewAuth: '查看授权', + addTypeTips: '暂无类型信息,请先添加资源类型!', + addResource: '新增资源', + resourceList: '资源列表', + confirmResetSecret: '确定重置用户密钥?', + addTrigger: '新增触发器', + deleteTrigger: '删除触发器', + applyTrigger: '应用触发器', + cancelTrigger: '取消触发器', + enable: '启用', + disable: '禁用', + viewMatchResult: '查看正则匹配结果', + confirmDeleteTrigger: '确认删除该触发器吗?', + ruleApply: '规则应用', + triggerTip1: '是否确定应用该触发器?', + triggerTip2: '是否取消应用该触发器?', + appNameInput: '请输入应用名称', + descInput: '请输入描述', + addApp: '创建应用', + updateApp: '更新应用', + cancel: '撤销', + typeName: '类型名', + typeNameInput: '请输入类型名', + resourceNameInput: '请输入资源名', + pressEnter: '按回车确认筛选', + groupMember: '组成员:', + isGroup: '是否组', + errorTips: '错误提示', + roleList: '角色列表', + virtual: '虚拟', + resourceBatchTips: '请输入资源名,换行分隔', + memberManage: '成员管理:', + newResource: '新建资源:', + deleteResource: '删除资源:', + deleteResourceType: '删除资源类型:', + noChange: '没有修改', + batchOperate: '批量操作', + batchGrant: '批量授权', + batchRevoke: '批量权限回收', + editPerm: '添加授权:', + permInput: '请输入权限名', + resourceTypeName: '资源类型名', + selectedParents: '可选择继承角色', + isAppAdmin: '是否应用管理员', + addRole: '新增角色', + roleRelation: '角色关系', + roleRelationAdd: '添加角色关系', + roleRelationDelete: '删除角色关系', + role2: '角色', + admin: '管理员', + involvingRP: '涉及资源及权限', + startAt: '开始时间', + endAt: '结束时间', + triggerTips1: '优先正则模式(次通配符)', + pleaseSelectType: '请选择资源类型', + apply: '应用', + mobileTips: '请输入正确的手机号码', + remove: '移除', + deleteUserConfirm: '是否确定要移除该用户', + copyResource: '复制资源名' +} +export default acl_zh diff --git a/cmdb-ui/src/modules/acl/router/index.js b/cmdb-ui/src/modules/acl/router/index.js index c047a16..7e125ce 100644 --- a/cmdb-ui/src/modules/acl/router/index.js +++ b/cmdb-ui/src/modules/acl/router/index.js @@ -12,35 +12,35 @@ const genAppRoute = ({ name }) => { name: `${name}_roles_acl`, hideChildrenInMenu: true, component: () => import('../views/roles'), - meta: { title: '角色管理', icon: 'team', keepAlive: true } + meta: { title: 'acl.roleManage', icon: 'team', keepAlive: true } }, { path: `/acl/${name}/resources`, name: `${name}_resources_acl`, hideChildrenInMenu: true, component: () => import('../views/resources'), - meta: { title: '资源管理', icon: 'credit-card', keepAlive: false } + meta: { title: 'acl.resourceManage', icon: 'credit-card', keepAlive: false } }, { path: `/acl/${name}/resource_types`, name: `${name}_resource_types_acl`, hideChildrenInMenu: true, component: () => import('../views/resource_types'), - meta: { title: '资源类型', icon: 'file-text', keepAlive: true } + meta: { title: 'acl.resourceType', icon: 'file-text', keepAlive: true } }, { path: `/acl/${name}/trigger`, name: `${name}_trigger_acl`, hideChildrenInMenu: true, component: () => import('../views/trigger'), - meta: { title: '触发器', icon: 'clock-circle', keepAlive: true } + meta: { title: 'acl.trigger', icon: 'clock-circle', keepAlive: true } }, { path: `/acl/${name}/history`, name: `${name}_history_acl`, hideChildrenInMenu: true, component: () => import('../views/history'), - meta: { title: '操作审计', icon: 'search', keepAlive: false } + meta: { title: 'acl.history', icon: 'search', keepAlive: false } } ] } @@ -59,31 +59,31 @@ const genAclRoutes = async () => { path: `/acl/secret_key`, name: 'acl_secret_key', component: () => import('../views/secretKey'), - meta: { title: '用户密钥', icon: 'key' } + meta: { title: 'acl.userSecret', icon: 'key' } }, { path: `/acl/operate_history`, name: 'acl_operate_history', component: () => import('../views/operation_history/index.vue'), - meta: { title: '操作审计', icon: 'search', permission: ['acl_admin'] }, + meta: { title: 'acl.history', icon: 'search', permission: ['acl_admin'] } }, { path: `/acl/user`, name: 'acl_user', component: () => import('../views/users'), - meta: { title: '用户管理', icon: 'user', permission: ['acl_admin'] } + meta: { title: 'acl.userManage', icon: 'user', permission: ['acl_admin'] } }, { path: `/acl/roles`, name: `acl_roles`, component: () => import('../views/roles'), - meta: { title: '角色管理', icon: 'team', keepAlive: true, permission: ['acl_admin'] } + meta: { title: 'acl.roleManage', icon: 'team', keepAlive: true, permission: ['acl_admin'] } }, { path: `/acl/apps`, name: 'acl_apps', component: () => import('../views/apps'), - meta: { title: '应用管理', icon: 'appstore', permission: ['acl_admin'] } + meta: { title: 'acl.appManage', icon: 'appstore', permission: ['acl_admin'] } } ] } diff --git a/cmdb-ui/src/modules/acl/views/apps.vue b/cmdb-ui/src/modules/acl/views/apps.vue index b6f7b34..ff7cf89 100644 --- a/cmdb-ui/src/modules/acl/views/apps.vue +++ b/cmdb-ui/src/modules/acl/views/apps.vue @@ -11,7 +11,7 @@ :xs="24"> -
{{ app.description || '无' }}
+
{{ app.description || $t('none') }}
{{ app.name[0].toUpperCase() }}
- + - @@ -122,33 +77,6 @@ export default { resourceTypes: [], resourceTypePerms: [], resources: [], - // tableColumns: [ - // { - // title: '资源名', - // dataIndex: 'name', - // sorter: false, - // width: 150, - // // scopedSlots: { - // // customRender: 'nameSearchRender', - // // filterDropdown: 'filterDropdown', - // // filterIcon: 'filterIcon' - // // }, - // // onFilter: (value, record) => record.name && record.name.toLowerCase().includes(value.toLowerCase()), - // // onFilterDropdownVisibleChange: (visible) => { - // // if (visible) { - // // setTimeout(() => { - // // this.searchInput.focus() - // // }, 0) - // // } - // // } - // }, - // { - // title: '权限列表', - // dataIndex: 'permissions', - // width: 300, - // scopedSlots: { customRender: 'permissions' }, - // }, - // ], columnSearchText: { name: '', }, @@ -156,14 +84,14 @@ export default { }, computed: { ...mapState({ - windowHeight: state => state.windowHeight, + windowHeight: (state) => state.windowHeight, }), displayApps() { const roles = this.$store.state.user.roles.permissions if (roles.includes('acl_admin')) { return this.apps } - return this.apps.filter(item => { + return this.apps.filter((item) => { if (roles.includes(`${item.name}_admin`)) { return true } @@ -192,7 +120,7 @@ export default { }, async loadRoles(_appId) { const res = await searchRole({ app_id: _appId, page_size: 9999, is_all: true }) - this.roles = res.roles.filter(item => item.uid) + this.roles = res.roles.filter((item) => item.uid) }, async handleSwitchApp(appId) { this.currentAppId = appId @@ -218,7 +146,7 @@ export default { }, async loadResource() { this.spinning = true - const fil = this.roles.filter(role => role.uid === this.user.uid) + const fil = this.roles.filter((role) => role.uid === this.user.uid) if (!fil[0]) { return } diff --git a/cmdb-ui/src/modules/acl/views/module/permissionForm.vue b/cmdb-ui/src/modules/acl/views/module/permissionForm.vue index 59eb25a..8768117 100644 --- a/cmdb-ui/src/modules/acl/views/module/permissionForm.vue +++ b/cmdb-ui/src/modules/acl/views/module/permissionForm.vue @@ -1,29 +1,33 @@