Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
dataease
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
zhu
dataease
Commits
c15c58f6
提交
c15c58f6
authored
11月 24, 2021
作者:
wangjiahao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 增加授权模型统一查询功能,视图使授权模型查询
上级
9e87a08a
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
16 个修改的文件
包含
246 行增加
和
36 行删除
+246
-36
VAuthModel.java
...end/src/main/java/io/dataease/base/domain/VAuthModel.java
+3
-0
VAuthModelExample.java
.../main/java/io/dataease/base/domain/VAuthModelExample.java
+60
-0
VAuthModelMapper.xml
...rc/main/java/io/dataease/base/mapper/VAuthModelMapper.xml
+18
-6
ExtPanelGroupMapper.java
...java/io/dataease/base/mapper/ext/ExtPanelGroupMapper.java
+0
-3
ExtVAuthModelMapper.java
...java/io/dataease/base/mapper/ext/ExtVAuthModelMapper.java
+13
-0
ExtVAuthModelMapper.xml
.../java/io/dataease/base/mapper/ext/ExtVAuthModelMapper.xml
+59
-0
VAuthModelController.java
...o/dataease/controller/authModel/VAuthModelController.java
+16
-0
VAuthModelRequest.java
...aease/controller/request/authModel/VAuthModelRequest.java
+16
-0
VAuthModelDTO.java
...rc/main/java/io/dataease/dto/authModel/VAuthModelDTO.java
+10
-2
VAuthModelService.java
...java/io/dataease/service/authModel/VAuthModelService.java
+29
-0
generatorConfig.xml
backend/src/main/resources/generatorConfig.xml
+1
-1
authModel.js
frontend/src/api/authModel/authModel.js
+10
-0
chart.js
frontend/src/api/chart/chart.js
+11
-0
Group.vue
frontend/src/views/chart/group/Group.vue
+0
-0
ChartEdit.vue
frontend/src/views/chart/view/ChartEdit.vue
+0
-0
index.vue
frontend/src/views/panel/index.vue
+0
-24
没有找到文件。
backend/src/main/java/io/dataease/base/domain/VAuthModel.java
浏览文件 @
c15c58f6
...
...
@@ -19,5 +19,7 @@ public class VAuthModel implements Serializable {
private
String
createBy
;
private
Long
level
;
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
backend/src/main/java/io/dataease/base/domain/VAuthModelExample.java
浏览文件 @
c15c58f6
...
...
@@ -593,6 +593,66 @@ public class VAuthModelExample {
addCriterion
(
"create_by not between"
,
value1
,
value2
,
"createBy"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLevelIsNull
()
{
addCriterion
(
"`level` is null"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLevelIsNotNull
()
{
addCriterion
(
"`level` is not null"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLevelEqualTo
(
Long
value
)
{
addCriterion
(
"`level` ="
,
value
,
"level"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLevelNotEqualTo
(
Long
value
)
{
addCriterion
(
"`level` <>"
,
value
,
"level"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLevelGreaterThan
(
Long
value
)
{
addCriterion
(
"`level` >"
,
value
,
"level"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLevelGreaterThanOrEqualTo
(
Long
value
)
{
addCriterion
(
"`level` >="
,
value
,
"level"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLevelLessThan
(
Long
value
)
{
addCriterion
(
"`level` <"
,
value
,
"level"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLevelLessThanOrEqualTo
(
Long
value
)
{
addCriterion
(
"`level` <="
,
value
,
"level"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLevelIn
(
List
<
Long
>
values
)
{
addCriterion
(
"`level` in"
,
values
,
"level"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLevelNotIn
(
List
<
Long
>
values
)
{
addCriterion
(
"`level` not in"
,
values
,
"level"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLevelBetween
(
Long
value1
,
Long
value2
)
{
addCriterion
(
"`level` between"
,
value1
,
value2
,
"level"
);
return
(
Criteria
)
this
;
}
public
Criteria
andLevelNotBetween
(
Long
value1
,
Long
value2
)
{
addCriterion
(
"`level` not between"
,
value1
,
value2
,
"level"
);
return
(
Criteria
)
this
;
}
}
public
static
class
Criteria
extends
GeneratedCriteria
{
...
...
backend/src/main/java/io/dataease/base/mapper/VAuthModelMapper.xml
浏览文件 @
c15c58f6
...
...
@@ -9,6 +9,7 @@
<result
column=
"model_inner_type"
jdbcType=
"VARCHAR"
property=
"modelInnerType"
/>
<result
column=
"auth_type"
jdbcType=
"VARCHAR"
property=
"authType"
/>
<result
column=
"create_by"
jdbcType=
"VARCHAR"
property=
"createBy"
/>
<result
column=
"level"
jdbcType=
"BIGINT"
property=
"level"
/>
</resultMap>
<resultMap
extends=
"BaseResultMap"
id=
"ResultMapWithBLOBs"
type=
"io.dataease.base.domain.VAuthModelWithBLOBs"
>
<result
column=
"name"
jdbcType=
"LONGVARCHAR"
property=
"name"
/>
...
...
@@ -73,7 +74,7 @@
</where>
</sql>
<sql
id=
"Base_Column_List"
>
id, pid, node_type, model_type, model_inner_type, auth_type, create_by
id, pid, node_type, model_type, model_inner_type, auth_type, create_by
, `level`
</sql>
<sql
id=
"Blob_Column_List"
>
`name`, `label`
...
...
@@ -117,12 +118,12 @@
<insert
id=
"insert"
parameterType=
"io.dataease.base.domain.VAuthModelWithBLOBs"
>
insert into v_auth_model (id, pid, node_type,
model_type, model_inner_type, auth_type,
create_by, `
name`, `label`
)
create_by, `
level`, `name`,
`label`
)
values (#{id,jdbcType=VARCHAR}, #{pid,jdbcType=VARCHAR}, #{nodeType,jdbcType=VARCHAR},
#{modelType,jdbcType=VARCHAR}, #{modelInnerType,jdbcType=VARCHAR}, #{authType,jdbcType=VARCHAR},
#{createBy,jdbcType=VARCHAR}, #{
name,jdbcType=LONGVARCHAR}, #{label,jdbcType=LONGVARCHAR}
)
#{createBy,jdbcType=VARCHAR}, #{
level,jdbcType=BIGINT}, #{name,jdbcType=LONGVARCHAR},
#{label,jdbcType=LONGVARCHAR}
)
</insert>
<insert
id=
"insertSelective"
parameterType=
"io.dataease.base.domain.VAuthModelWithBLOBs"
>
insert into v_auth_model
...
...
@@ -148,6 +149,9 @@
<if
test=
"createBy != null"
>
create_by,
</if>
<if
test=
"level != null"
>
`level`,
</if>
<if
test=
"name != null"
>
`name`,
</if>
...
...
@@ -177,6 +181,9 @@
<if
test=
"createBy != null"
>
#{createBy,jdbcType=VARCHAR},
</if>
<if
test=
"level != null"
>
#{level,jdbcType=BIGINT},
</if>
<if
test=
"name != null"
>
#{name,jdbcType=LONGVARCHAR},
</if>
...
...
@@ -215,6 +222,9 @@
<if
test=
"record.createBy != null"
>
create_by = #{record.createBy,jdbcType=VARCHAR},
</if>
<if
test=
"record.level != null"
>
`level` = #{record.level,jdbcType=BIGINT},
</if>
<if
test=
"record.name != null"
>
`name` = #{record.name,jdbcType=LONGVARCHAR},
</if>
...
...
@@ -235,6 +245,7 @@
model_inner_type = #{record.modelInnerType,jdbcType=VARCHAR},
auth_type = #{record.authType,jdbcType=VARCHAR},
create_by = #{record.createBy,jdbcType=VARCHAR},
`level` = #{record.level,jdbcType=BIGINT},
`name` = #{record.name,jdbcType=LONGVARCHAR},
`label` = #{record.label,jdbcType=LONGVARCHAR}
<if
test=
"_parameter != null"
>
...
...
@@ -249,7 +260,8 @@
model_type = #{record.modelType,jdbcType=VARCHAR},
model_inner_type = #{record.modelInnerType,jdbcType=VARCHAR},
auth_type = #{record.authType,jdbcType=VARCHAR},
create_by = #{record.createBy,jdbcType=VARCHAR}
create_by = #{record.createBy,jdbcType=VARCHAR},
`level` = #{record.level,jdbcType=BIGINT}
<if
test=
"_parameter != null"
>
<include
refid=
"Update_By_Example_Where_Clause"
/>
</if>
...
...
backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelGroupMapper.java
浏览文件 @
c15c58f6
...
...
@@ -12,14 +12,11 @@ public interface ExtPanelGroupMapper {
List
<
PanelGroupDTO
>
panelGroupListDefault
(
PanelGroupRequest
request
);
//会级联删除pid 下的所有数据
int
deleteCircle
(
@Param
(
"pid"
)
String
pid
);
PanelGroupDTO
panelGroup
(
String
id
);
void
copyPanelView
(
@Param
(
"pid"
)
String
panelId
);
...
...
backend/src/main/java/io/dataease/base/mapper/ext/ExtVAuthModelMapper.java
0 → 100644
浏览文件 @
c15c58f6
package
io
.
dataease
.
base
.
mapper
.
ext
;
import
io.dataease.controller.request.authModel.VAuthModelRequest
;
import
io.dataease.dto.authModel.VAuthModelDTO
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
public
interface
ExtVAuthModelMapper
{
List
<
VAuthModelDTO
>
queryAuthModel
(
@Param
(
"request"
)
VAuthModelRequest
request
);
}
backend/src/main/java/io/dataease/base/mapper/ext/ExtVAuthModelMapper.xml
0 → 100644
浏览文件 @
c15c58f6
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"io.dataease.base.mapper.ext.ExtVAuthModelMapper"
>
<resultMap
extends=
"io.dataease.base.mapper.VAuthModelMapper.ResultMapWithBLOBs"
id=
"ExtResultMap"
type=
"io.dataease.dto.authModel.VAuthModelDTO"
>
<result
column=
"privileges"
jdbcType=
"VARCHAR"
property=
"privileges"
/>
</resultMap>
<select
id=
"queryAuthModel"
resultMap=
"ExtResultMap"
>
SELECT
v_auth_model.id,
v_auth_model.name,
v_auth_model.label,
v_auth_model.pid,
v_auth_model.node_type,
v_auth_model.model_type,
v_auth_model.model_inner_type,
v_auth_model.auth_type,
v_auth_model.create_by,
v_auth_model.level,
authInfo.PRIVILEGES AS `privileges`
FROM
( SELECT GET_V_AUTH_MODEL_ID_P_USE ( #{request.userId}, #{request.modelType} ) cids ) t,
v_auth_model
LEFT JOIN (
SELECT
auth_source,
group_concat( DISTINCT sys_auth_detail.privilege_extend ) AS `privileges`
FROM
(
`sys_auth`
LEFT JOIN `sys_auth_detail` ON ((
`sys_auth`.`id` = `sys_auth_detail`.`auth_id`
)))
WHERE
sys_auth_detail.privilege_value = #{request.userId}
AND sys_auth.auth_source_type = #{request.modelType}
AND (
(
sys_auth.auth_target_type = 'dept'
AND sys_auth.auth_target IN ( SELECT dept_id FROM sys_user WHERE user_id = #{request.userId} )
)
OR (
sys_auth.auth_target_type = 'user'
AND sys_auth.auth_target = #{request.userId}
)
OR (
sys_auth.auth_target_type = 'role'
AND sys_auth.auth_target IN ( SELECT role_id FROM sys_users_roles WHERE user_id = #{request.userId} )
)
)
GROUP BY
`sys_auth`.`auth_source`
) authInfo ON v_auth_model.id = authInfo.auth_source
WHERE
FIND_IN_SET( v_auth_model.id, cids )
</select>
</mapper>
backend/src/main/java/io/dataease/controller/authModel/VAuthModelController.java
浏览文件 @
c15c58f6
package
io
.
dataease
.
controller
.
authModel
;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
io.dataease.controller.request.authModel.VAuthModelRequest
;
import
io.dataease.dto.authModel.VAuthModelDTO
;
import
io.dataease.service.authModel.VAuthModelService
;
import
io.swagger.annotations.Api
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
java.util.List
;
/**
* Author: wangjiahao
* Date: 2021/11/5
...
...
@@ -16,4 +24,12 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping
(
"authModel"
)
public
class
VAuthModelController
{
@Resource
private
VAuthModelService
vAuthModelService
;
@PostMapping
(
"/queryAuthModel"
)
public
List
<
VAuthModelDTO
>
queryAuthModel
(
@RequestBody
VAuthModelRequest
request
){
return
vAuthModelService
.
queryAuthModel
(
request
);
}
}
backend/src/main/java/io/dataease/controller/request/authModel/VAuthModelRequest.java
0 → 100644
浏览文件 @
c15c58f6
package
io
.
dataease
.
controller
.
request
.
authModel
;
import
io.dataease.dto.authModel.VAuthModelDTO
;
import
lombok.Data
;
/**
* Author: wangjiahao
* Date: 2021/11/24
* Description:
*/
@Data
public
class
VAuthModelRequest
extends
VAuthModelDTO
{
private
String
userId
;
}
backend/src/main/java/io/dataease/dto/authModel/VAuthModelDTO.java
浏览文件 @
c15c58f6
package
io
.
dataease
.
dto
.
authModel
;
import
io.dataease.base.domain.VAuthModel
;
import
io.dataease.base.domain.VAuthModelWithBLOBs
;
import
io.dataease.commons.model.ITreeBase
;
import
lombok.Data
;
import
java.util.List
;
/**
* Author: wangjiahao
* Date: 2021/11/5
* Description:
*/
public
class
VAuthModelDTO
extends
VAuthModel
{
@Data
public
class
VAuthModelDTO
extends
VAuthModelWithBLOBs
implements
ITreeBase
<
VAuthModelDTO
>
{
private
String
privileges
;
private
List
<
VAuthModelDTO
>
children
;
}
backend/src/main/java/io/dataease/service/authModel/VAuthModelService.java
0 → 100644
浏览文件 @
c15c58f6
package
io
.
dataease
.
service
.
authModel
;
import
io.dataease.base.mapper.ext.ExtVAuthModelMapper
;
import
io.dataease.commons.utils.AuthUtils
;
import
io.dataease.commons.utils.TreeUtils
;
import
io.dataease.controller.request.authModel.VAuthModelRequest
;
import
io.dataease.dto.authModel.VAuthModelDTO
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.List
;
/**
* Author: wangjiahao
* Date: 2021/11/24
* Description:
*/
@Service
public
class
VAuthModelService
{
@Resource
private
ExtVAuthModelMapper
extVAuthModelMapper
;
public
List
<
VAuthModelDTO
>
queryAuthModel
(
VAuthModelRequest
request
){
request
.
setUserId
(
String
.
valueOf
(
AuthUtils
.
getUser
().
getUserId
()));
List
<
VAuthModelDTO
>
result
=
extVAuthModelMapper
.
queryAuthModel
(
request
);
return
TreeUtils
.
mergeTree
(
result
);
}
}
backend/src/main/resources/generatorConfig.xml
浏览文件 @
c15c58f6
...
...
@@ -65,7 +65,7 @@
<!--要生成的数据库表 -->
<table
tableName=
"
sys_msg_chann
el"
/>
<table
tableName=
"
v_auth_mod
el"
/>
</context>
...
...
frontend/src/api/authModel/authModel.js
0 → 100644
浏览文件 @
c15c58f6
import
request
from
'@/utils/request'
export
function
queryAuthModel
(
data
)
{
return
request
({
url
:
'authModel/queryAuthModel'
,
method
:
'post'
,
loading
:
true
,
data
})
}
frontend/src/api/chart/chart.js
浏览文件 @
c15c58f6
...
...
@@ -60,3 +60,14 @@ export function checkSameDataSet(viewIdSource, viewIdTarget) {
loading
:
false
})
}
export
function
ajaxGetDataOnly
(
id
,
data
)
{
return
request
({
url
:
'/chart/view/getData/'
+
id
,
method
:
'post'
,
loading
:
true
,
hideMsg
:
true
,
timeout
:
30000
,
data
})
}
frontend/src/views/chart/group/Group.vue
浏览文件 @
c15c58f6
差异被折叠。
点击展开。
frontend/src/views/chart/view/ChartEdit.vue
浏览文件 @
c15c58f6
差异被折叠。
点击展开。
frontend/src/views/panel/index.vue
浏览文件 @
c15c58f6
...
...
@@ -4,7 +4,6 @@
<panel-main
v-show=
"componentName==='PanelMain'"
ref=
"panel_main"
/>
<chart-edit
v-if=
"componentName==='ChartEdit'"
:param=
"param"
/>
<panel-edit
v-if=
"componentName==='PanelEdit'"
/>
<!--
<component
:is=
"component"
:param=
"param"
/>
-->
</de-main-container>
</de-container>
</
template
>
...
...
@@ -47,34 +46,11 @@ export default {
this
.
param
=
c
.
param
this
.
componentName
=
c
.
name
this
.
$store
.
dispatch
(
'panel/setMainActiveName'
,
c
.
name
)
// switch (c.name) {
// case 'PanelEdit':
// this.component = PanelEdit
// this.componentName = 'PanelEdit'
// break
// case 'ChartEdit':
// this.component = ChartEdit
// this.componentName = 'ChartEdit'
// break
// default:
// this.component = PanelMain
// this.componentName = 'PanelMain'
// break
// }
})
},
created
()
{
this
.
$store
.
dispatch
(
'app/toggleSideBarHide'
,
true
)
const
routerParam
=
this
.
$router
.
currentRoute
.
params
// if ((routerParam = this.$router.currentRoute.params) !== null && routerParam.msgNotification) {
// // 说明是从消息通知跳转过来的
// if (routerParam.msgType === 0) { // 是仪表板分享
// this.componentName = 'PanelMain'
// this.$nextTick(() => {
// this.$refs.panel_main.msg2Current(routerParam.sourceParam)
// })
// }
// }
this
.
toMsgShare
(
routerParam
)
},
methods
:
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论