diff --git a/ui/src/api/acl/permission.js b/ui/src/api/acl/permission.js
new file mode 100644
index 0000000..3d78a82
--- /dev/null
+++ b/ui/src/api/acl/permission.js
@@ -0,0 +1,56 @@
+import { axios } from '@/utils/request'
+
+const urlPrefix = '/v1/acl'
+
+export function getResourcePerms (resourceID) {
+ return axios({
+ url: urlPrefix + `/resources/${resourceID}/permissions`,
+ method: 'GET'
+ })
+}
+
+export function getResourceTypePerms (typeID) {
+ return axios({
+ url: urlPrefix + `/resource_types/${typeID}/perms`,
+ method: 'GET'
+ })
+}
+
+export function getResourceGroupPerms (resourceGroupID) {
+ return axios({
+ url: urlPrefix + `/resource_groups/${resourceGroupID}/permissions`,
+ method: 'GET'
+ })
+}
+
+export function setRoleResourcePerm (rid, resourceID, params) {
+ return axios({
+ url: urlPrefix + `/roles/${rid}/resources/${resourceID}/grant`,
+ method: 'POST',
+ data: params
+ })
+}
+
+export function setRoleResourceGroupPerm (rid, resourceGroupID, params) {
+ return axios({
+ url: urlPrefix + `/roles/${rid}/resource_groups/${resourceGroupID}/grant`,
+ method: 'POST',
+ data: params
+ })
+}
+
+export function deleteRoleResourcePerm (rid, resourceID, params) {
+ return axios({
+ url: urlPrefix + `/roles/${rid}/resources/${resourceID}/revoke`,
+ method: 'POST',
+ data: params
+ })
+}
+
+export function deleteRoleResourceGroupPerm (rid, resourceGroupID, params) {
+ return axios({
+ url: urlPrefix + `/roles/${rid}/resource_groups/${resourceGroupID}/revoke`,
+ method: 'POST',
+ data: params
+ })
+}
diff --git a/ui/src/views/cmdb/acl/module/permissionForm.vue b/ui/src/views/cmdb/acl/module/permissionForm.vue
new file mode 100644
index 0000000..c7be895
--- /dev/null
+++ b/ui/src/views/cmdb/acl/module/permissionForm.vue
@@ -0,0 +1,238 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ui/src/views/cmdb/acl/module/resourcePermForm.vue b/ui/src/views/cmdb/acl/module/resourcePermForm.vue
new file mode 100644
index 0000000..b5d7966
--- /dev/null
+++ b/ui/src/views/cmdb/acl/module/resourcePermForm.vue
@@ -0,0 +1,211 @@
+
+
+
+
+
+ 添加权限
+
+ 关闭
+
+
+
+
+
+
+ {{ item[0] }}:
+
+
+
+
+
+
+
+
+
+ {{ role.name }}
+
+
+
+
+
+ {{ perm.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ui/src/views/cmdb/acl/permissions.vue b/ui/src/views/cmdb/acl/permissions.vue
new file mode 100644
index 0000000..592fe2b
--- /dev/null
+++ b/ui/src/views/cmdb/acl/permissions.vue
@@ -0,0 +1,311 @@
+
+
+
+
+
+
+
+
setSelectedKeys(e.target.value ? [e.target.value] : [])"
+ @pressEnter="() => handleSearch(selectedKeys, confirm, column)"
+ style="width: 188px; margin-bottom: 8px; display: block;"
+ />
+ handleSearch(selectedKeys, confirm, column)"
+ icon="search"
+ size="small"
+ style="width: 90px; margin-right: 8px"
+ >搜索
+ handleReset(clearFilters, column)"
+ size="small"
+ style="width: 90px"
+ >重置
+
+
+
+
+
+
+ {{ fragment }}
+ {{ fragment }}
+
+
+ {{ text }}
+
+
+ {{ text }}
+
+
+ {{ perm.name }}
+
+
+
+
+ 编辑
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ui/src/views/cmdb/acl/roles.vue b/ui/src/views/cmdb/acl/roles.vue
index 7499382..d947a75 100644
--- a/ui/src/views/cmdb/acl/roles.vue
+++ b/ui/src/views/cmdb/acl/roles.vue
@@ -281,8 +281,8 @@ export default {
const msg = ((err.response || {}).data || {}).message || '请求出现错误,请稍后再试'
this.$message.error(`${msg}`)
},
- cancel () {
-
+ cancel (e) {
+ return false
}
},
diff --git a/ui/src/views/cmdb/acl/users.vue b/ui/src/views/cmdb/acl/users.vue
index 7f4581e..7099751 100644
--- a/ui/src/views/cmdb/acl/users.vue
+++ b/ui/src/views/cmdb/acl/users.vue
@@ -279,8 +279,10 @@ export default {
return formLayout === 'horizontal' ? {
wrapperCol: { span: 14, offset: 4 }
} : {}
+ },
+ cancel () {
+ return false
}
-
},
mounted () {
this.setScrollY()