Commit f80b341d authored by shiziyuan9527's avatar shiziyuan9527
Browse files

refactor: 项目设置权限管理

parent cfc34040
Showing with 100 additions and 28 deletions
+100 -28
......@@ -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": "测试用例"
......
......@@ -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>
......
......@@ -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>
......
......@@ -9,24 +9,24 @@
<el-menu-item :index="'/project/home'">
项目信息
</el-menu-item>
<el-menu-item :index="'/project/member'" v-permission="['PROJECT_TRACK_CASE:READ']">
<el-menu-item :index="'/project/member'" v-permission="['PROJECT_USER: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_ISSUE:READ']">
<el-menu-item :index="'/project/code/segment'" popper-class="submenu" v-permission="['PROJECT_CUSTOM_CODE:READ']">
自定义代码片段
</el-menu-item>
......
......@@ -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);
......
......@@ -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>
......
......@@ -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>
......
......@@ -812,7 +812,7 @@ export default {
enable_validate_tip: "No request available",
copy: "Copy Test",
jar_config: {
title: "The Jar Package Management",
title: "Upload jar package",
jar_file: "Jar package",
delete_tip: "The deletion takes effect after the service is restarted",
file_exist: "The name already exists in the project",
......
......@@ -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包",
......
......@@ -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包",
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment