Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
xiaofang li
MeterSphere
Commits
f80b341d
Commit
f80b341d
authored
3 years ago
by
shiziyuan9527
Browse files
Options
Download
Email Patches
Plain Diff
refactor: 项目设置权限管理
parent
cfc34040
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
backend/src/main/resources/permission.json
+63
-0
backend/src/main/resources/permission.json
frontend/src/business/components/api/test/components/jar/JarConfigList.vue
+2
-2
...ness/components/api/test/components/jar/JarConfigList.vue
frontend/src/business/components/common/head/HeaderTopMenus.vue
+1
-1
...nd/src/business/components/common/head/HeaderTopMenus.vue
frontend/src/business/components/project/head/ProjectHeaderMenus.vue
+5
-5
...c/business/components/project/head/ProjectHeaderMenus.vue
frontend/src/business/components/project/home/ProjectHome.vue
+19
-13
...tend/src/business/components/project/home/ProjectHome.vue
frontend/src/business/components/project/menu/file/ResourceManage.vue
+2
-1
.../business/components/project/menu/file/ResourceManage.vue
frontend/src/business/components/project/menu/function/CustomFunction.vue
+5
-3
...iness/components/project/menu/function/CustomFunction.vue
frontend/src/i18n/en-US.js
+1
-1
frontend/src/i18n/en-US.js
frontend/src/i18n/zh-CN.js
+1
-1
frontend/src/i18n/zh-CN.js
frontend/src/i18n/zh-TW.js
+1
-1
frontend/src/i18n/zh-TW.js
with
100 additions
and
28 deletions
+100
-28
backend/src/main/resources/permission.json
+
63
-
0
View file @
f80b341d
...
...
@@ -330,6 +330,61 @@
"name"
:
"查询操作日志"
,
"resourceId"
:
"PROJECT_OPERATING_LOG"
},
{
"id"
:
"PROJECT_FILE:READ+JAR"
,
"name"
:
"查询jar包"
,
"resourceId"
:
"PROJECT_FILE"
},
{
"id"
:
"PROJECT_FILE:READ+UPLOAD+JAR"
,
"name"
:
"上传jar包"
,
"resourceId"
:
"PROJECT_FILE"
},
{
"id"
:
"PROJECT_FILE:READ+DELETE+JAR"
,
"name"
:
"删除jar包"
,
"resourceId"
:
"PROJECT_FILE"
},
{
"id"
:
"PROJECT_FILE:READ+FILE"
,
"name"
:
"查询文件"
,
"resourceId"
:
"PROJECT_FILE"
},
{
"id"
:
"PROJECT_FILE:READ+UPLOAD+FILE"
,
"name"
:
"上传文件"
,
"resourceId"
:
"PROJECT_FILE"
},
{
"id"
:
"PROJECT_FILE:READ+DELETE+FILE"
,
"name"
:
"删除文件"
,
"resourceId"
:
"PROJECT_FILE"
},
{
"id"
:
"PROJECT_CUSTOM_CODE:READ"
,
"name"
:
"查询"
,
"resourceId"
:
"PROJECT_CUSTOM_CODE"
},
{
"id"
:
"PROJECT_CUSTOM_CODE:READ+CREATE"
,
"name"
:
"创建"
,
"resourceId"
:
"PROJECT_CUSTOM_CODE"
},
{
"id"
:
"PROJECT_CUSTOM_CODE:READ+EDIT"
,
"name"
:
"编辑"
,
"resourceId"
:
"PROJECT_CUSTOM_CODE"
},
{
"id"
:
"PROJECT_CUSTOM_CODE:READ+DELETE"
,
"name"
:
"删除"
,
"resourceId"
:
"PROJECT_CUSTOM_CODE"
},
{
"id"
:
"PROJECT_CUSTOM_CODE:READ+COPY"
,
"name"
:
"复制"
,
"resourceId"
:
"PROJECT_CUSTOM_CODE"
},
{
"id"
:
"PROJECT_TRACK_CASE:READ"
,
"name"
:
"查询用例"
,
...
...
@@ -817,6 +872,14 @@
"id"
:
"PROJECT_OPERATING_LOG"
,
"name"
:
"操作日志"
},
{
"id"
:
"PROJECT_CUSTOM_CODE"
,
"name"
:
"自定义代码片段"
},
{
"id"
:
"PROJECT_FILE"
,
"name"
:
"文件管理"
},
{
"id"
:
"PROJECT_TRACK_CASE"
,
"name"
:
"测试用例"
...
...
This diff is collapsed.
Click to expand it.
frontend/src/business/components/api/test/components/jar/JarConfigList.vue
+
2
-
2
View file @
f80b341d
...
...
@@ -7,7 +7,7 @@
:create-tip=
"$t('project.create')"
>
<template
v-slot:button
>
<ms-table-button
icon=
"el-icon-box"
v-permission=
"['PROJECT_
MANAGER:READ+EDIT
']"
v-permission=
"['PROJECT_
FILE:READ+UPLOAD+JAR
']"
:content=
"$t('api_test.jar_config.title')"
@
click=
"openJarConfig"
/>
</
template
>
</ms-table-header>
...
...
@@ -34,7 +34,7 @@
<
template
v-slot:default=
"scope"
>
<div>
<ms-table-operator-button
:tip=
"$t('commons.delete')"
icon=
"el-icon-delete"
type=
"danger"
@
exec=
"handleDelete(scope.row.id)"
/>
@
exec=
"handleDelete(scope.row.id)"
v-permission=
"['PROJECT_FILE:READ+DELETE+JAR']"
/>
</div>
</
template
>
</el-table-column>
...
...
This diff is collapsed.
Click to expand it.
frontend/src/business/components/common/head/HeaderTopMenus.vue
+
1
-
1
View file @
f80b341d
...
...
@@ -28,7 +28,7 @@
</el-menu-item>
<el-menu-item
index=
"/project"
onselectstart=
"return false"
v-permission=
"['PROJECT_USER:READ', 'PROJECT_ENVIRONMENT:READ', 'PROJECT_OPERATING_LOG:READ']"
>
v-permission=
"['PROJECT_USER:READ', 'PROJECT_ENVIRONMENT:READ', 'PROJECT_OPERATING_LOG:READ'
, 'PROJECT_FILE:READ+JAR', 'PROJECT_FILE:READ+FILE', 'PROJECT_CUSTOM_CODE:READ'
]"
>
{{
$t
(
'
commons.project_setting
'
)
}}
</el-menu-item>
...
...
This diff is collapsed.
Click to expand it.
frontend/src/business/components/project/head/ProjectHeaderMenus.vue
+
5
-
5
View file @
f80b341d
...
...
@@ -9,24 +9,24 @@
<el-menu-item
:index=
"'/project/home'"
>
项目信息
</el-menu-item>
<el-menu-item
:index=
"'/project/member'"
v-permission=
"['PROJECT_
TRACK_CA
SE:READ']"
>
<el-menu-item
:index=
"'/project/member'"
v-permission=
"['PROJECT_
U
SE
R
:READ']"
>
项目成员
</el-menu-item>
<el-menu-item
:index=
"'/project/env'"
v-permission=
"['PROJECT_
TRACK_REVIEW
:READ']"
<el-menu-item
:index=
"'/project/env'"
v-permission=
"['PROJECT_
ENVIRONMENT
:READ']"
popper-class=
"submenu"
>
项目环境
</el-menu-item>
<el-menu-item
:index=
"'/project/file/manage'"
v-permission=
"['PROJECT_
TRACK_PLAN:READ
']"
<el-menu-item
:index=
"'/project/file/manage'"
v-permission=
"['PROJECT_
FILE:READ+JAR', 'PROJECT_FILE:READ+FILE
']"
popper-class=
"submenu"
>
文件管理
</el-menu-item>
<el-menu-item
:index=
"'/project/log'"
popper-class=
"submenu"
v-permission=
"['PROJECT_
TRACK_ISSUE
:READ']"
>
<el-menu-item
:index=
"'/project/log'"
popper-class=
"submenu"
v-permission=
"['PROJECT_
OPERATING_LOG
:READ']"
>
操作日志
</el-menu-item>
<el-menu-item
:index=
"'/project/code/segment'"
popper-class=
"submenu"
v-permission=
"['PROJECT_
TRACK_ISSU
E:READ']"
>
<el-menu-item
:index=
"'/project/code/segment'"
popper-class=
"submenu"
v-permission=
"['PROJECT_
CUSTOM_COD
E:READ']"
>
自定义代码片段
</el-menu-item>
...
...
This diff is collapsed.
Click to expand it.
frontend/src/business/components/project/home/ProjectHome.vue
+
19
-
13
View file @
f80b341d
...
...
@@ -32,46 +32,46 @@
<div
style=
"position: absolute; top: 50%; left: 50%;transform: translate(-50%, -50%);"
>
<div
class=
"div-item"
>
<div
style=
"float: left"
>
<i
class=
"el-icon-user-solid icon-color"
@
click=
"click('/project/member')"
></i>
<i
class=
"el-icon-user-solid icon-color"
@
click=
"click('/project/member'
, ['PROJECT_USER:READ']
)"
></i>
</div>
<div
style=
"float: left"
>
<span
class=
"title"
@
click=
"click('/project/member')"
>
项目成员
</span><br/>
<span
class=
"title"
@
click=
"click('/project/member'
, ['PROJECT_USER:READ']
)"
>
项目成员
</span><br/>
<span
class=
"desc"
>
添加项目成员以及项目成员管理
</span>
</div>
</div>
<div
class=
"div-item"
>
<div
style=
"float: left"
>
<i
class=
"el-icon-s-platform icon-color"
@
click=
"click('/project/env')"
></i>
<i
class=
"el-icon-s-platform icon-color"
@
click=
"click('/project/env'
, ['PROJECT_ENVIRONMENT:READ']
)"
></i>
</div>
<div
style=
"float: left"
>
<span
class=
"title"
@
click=
"click('/project/env')"
>
项目环境
</span><br/>
<span
class=
"title"
@
click=
"click('/project/env'
, ['PROJECT_ENVIRONMENT:READ']
)"
>
项目环境
</span><br/>
<span
class=
"desc"
>
项目运行环境以及全局配置
</span>
</div>
</div>
<div
class=
"div-item"
>
<div
style=
"float: left"
>
<i
class=
"el-icon-s-cooperation icon-color"
@
click=
"click('/project/file/manage')"
></i>
<i
class=
"el-icon-s-cooperation icon-color"
@
click=
"click('/project/file/manage'
, ['PROJECT_FILE:READ+JAR', 'PROJECT_FILE:READ+FILE']
)"
></i>
</div>
<div
style=
"float: left"
>
<span
class=
"title"
@
click=
"click('/project/file/manage')"
>
文件管理
</span><br/>
<span
class=
"title"
@
click=
"click('/project/file/manage'
, ['PROJECT_FILE:READ+JAR', 'PROJECT_FILE:READ+FILE']
)"
>
文件管理
</span><br/>
<span
class=
"desc"
>
jar包以及资源文件管理
</span>
</div>
</div>
<div
class=
"div-item"
>
<div
style=
"float: left"
>
<i
class=
"el-icon-s-flag icon-color"
@
click=
"click('/project/log')"
></i>
<i
class=
"el-icon-s-flag icon-color"
@
click=
"click('/project/log'
, ['PROJECT_OPERATING_LOG:READ']
)"
></i>
</div>
<div
style=
"float: left"
>
<span
class=
"title"
@
click=
"click('/project/log')"
>
操作记录
</span><br/>
<span
class=
"title"
@
click=
"click('/project/log'
, ['PROJECT_OPERATING_LOG:READ']
)"
>
操作记录
</span><br/>
<span
class=
"desc"
>
项目全部操作过程
</span>
</div>
</div>
<div
class=
"div-item"
>
<div
style=
"float: left"
>
<i
class=
"el-icon-document icon-color"
@
click=
"click('/project/code/segment')"
></i>
<i
class=
"el-icon-document icon-color"
@
click=
"click('/project/code/segment'
, ['PROJECT_CUSTOM_CODE:READ']
)"
></i>
</div>
<div
style=
"float: left"
>
<span
class=
"title"
@
click=
"click('/project/code/segment')"
>
自定义代码片段
</span><br/>
<span
class=
"title"
@
click=
"click('/project/code/segment'
, ['PROJECT_CUSTOM_CODE:READ']
)"
>
自定义代码片段
</span><br/>
<span
class=
"desc"
>
自定义代码片段
</span>
</div>
</div>
...
...
@@ -90,7 +90,7 @@
<
script
>
import
MsContainer
from
"
@/business/components/common/components/MsContainer
"
;
import
MsMainContainer
from
"
@/business/components/common/components/MsMainContainer
"
;
import
{
getCurrentProjectID
}
from
"
@/common/js/utils
"
;
import
{
getCurrentProjectID
,
hasPermission
}
from
"
@/common/js/utils
"
;
import
ProjectList
from
"
@/business/components/project/menu/ProjectList
"
;
export
default
{
name
:
"
ProjectHome
"
,
...
...
@@ -108,8 +108,14 @@ export default {
}
},
methods
:
{
click
(
str
)
{
this
.
$router
.
push
(
str
);
click
(
str
,
permissions
)
{
for
(
let
permission
of
permissions
)
{
if
(
hasPermission
(
permission
))
{
this
.
$router
.
push
(
str
);
return
;
}
}
this
.
$warning
(
"
无操作权限!
"
);
},
edit
()
{
this
.
$refs
.
projectList
.
edit
(
this
.
project
);
...
...
This diff is collapsed.
Click to expand it.
frontend/src/business/components/project/menu/file/ResourceManage.vue
+
2
-
1
View file @
f80b341d
...
...
@@ -16,7 +16,7 @@
:on-exceed=
"handleExceed"
>
<ms-table-button
icon=
"el-icon-upload2"
:content=
"$t('load_test.upload_file')"
/>
:content=
"$t('load_test.upload_file')"
v-permission=
"['PROJECT_FILE:READ+UPLOAD+FILE']"
/>
</el-upload>
</
template
>
</ms-table-header>
...
...
@@ -67,6 +67,7 @@
icon=
"el-icon-delete"
type=
"danger"
:tip=
"$t('commons.delete')"
v-permission=
"['PROJECT_FILE:READ+DELETE+FILE']"
@
exec=
"handleDelete(scope.row)"
>
</ms-table-operator-button>
</
template
>
...
...
This diff is collapsed.
Click to expand it.
frontend/src/business/components/project/menu/function/CustomFunction.vue
+
5
-
3
View file @
f80b341d
...
...
@@ -7,7 +7,8 @@
<ms-table-header
:show-create=
"false"
:condition.sync=
"condition"
@
search=
"init"
:tip=
"$t('project.code_segment.search')"
>
<template
v-slot:button
>
<ms-table-button
icon=
"el-icon-circle-plus-outline"
:content=
"$t('project.code_segment.create')"
@
click=
"handleCreate"
/>
<ms-table-button
icon=
"el-icon-circle-plus-outline"
:content=
"$t('project.code_segment.create')"
@
click=
"handleCreate"
v-permission=
"['PROJECT_CUSTOM_CODE:READ+CREATE']"
/>
</
template
>
</ms-table-header>
</template>
...
...
@@ -41,10 +42,11 @@
<el-table-column
:label=
"$t('commons.operating')"
>
<
template
v-slot:default=
"scope"
>
<div>
<ms-table-operator
@
editClick=
"handleEdit(scope.row)"
@
deleteClick=
"handleDelete(scope.row)"
>
<ms-table-operator
@
editClick=
"handleEdit(scope.row)"
@
deleteClick=
"handleDelete(scope.row)"
:edit-permission=
"['PROJECT_CUSTOM_CODE:READ+EDIT']"
:delete-permission=
"['PROJECT_CUSTOM_CODE:READ+DELETE']"
>
<template
v-slot:middle
>
<ms-table-operator-button
:tip=
"$t('commons.copy')"
icon=
"el-icon-copy-document"
type=
"info"
@
exec=
"handleCopy(scope.row)"
/>
@
exec=
"handleCopy(scope.row)"
v-permission=
"['PROJECT_CUSTOM_CODE:READ+COPY']"
/>
</
template
>
</ms-table-operator>
</div>
...
...
This diff is collapsed.
Click to expand it.
frontend/src/i18n/en-US.js
+
1
-
1
View file @
f80b341d
...
...
@@ -812,7 +812,7 @@ export default {
enable_validate_tip
:
"
No request available
"
,
copy
:
"
Copy Test
"
,
jar_config
:
{
title
:
"
The J
ar
P
ackage
Management
"
,
title
:
"
Upload j
ar
p
ackage
"
,
jar_file
:
"
Jar package
"
,
delete_tip
:
"
The deletion takes effect after the service is restarted
"
,
file_exist
:
"
The name already exists in the project
"
,
...
...
This diff is collapsed.
Click to expand it.
frontend/src/i18n/zh-CN.js
+
1
-
1
View file @
f80b341d
...
...
@@ -818,7 +818,7 @@ export default {
copy
:
"
复制测试
"
,
batch_add_parameter
:
"
格式:参数名:参数值 <br/> 如:Accept-Encoding:utf-8
"
,
jar_config
:
{
title
:
"
jar包
管理
"
,
title
:
"
上传
jar包
"
,
jar_file
:
"
jar包
"
,
delete_tip
:
"
删除需重启服务后生效
"
,
file_exist
:
"
该项目下已存在该jar包
"
,
...
...
This diff is collapsed.
Click to expand it.
frontend/src/i18n/zh-TW.js
+
1
-
1
View file @
f80b341d
...
...
@@ -818,7 +818,7 @@ export default {
copy
:
"
復制測試
"
,
batch_add_parameter
:
"
格式:參數名:參數值 <br/> 如:Accept-Encoding:utf-8
"
,
jar_config
:
{
title
:
"
jar包
管理
"
,
title
:
"
上傳
jar包
"
,
jar_file
:
"
jar包
"
,
delete_tip
:
"
刪除需重啟服務後生效
"
,
file_exist
:
"
該項目下已存在該jar包
"
,
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment