Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
dataease
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
zhu
dataease
Commits
a79a96f4
提交
a79a96f4
authored
12月 19, 2021
作者:
taojinlong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 公共链接支持行权限
上级
2b18d64c
隐藏空白字符变更
内嵌
并排
正在显示
30 个修改的文件
包含
302 行增加
和
128 行删除
+302
-128
F2CLinkFilter.java
.../src/main/java/io/dataease/auth/filter/F2CLinkFilter.java
+4
-6
JWTUtils.java
backend/src/main/java/io/dataease/auth/util/JWTUtils.java
+14
-6
LinkUtil.java
backend/src/main/java/io/dataease/auth/util/LinkUtil.java
+2
-2
PanelLink.java
backend/src/main/java/io/dataease/base/domain/PanelLink.java
+3
-0
PanelLinkExample.java
...c/main/java/io/dataease/base/domain/PanelLinkExample.java
+60
-0
PanelLinkMapping.java
...c/main/java/io/dataease/base/domain/PanelLinkMapping.java
+3
-0
PanelLinkMappingExample.java
...java/io/dataease/base/domain/PanelLinkMappingExample.java
+60
-0
PanelLinkMapper.java
...rc/main/java/io/dataease/base/mapper/PanelLinkMapper.java
+0
-9
PanelLinkMapper.xml
...src/main/java/io/dataease/base/mapper/PanelLinkMapper.xml
+18
-42
PanelLinkMappingMapper.xml
...n/java/io/dataease/base/mapper/PanelLinkMappingMapper.xml
+23
-5
ExtPanelLinkMapper.xml
...n/java/io/dataease/base/mapper/ext/ExtPanelLinkMapper.xml
+1
-1
LinkApi.java
...c/main/java/io/dataease/controller/panel/api/LinkApi.java
+1
-2
LinkServer.java
.../java/io/dataease/controller/panel/server/LinkServer.java
+1
-1
ChartExtRequest.java
...io/dataease/controller/request/chart/ChartExtRequest.java
+3
-0
LinkValidateRequest.java
...se/controller/request/panel/link/LinkValidateRequest.java
+1
-0
OverTimeRequest.java
...taease/controller/request/panel/link/OverTimeRequest.java
+3
-0
PasswordRequest.java
...taease/controller/request/panel/link/PasswordRequest.java
+2
-0
ChartViewService.java
...main/java/io/dataease/service/chart/ChartViewService.java
+1
-1
DataSetTableService.java
...java/io/dataease/service/dataset/DataSetTableService.java
+8
-9
DirectFieldService.java
...aease/service/dataset/impl/direct/DirectFieldService.java
+1
-1
PanelLinkService.java
...main/java/io/dataease/service/panel/PanelLinkService.java
+53
-22
V29__de1.6.sql
backend/src/main/resources/db/migration/V29__de1.6.sql
+8
-2
generatorConfig.xml
backend/src/main/resources/generatorConfig.xml
+1
-2
link.html
frontend/public/link.html
+4
-1
index.js
frontend/src/api/link/index.js
+1
-1
UserView.vue
frontend/src/components/canvas/custom-component/UserView.vue
+1
-0
index.js
frontend/src/utils/index.js
+6
-5
index.vue
frontend/src/views/link/index.vue
+10
-6
index.vue
frontend/src/views/link/pwd/index.vue
+5
-4
index.vue
frontend/src/views/link/view/index.vue
+4
-0
没有找到文件。
backend/src/main/java/io/dataease/auth/filter/F2CLinkFilter.java
浏览文件 @
a79a96f4
...
...
@@ -9,8 +9,6 @@ import io.dataease.auth.util.LinkUtil;
import
io.dataease.base.domain.PanelLink
;
import
io.dataease.commons.utils.LogUtil
;
import
org.apache.shiro.web.filter.authc.AnonymousFilter
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
javax.servlet.ServletRequest
;
import
javax.servlet.ServletResponse
;
...
...
@@ -26,9 +24,9 @@ public class F2CLinkFilter extends AnonymousFilter {
HttpServletRequest
req
=
(
HttpServletRequest
)
request
;
String
linkToken
=
req
.
getHeader
(
LINK_TOKEN_KEY
);
DecodedJWT
jwt
=
JWT
.
decode
(
linkToken
);
Claim
resourceId
=
jwt
.
getClaim
(
"resourceId"
);
String
id
=
resourceId
.
asStri
ng
();
PanelLink
panelLink
=
LinkUtil
.
queryLink
(
i
d
);
String
resourceId
=
jwt
.
getClaim
(
"resourceId"
).
asString
(
);
Long
userId
=
jwt
.
getClaim
(
"userId"
).
asLo
ng
();
PanelLink
panelLink
=
LinkUtil
.
queryLink
(
resourceId
,
userI
d
);
if
(
ObjectUtil
.
isEmpty
(
panelLink
))
return
false
;
String
pwd
;
if
(!
panelLink
.
getEnablePwd
())
{
...
...
@@ -37,7 +35,7 @@ public class F2CLinkFilter extends AnonymousFilter {
}
else
{
pwd
=
panelLink
.
getPwd
();
}
return
JWTUtils
.
verifyLink
(
linkToken
,
i
d
,
pwd
);
return
JWTUtils
.
verifyLink
(
linkToken
,
resourceId
,
userI
d
,
pwd
);
}
catch
(
Exception
e
)
{
LogUtil
.
error
(
e
);
}
...
...
backend/src/main/java/io/dataease/auth/util/JWTUtils.java
浏览文件 @
a79a96f4
...
...
@@ -126,16 +126,24 @@ public class JWTUtils {
}
}
public
static
String
signLink
(
String
resourceId
,
String
secret
)
{
public
static
String
signLink
(
String
resourceId
,
Long
userId
,
String
secret
)
{
Algorithm
algorithm
=
Algorithm
.
HMAC256
(
secret
);
return
JWT
.
create
().
withClaim
(
"resourceId"
,
resourceId
).
sign
(
algorithm
);
if
(
userId
==
null
){
return
JWT
.
create
().
withClaim
(
"resourceId"
,
resourceId
).
sign
(
algorithm
);
}
else
{
return
JWT
.
create
().
withClaim
(
"resourceId"
,
resourceId
).
withClaim
(
"userId"
,
userId
).
sign
(
algorithm
);
}
}
public
static
boolean
verifyLink
(
String
token
,
String
resourceId
,
String
secret
)
{
public
static
boolean
verifyLink
(
String
token
,
String
resourceId
,
Long
userId
,
String
secret
)
{
Algorithm
algorithm
=
Algorithm
.
HMAC256
(
secret
);
JWTVerifier
verifier
=
JWT
.
require
(
algorithm
)
.
withClaim
(
"resourceId"
,
resourceId
)
.
build
();
JWTVerifier
verifier
;
if
(
userId
==
null
){
verifier
=
JWT
.
require
(
algorithm
).
withClaim
(
"resourceId"
,
resourceId
).
build
();
}
else
{
verifier
=
JWT
.
require
(
algorithm
).
withClaim
(
"resourceId"
,
resourceId
).
withClaim
(
"userId"
,
userId
).
build
();
}
try
{
verifier
.
verify
(
token
);
return
true
;
...
...
backend/src/main/java/io/dataease/auth/util/LinkUtil.java
浏览文件 @
a79a96f4
...
...
@@ -16,7 +16,7 @@ public class LinkUtil {
LinkUtil
.
panelLinkService
=
panelLinkService
;
}
public
static
PanelLink
queryLink
(
String
resourceId
)
{
return
panelLinkService
.
findOne
(
resourceId
);
public
static
PanelLink
queryLink
(
String
resourceId
,
Long
user
)
{
return
panelLinkService
.
findOne
(
resourceId
,
user
);
}
}
backend/src/main/java/io/dataease/base/domain/PanelLink.java
浏览文件 @
a79a96f4
...
...
@@ -15,5 +15,7 @@ public class PanelLink implements Serializable {
private
Long
overTime
;
private
Long
userId
;
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
backend/src/main/java/io/dataease/base/domain/PanelLinkExample.java
浏览文件 @
a79a96f4
...
...
@@ -423,6 +423,66 @@ public class PanelLinkExample {
addCriterion
(
"over_time not between"
,
value1
,
value2
,
"overTime"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdIsNull
()
{
addCriterion
(
"user_id is null"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdIsNotNull
()
{
addCriterion
(
"user_id is not null"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdEqualTo
(
Long
value
)
{
addCriterion
(
"user_id ="
,
value
,
"userId"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdNotEqualTo
(
Long
value
)
{
addCriterion
(
"user_id <>"
,
value
,
"userId"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdGreaterThan
(
Long
value
)
{
addCriterion
(
"user_id >"
,
value
,
"userId"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdGreaterThanOrEqualTo
(
Long
value
)
{
addCriterion
(
"user_id >="
,
value
,
"userId"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdLessThan
(
Long
value
)
{
addCriterion
(
"user_id <"
,
value
,
"userId"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdLessThanOrEqualTo
(
Long
value
)
{
addCriterion
(
"user_id <="
,
value
,
"userId"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdIn
(
List
<
Long
>
values
)
{
addCriterion
(
"user_id in"
,
values
,
"userId"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdNotIn
(
List
<
Long
>
values
)
{
addCriterion
(
"user_id not in"
,
values
,
"userId"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdBetween
(
Long
value1
,
Long
value2
)
{
addCriterion
(
"user_id between"
,
value1
,
value2
,
"userId"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdNotBetween
(
Long
value1
,
Long
value2
)
{
addCriterion
(
"user_id not between"
,
value1
,
value2
,
"userId"
);
return
(
Criteria
)
this
;
}
}
public
static
class
Criteria
extends
GeneratedCriteria
{
...
...
backend/src/main/java/io/dataease/base/domain/PanelLinkMapping.java
浏览文件 @
a79a96f4
...
...
@@ -9,5 +9,7 @@ public class PanelLinkMapping implements Serializable {
private
String
resourceId
;
private
Long
userId
;
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
backend/src/main/java/io/dataease/base/domain/PanelLinkMappingExample.java
浏览文件 @
a79a96f4
...
...
@@ -233,6 +233,66 @@ public class PanelLinkMappingExample {
addCriterion
(
"resource_id not between"
,
value1
,
value2
,
"resourceId"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdIsNull
()
{
addCriterion
(
"user_id is null"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdIsNotNull
()
{
addCriterion
(
"user_id is not null"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdEqualTo
(
Long
value
)
{
addCriterion
(
"user_id ="
,
value
,
"userId"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdNotEqualTo
(
Long
value
)
{
addCriterion
(
"user_id <>"
,
value
,
"userId"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdGreaterThan
(
Long
value
)
{
addCriterion
(
"user_id >"
,
value
,
"userId"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdGreaterThanOrEqualTo
(
Long
value
)
{
addCriterion
(
"user_id >="
,
value
,
"userId"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdLessThan
(
Long
value
)
{
addCriterion
(
"user_id <"
,
value
,
"userId"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdLessThanOrEqualTo
(
Long
value
)
{
addCriterion
(
"user_id <="
,
value
,
"userId"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdIn
(
List
<
Long
>
values
)
{
addCriterion
(
"user_id in"
,
values
,
"userId"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdNotIn
(
List
<
Long
>
values
)
{
addCriterion
(
"user_id not in"
,
values
,
"userId"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdBetween
(
Long
value1
,
Long
value2
)
{
addCriterion
(
"user_id between"
,
value1
,
value2
,
"userId"
);
return
(
Criteria
)
this
;
}
public
Criteria
andUserIdNotBetween
(
Long
value1
,
Long
value2
)
{
addCriterion
(
"user_id not between"
,
value1
,
value2
,
"userId"
);
return
(
Criteria
)
this
;
}
}
public
static
class
Criteria
extends
GeneratedCriteria
{
...
...
backend/src/main/java/io/dataease/base/mapper/PanelLinkMapper.java
浏览文件 @
a79a96f4
...
...
@@ -10,21 +10,13 @@ public interface PanelLinkMapper {
int
deleteByExample
(
PanelLinkExample
example
);
int
deleteByPrimaryKey
(
String
resourceId
);
int
insert
(
PanelLink
record
);
int
insertSelective
(
PanelLink
record
);
List
<
PanelLink
>
selectByExample
(
PanelLinkExample
example
);
PanelLink
selectByPrimaryKey
(
String
resourceId
);
int
updateByExampleSelective
(
@Param
(
"record"
)
PanelLink
record
,
@Param
(
"example"
)
PanelLinkExample
example
);
int
updateByExample
(
@Param
(
"record"
)
PanelLink
record
,
@Param
(
"example"
)
PanelLinkExample
example
);
int
updateByPrimaryKeySelective
(
PanelLink
record
);
int
updateByPrimaryKey
(
PanelLink
record
);
}
\ No newline at end of file
backend/src/main/java/io/dataease/base/mapper/PanelLinkMapper.xml
浏览文件 @
a79a96f4
...
...
@@ -2,11 +2,12 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"io.dataease.base.mapper.PanelLinkMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"io.dataease.base.domain.PanelLink"
>
<
id
column=
"resource_id"
jdbcType=
"VARCHAR"
property=
"resourceId"
/>
<
result
column=
"resource_id"
jdbcType=
"VARCHAR"
property=
"resourceId"
/>
<result
column=
"valid"
jdbcType=
"BIT"
property=
"valid"
/>
<result
column=
"enable_pwd"
jdbcType=
"BIT"
property=
"enablePwd"
/>
<result
column=
"pwd"
jdbcType=
"VARCHAR"
property=
"pwd"
/>
<result
column=
"over_time"
jdbcType=
"BIGINT"
property=
"overTime"
/>
<result
column=
"user_id"
jdbcType=
"BIGINT"
property=
"userId"
/>
</resultMap>
<sql
id=
"Example_Where_Clause"
>
<where>
...
...
@@ -67,7 +68,7 @@
</where>
</sql>
<sql
id=
"Base_Column_List"
>
resource_id, `valid`, enable_pwd, pwd, over_time
resource_id, `valid`, enable_pwd, pwd, over_time
, user_id
</sql>
<select
id=
"selectByExample"
parameterType=
"io.dataease.base.domain.PanelLinkExample"
resultMap=
"BaseResultMap"
>
select
...
...
@@ -83,16 +84,6 @@
order by ${orderByClause}
</if>
</select>
<select
id=
"selectByPrimaryKey"
parameterType=
"java.lang.String"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from panel_link
where resource_id = #{resourceId,jdbcType=VARCHAR}
</select>
<delete
id=
"deleteByPrimaryKey"
parameterType=
"java.lang.String"
>
delete from panel_link
where resource_id = #{resourceId,jdbcType=VARCHAR}
</delete>
<delete
id=
"deleteByExample"
parameterType=
"io.dataease.base.domain.PanelLinkExample"
>
delete from panel_link
<if
test=
"_parameter != null"
>
...
...
@@ -101,9 +92,11 @@
</delete>
<insert
id=
"insert"
parameterType=
"io.dataease.base.domain.PanelLink"
>
insert into panel_link (resource_id, `valid`, enable_pwd,
pwd, over_time)
pwd, over_time, user_id
)
values (#{resourceId,jdbcType=VARCHAR}, #{valid,jdbcType=BIT}, #{enablePwd,jdbcType=BIT},
#{pwd,jdbcType=VARCHAR}, #{overTime,jdbcType=BIGINT})
#{pwd,jdbcType=VARCHAR}, #{overTime,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}
)
</insert>
<insert
id=
"insertSelective"
parameterType=
"io.dataease.base.domain.PanelLink"
>
insert into panel_link
...
...
@@ -123,6 +116,9 @@
<if
test=
"overTime != null"
>
over_time,
</if>
<if
test=
"userId != null"
>
user_id,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"resourceId != null"
>
...
...
@@ -140,6 +136,9 @@
<if
test=
"overTime != null"
>
#{overTime,jdbcType=BIGINT},
</if>
<if
test=
"userId != null"
>
#{userId,jdbcType=BIGINT},
</if>
</trim>
</insert>
<select
id=
"countByExample"
parameterType=
"io.dataease.base.domain.PanelLinkExample"
resultType=
"java.lang.Long"
>
...
...
@@ -166,6 +165,9 @@
<if
test=
"record.overTime != null"
>
over_time = #{record.overTime,jdbcType=BIGINT},
</if>
<if
test=
"record.userId != null"
>
user_id = #{record.userId,jdbcType=BIGINT},
</if>
</set>
<if
test=
"_parameter != null"
>
<include
refid=
"Update_By_Example_Where_Clause"
/>
...
...
@@ -177,35 +179,10 @@
`valid` = #{record.valid,jdbcType=BIT},
enable_pwd = #{record.enablePwd,jdbcType=BIT},
pwd = #{record.pwd,jdbcType=VARCHAR},
over_time = #{record.overTime,jdbcType=BIGINT}
over_time = #{record.overTime,jdbcType=BIGINT},
user_id = #{record.userId,jdbcType=BIGINT}
<if
test=
"_parameter != null"
>
<include
refid=
"Update_By_Example_Where_Clause"
/>
</if>
</update>
<update
id=
"updateByPrimaryKeySelective"
parameterType=
"io.dataease.base.domain.PanelLink"
>
update panel_link
<set>
<if
test=
"valid != null"
>
`valid` = #{valid,jdbcType=BIT},
</if>
<if
test=
"enablePwd != null"
>
enable_pwd = #{enablePwd,jdbcType=BIT},
</if>
<if
test=
"pwd != null"
>
pwd = #{pwd,jdbcType=VARCHAR},
</if>
<if
test=
"overTime != null"
>
over_time = #{overTime,jdbcType=BIGINT},
</if>
</set>
where resource_id = #{resourceId,jdbcType=VARCHAR}
</update>
<update
id=
"updateByPrimaryKey"
parameterType=
"io.dataease.base.domain.PanelLink"
>
update panel_link
set `valid` = #{valid,jdbcType=BIT},
enable_pwd = #{enablePwd,jdbcType=BIT},
pwd = #{pwd,jdbcType=VARCHAR},
over_time = #{overTime,jdbcType=BIGINT}
where resource_id = #{resourceId,jdbcType=VARCHAR}
</update>
</mapper>
\ No newline at end of file
backend/src/main/java/io/dataease/base/mapper/PanelLinkMappingMapper.xml
浏览文件 @
a79a96f4
...
...
@@ -4,6 +4,7 @@
<resultMap
id=
"BaseResultMap"
type=
"io.dataease.base.domain.PanelLinkMapping"
>
<id
column=
"id"
jdbcType=
"BIGINT"
property=
"id"
/>
<result
column=
"resource_id"
jdbcType=
"VARCHAR"
property=
"resourceId"
/>
<result
column=
"user_id"
jdbcType=
"BIGINT"
property=
"userId"
/>
</resultMap>
<sql
id=
"Example_Where_Clause"
>
<where>
...
...
@@ -64,7 +65,7 @@
</where>
</sql>
<sql
id=
"Base_Column_List"
>
id, resource_id
id, resource_id
, user_id
</sql>
<select
id=
"selectByExample"
parameterType=
"io.dataease.base.domain.PanelLinkMappingExample"
resultMap=
"BaseResultMap"
>
select
...
...
@@ -97,8 +98,10 @@
</if>
</delete>
<insert
id=
"insert"
parameterType=
"io.dataease.base.domain.PanelLinkMapping"
>
insert into panel_link_mapping (id, resource_id)
values (#{id,jdbcType=BIGINT}, #{resourceId,jdbcType=VARCHAR})
insert into panel_link_mapping (id, resource_id, user_id
)
values (#{id,jdbcType=BIGINT}, #{resourceId,jdbcType=VARCHAR}, #{userId,jdbcType=BIGINT}
)
</insert>
<insert
id=
"insertSelective"
parameterType=
"io.dataease.base.domain.PanelLinkMapping"
>
insert into panel_link_mapping
...
...
@@ -109,6 +112,9 @@
<if
test=
"resourceId != null"
>
resource_id,
</if>
<if
test=
"userId != null"
>
user_id,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"id != null"
>
...
...
@@ -117,6 +123,9 @@
<if
test=
"resourceId != null"
>
#{resourceId,jdbcType=VARCHAR},
</if>
<if
test=
"userId != null"
>
#{userId,jdbcType=BIGINT},
</if>
</trim>
</insert>
<select
id=
"countByExample"
parameterType=
"io.dataease.base.domain.PanelLinkMappingExample"
resultType=
"java.lang.Long"
>
...
...
@@ -134,6 +143,9 @@
<if
test=
"record.resourceId != null"
>
resource_id = #{record.resourceId,jdbcType=VARCHAR},
</if>
<if
test=
"record.userId != null"
>
user_id = #{record.userId,jdbcType=BIGINT},
</if>
</set>
<if
test=
"_parameter != null"
>
<include
refid=
"Update_By_Example_Where_Clause"
/>
...
...
@@ -142,7 +154,8 @@
<update
id=
"updateByExample"
parameterType=
"map"
>
update panel_link_mapping
set id = #{record.id,jdbcType=BIGINT},
resource_id = #{record.resourceId,jdbcType=VARCHAR}
resource_id = #{record.resourceId,jdbcType=VARCHAR},
user_id = #{record.userId,jdbcType=BIGINT}
<if
test=
"_parameter != null"
>
<include
refid=
"Update_By_Example_Where_Clause"
/>
</if>
...
...
@@ -153,12 +166,16 @@
<if
test=
"resourceId != null"
>
resource_id = #{resourceId,jdbcType=VARCHAR},
</if>
<if
test=
"userId != null"
>
user_id = #{userId,jdbcType=BIGINT},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update
id=
"updateByPrimaryKey"
parameterType=
"io.dataease.base.domain.PanelLinkMapping"
>
update panel_link_mapping
set resource_id = #{resourceId,jdbcType=VARCHAR}
set resource_id = #{resourceId,jdbcType=VARCHAR},
user_id = #{userId,jdbcType=BIGINT}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>
\ No newline at end of file
backend/src/main/java/io/dataease/base/mapper/ext/ExtPanelLinkMapper.xml
浏览文件 @
a79a96f4
...
...
@@ -8,7 +8,7 @@
<update
id=
"updateOverTime"
>
update panel_link set over_time = #{request.overTime} where resource_id = #{request.resourceId}
update panel_link set over_time = #{request.overTime} where resource_id = #{request.resourceId}
and user_id = #{request.userId}
</update>
...
...
backend/src/main/java/io/dataease/controller/panel/api/LinkApi.java
浏览文件 @
a79a96f4
...
...
@@ -2,7 +2,6 @@ package io.dataease.controller.panel.api;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
io.dataease.controller.ResultHolder
;
import
io.dataease.controller.request.chart.ChartExtRequest
;
import
io.dataease.controller.request.panel.link.*
;
import
io.dataease.dto.panel.link.GenerateDto
;
...
...
@@ -48,7 +47,7 @@ public interface LinkApi {
boolean
validatePwd
(
PasswordRequest
request
)
throws
Exception
;
@ApiOperation
(
"资源详息"
)
@
Pos
tMapping
(
"/resourceDetail/{resourceId}"
)
@
Ge
tMapping
(
"/resourceDetail/{resourceId}"
)
Object
resourceDetail
(
@PathVariable
String
resourceId
);
@ApiOperation
(
"视图详息"
)
...
...
backend/src/main/java/io/dataease/controller/panel/server/LinkServer.java
浏览文件 @
a79a96f4
...
...
@@ -66,7 +66,7 @@ public class LinkServer implements LinkApi {
ValidateDto
dto
=
new
ValidateDto
();
String
resourceId
=
json
;
PanelLink
one
=
panelLinkService
.
findOne
(
resourceId
);
PanelLink
one
=
panelLinkService
.
findOne
(
resourceId
,
request
.
getUser
()
);
dto
.
setResourceId
(
resourceId
);
if
(
ObjectUtils
.
isEmpty
(
one
))
{
dto
.
setValid
(
false
);
...
...
backend/src/main/java/io/dataease/controller/request/chart/ChartExtRequest.java
浏览文件 @
a79a96f4
...
...
@@ -34,4 +34,7 @@ public class ChartExtRequest {
@ApiModelProperty
(
"使用缓存:默认使用"
)
private
boolean
cache
=
true
;
@ApiModelProperty
(
"用户ID"
)
private
Long
user
=
null
;
}
backend/src/main/java/io/dataease/controller/request/panel/link/LinkValidateRequest.java
浏览文件 @
a79a96f4
...
...
@@ -8,4 +8,5 @@ import java.io.Serializable;
public
class
LinkValidateRequest
implements
Serializable
{
private
String
link
;
private
Long
user
;
}
backend/src/main/java/io/dataease/controller/request/panel/link/OverTimeRequest.java
浏览文件 @
a79a96f4
...
...
@@ -13,6 +13,9 @@ public class OverTimeRequest {
@ApiModelProperty
(
"资源ID"
)
private
String
resourceId
;
@ApiModelProperty
(
"用户ID"
)
private
Long
userId
;
@ApiModelProperty
(
"过期时间"
)
private
Long
overTime
;
...
...
backend/src/main/java/io/dataease/controller/request/panel/link/PasswordRequest.java
浏览文件 @
a79a96f4
...
...
@@ -8,6 +8,8 @@ public class PasswordRequest {
@ApiModelProperty
(
"资源ID"
)
private
String
resourceId
;
@ApiModelProperty
(
"用户ID"
)
private
Long
user
=
null
;
@ApiModelProperty
(
"密码"
)
private
String
password
;
...
...
backend/src/main/java/io/dataease/service/chart/ChartViewService.java
浏览文件 @
a79a96f4
...
...
@@ -212,7 +212,7 @@ public class ChartViewService {
DatasetTableField
datasetTableFieldObj
=
DatasetTableField
.
builder
().
tableId
(
view
.
getTableId
()).
checked
(
Boolean
.
TRUE
).
build
();
List
<
DatasetTableField
>
fields
=
dataSetTableFieldsService
.
list
(
datasetTableFieldObj
);
DatasetTable
datasetTable
=
dataSetTableService
.
get
(
view
.
getTableId
());
List
<
ChartFieldCustomFilterDTO
>
permissionFields
=
dataSetTableService
.
getCustomFilters
(
fields
,
datasetTable
);
List
<
ChartFieldCustomFilterDTO
>
permissionFields
=
dataSetTableService
.
getCustomFilters
(
fields
,
datasetTable
,
requestList
.
getUser
()
);
fieldCustomFilter
.
addAll
(
permissionFields
);
for
(
ChartFieldCustomFilterDTO
ele
:
fieldCustomFilter
)
{
...
...
backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java
浏览文件 @
a79a96f4
...
...
@@ -442,7 +442,7 @@ public class DataSetTableService {
return
map
;
}
private
List
<
DatasetRowPermissions
>
rowPermissions
(
String
datasetId
)
{
private
List
<
DatasetRowPermissions
>
rowPermissions
(
String
datasetId
,
Long
userId
)
{
List
<
DatasetRowPermissions
>
datasetRowPermissions
=
new
ArrayList
<>();
Map
<
String
,
RowPermissionService
>
beansOfType
=
SpringContextUtil
.
getApplicationContext
().
getBeansOfType
((
RowPermissionService
.
class
));
if
(
beansOfType
.
keySet
().
size
()
==
0
)
{
...
...
@@ -450,11 +450,10 @@ public class DataSetTableService {
}
RowPermissionService
rowPermissionService
=
SpringContextUtil
.
getBean
(
RowPermissionService
.
class
);
CurrentUserDto
user
=
AuthUtils
.
getUser
();
if
(
user
!=
null
)
{
datasetRowPermissions
.
addAll
(
rowPermissionService
.
listDatasetRowPermissions
(
datasetId
,
Collections
.
singletonList
(
user
.
getUserId
()),
"user"
));
datasetRowPermissions
.
addAll
(
rowPermissionService
.
listDatasetRowPermissions
(
datasetId
,
user
.
getRoles
().
stream
().
map
(
CurrentRoleDto:
:
getId
).
collect
(
Collectors
.
toList
()),
"role"
));
datasetRowPermissions
.
addAll
(
rowPermissionService
.
listDatasetRowPermissions
(
datasetId
,
Collections
.
singletonList
(
user
.
getDeptId
()),
"dept"
));
}
userId
=
user
!=
null
?
user
.
getUserId
()
:
userId
;
datasetRowPermissions
.
addAll
(
rowPermissionService
.
listDatasetRowPermissions
(
datasetId
,
Collections
.
singletonList
(
user
.
getUserId
()),
"user"
));
datasetRowPermissions
.
addAll
(
rowPermissionService
.
listDatasetRowPermissions
(
datasetId
,
user
.
getRoles
().
stream
().
map
(
CurrentRoleDto:
:
getId
).
collect
(
Collectors
.
toList
()),
"role"
));
datasetRowPermissions
.
addAll
(
rowPermissionService
.
listDatasetRowPermissions
(
datasetId
,
Collections
.
singletonList
(
user
.
getDeptId
()),
"dept"
));
return
datasetRowPermissions
;
}
...
...
@@ -468,9 +467,9 @@ public class DataSetTableService {
return
field
;
}
public
List
<
ChartFieldCustomFilterDTO
>
getCustomFilters
(
List
<
DatasetTableField
>
fields
,
DatasetTable
datasetTable
)
{
public
List
<
ChartFieldCustomFilterDTO
>
getCustomFilters
(
List
<
DatasetTableField
>
fields
,
DatasetTable
datasetTable
,
Long
user
)
{
List
<
ChartFieldCustomFilterDTO
>
customFilter
=
new
ArrayList
<>();
rowPermissions
(
datasetTable
.
getId
()).
forEach
(
datasetRowPermissions
->
{
rowPermissions
(
datasetTable
.
getId
()
,
user
).
forEach
(
datasetRowPermissions
->
{
List
<
ChartCustomFilterItemDTO
>
lists
=
JSONObject
.
parseArray
(
datasetRowPermissions
.
getFilter
(),
ChartCustomFilterItemDTO
.
class
);
ChartFieldCustomFilterDTO
dto
=
new
ChartFieldCustomFilterDTO
();
DatasetTableField
field
=
getFieldById
(
fields
,
datasetRowPermissions
.
getDatasetFieldId
());
...
...
@@ -499,7 +498,7 @@ public class DataSetTableService {
return
map
;
}
DatasetTable
datasetTable
=
datasetTableMapper
.
selectByPrimaryKey
(
dataSetTableRequest
.
getId
());
List
<
ChartFieldCustomFilterDTO
>
customFilter
=
getCustomFilters
(
fields
,
datasetTable
);
List
<
ChartFieldCustomFilterDTO
>
customFilter
=
getCustomFilters
(
fields
,
datasetTable
,
null
);
String
[]
fieldArray
=
fields
.
stream
().
map
(
DatasetTableField:
:
getDataeaseName
).
toArray
(
String
[]::
new
);
DataTableInfoDTO
dataTableInfoDTO
=
new
Gson
().
fromJson
(
dataSetTableRequest
.
getInfo
(),
DataTableInfoDTO
.
class
);
...
...
backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java
浏览文件 @
a79a96f4
...
...
@@ -58,7 +58,7 @@ public class DirectFieldService implements DataSetFieldService {
DatasetTableField
datasetTableField
=
DatasetTableField
.
builder
().
tableId
(
tableId
).
checked
(
Boolean
.
TRUE
).
build
();
List
<
DatasetTableField
>
fields
=
dataSetTableFieldsService
.
list
(
datasetTableField
);
List
<
ChartFieldCustomFilterDTO
>
customFilter
=
dataSetTableService
.
getCustomFilters
(
fields
,
datasetTable
);
List
<
ChartFieldCustomFilterDTO
>
customFilter
=
dataSetTableService
.
getCustomFilters
(
fields
,
datasetTable
,
null
);
DatasourceRequest
datasourceRequest
=
new
DatasourceRequest
();
DatasourceProvider
datasourceProvider
=
null
;
...
...
backend/src/main/java/io/dataease/service/panel/PanelLinkService.java
浏览文件 @
a79a96f4
...
...
@@ -3,14 +3,12 @@ package io.dataease.service.panel;
import
io.dataease.auth.config.RsaProperties
;
import
io.dataease.auth.util.JWTUtils
;
import
io.dataease.auth.util.RsaUtil
;
import
io.dataease.base.domain.PanelGroupWithBLOBs
;
import
io.dataease.base.domain.PanelLink
;
import
io.dataease.base.domain.PanelLinkMapping
;
import
io.dataease.base.domain.PanelLinkMappingExample
;
import
io.dataease.base.domain.*
;
import
io.dataease.base.mapper.PanelGroupMapper
;
import
io.dataease.base.mapper.PanelLinkMapper
;
import
io.dataease.base.mapper.PanelLinkMappingMapper
;
import
io.dataease.base.mapper.ext.ExtPanelLinkMapper
;
import
io.dataease.commons.utils.AuthUtils
;
import
io.dataease.commons.utils.ServletUtils
;
import
io.dataease.controller.request.panel.link.EnablePwdRequest
;
import
io.dataease.controller.request.panel.link.LinkRequest
;
...
...
@@ -27,11 +25,13 @@ import javax.annotation.Resource;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.List
;
import
java.util.Optional
;
@Service
public
class
PanelLinkService
{
private
static
final
String
BASEURL
=
"/link.html?link="
;
private
static
final
String
USERPARAM
=
"&user="
;
private
static
final
String
SHORT_URL_PREFIX
=
"/link/"
;
@Resource
...
...
@@ -47,63 +47,89 @@ public class PanelLinkService {
PanelLink
po
=
new
PanelLink
();
po
.
setResourceId
(
request
.
getResourceId
());
po
.
setValid
(
request
.
isValid
());
mapper
.
updateByPrimaryKeySelective
(
po
);
mapper
.
updateByExampleSelective
(
po
,
example
(
request
.
getResourceId
(),
AuthUtils
.
getUser
().
getUserId
()));
}
private
PanelLinkExample
example
(
String
panelLinkId
,
Long
userId
){
PanelLinkExample
example
=
new
PanelLinkExample
();
example
.
createCriteria
().
andResourceIdEqualTo
(
panelLinkId
).
andUserIdEqualTo
(
userId
);
return
example
;
}
public
void
changeEnablePwd
(
EnablePwdRequest
request
)
{
PanelLink
po
=
new
PanelLink
();
po
.
setResourceId
(
request
.
getResourceId
());
po
.
setEnablePwd
(
request
.
isEnablePwd
());
mapper
.
updateBy
PrimaryKeySelective
(
po
);
mapper
.
updateBy
ExampleSelective
(
po
,
example
(
request
.
getResourceId
(),
AuthUtils
.
getUser
().
getUserId
())
);
}
public
void
password
(
PasswordRequest
request
)
{
PanelLink
po
=
new
PanelLink
();
po
.
setResourceId
(
request
.
getResourceId
());
po
.
setPwd
(
request
.
getPassword
());
mapper
.
updateBy
PrimaryKeySelective
(
po
);
mapper
.
updateBy
ExampleSelective
(
po
,
example
(
request
.
getResourceId
(),
AuthUtils
.
getUser
().
getUserId
())
);
}
public
void
overTime
(
OverTimeRequest
request
)
{
request
.
setUserId
(
AuthUtils
.
getUser
().
getUserId
());
extPanelLinkMapper
.
updateOverTime
(
request
);
}
public
PanelLink
findOne
(
String
resourceId
)
{
return
mapper
.
selectByPrimaryKey
(
resourceId
);
private
PanelLink
findOne
(
String
resourceId
)
{
PanelLinkExample
example
=
new
PanelLinkExample
();
example
.
createCriteria
().
andResourceIdEqualTo
(
resourceId
).
andUserIdIsNull
();
List
<
PanelLink
>
list
=
mapper
.
selectByExample
(
example
);
return
CollectionUtils
.
isNotEmpty
(
list
)
?
list
.
get
(
0
)
:
null
;
}
public
PanelLink
findOne
(
String
resourceId
,
Long
userId
)
{
if
(
userId
==
null
){
return
findOne
(
resourceId
);
}
List
<
PanelLink
>
panelLinks
=
mapper
.
selectByExample
(
example
(
resourceId
,
userId
));
if
(
CollectionUtils
.
isNotEmpty
(
panelLinks
)){
return
panelLinks
.
get
(
0
);
}
else
{
return
null
;
}
}
@Transactional
public
GenerateDto
currentGenerate
(
String
resourceId
)
{
PanelLink
one
=
findOne
(
resourceId
);
PanelLink
one
=
findOne
(
resourceId
,
AuthUtils
.
getUser
().
getUserId
()
);
if
(
ObjectUtils
.
isEmpty
(
one
))
{
one
=
new
PanelLink
();
one
.
setPwd
(
null
);
one
.
setResourceId
(
resourceId
);
one
.
setValid
(
false
);
one
.
setUserId
(
AuthUtils
.
getUser
().
getUserId
());
one
.
setEnablePwd
(
false
);
mapper
.
insert
(
one
);
}
PanelLinkMappingExample
example
=
new
PanelLinkMappingExample
();
example
.
createCriteria
().
andResourceIdEqualTo
(
resourceId
);
example
.
createCriteria
().
andResourceIdEqualTo
(
resourceId
)
.
andUserIdEqualTo
(
AuthUtils
.
getUser
().
getUserId
())
;
List
<
PanelLinkMapping
>
mappings
=
panelLinkMappingMapper
.
selectByExample
(
example
);
if
(
CollectionUtils
.
isEmpty
(
mappings
))
{
PanelLinkMapping
mapping
=
new
PanelLinkMapping
();
mapping
.
setResourceId
(
resourceId
);
mapping
.
setUserId
(
AuthUtils
.
getUser
().
getUserId
());
panelLinkMappingMapper
.
insert
(
mapping
);
}
return
convertDto
(
one
);
}
public
void
deleteByResourceId
(
String
resourceId
)
{
mapper
.
deleteByPrimaryKey
(
resourceId
);
PanelLinkExample
example
=
new
PanelLinkExample
();
example
.
createCriteria
().
andResourceIdEqualTo
(
resourceId
);
mapper
.
deleteByExample
(
example
);
}
public
String
decryptParam
(
String
text
)
throws
Exception
{
return
RsaUtil
.
decryptByPrivateKey
(
RsaProperties
.
privateKey
,
text
);
}
// 使用
共
钥加密
// 使用
公
钥加密
private
String
encrypt
(
String
sourceValue
)
{
try
{
return
RsaUtil
.
encryptByPublicKey
(
RsaProperties
.
publicKey
,
sourceValue
);
...
...
@@ -113,8 +139,12 @@ public class PanelLinkService {
return
null
;
}
private
String
buildLinkParam
(
String
resourceId
)
{
return
encrypt
(
resourceId
);
private
String
buildLinkParam
(
PanelLink
link
)
{
String
linkParam
=
encrypt
(
link
.
getResourceId
());
if
(
link
.
getUserId
()
!=
null
){
linkParam
=
linkParam
+
USERPARAM
+
link
.
getUserId
().
toString
();
}
return
linkParam
;
}
private
GenerateDto
convertDto
(
PanelLink
link
)
{
...
...
@@ -122,7 +152,7 @@ public class PanelLinkService {
result
.
setValid
(
link
.
getValid
());
result
.
setEnablePwd
(
link
.
getEnablePwd
());
result
.
setPwd
(
link
.
getPwd
());
result
.
setUri
(
BASEURL
+
buildLinkParam
(
link
.
getResourceId
()
));
result
.
setUri
(
BASEURL
+
buildLinkParam
(
link
));
result
.
setOverTime
(
link
.
getOverTime
());
return
result
;
}
...
...
@@ -134,14 +164,14 @@ public class PanelLinkService {
if
(!
panelLink
.
getEnablePwd
()
||
StringUtils
.
isEmpty
(
token
)
||
StringUtils
.
equals
(
"undefined"
,
token
)
||
StringUtils
.
equals
(
"null"
,
token
))
{
String
resourceId
=
panelLink
.
getResourceId
();
String
pwd
=
"dataease"
;
String
tk
=
JWTUtils
.
signLink
(
resourceId
,
pwd
);
String
tk
=
JWTUtils
.
signLink
(
resourceId
,
p
anelLink
.
getUserId
(),
p
wd
);
HttpServletResponse
httpServletResponse
=
ServletUtils
.
response
();
httpServletResponse
.
addHeader
(
"Access-Control-Expose-Headers"
,
"LINK-PWD-TOKEN"
);
httpServletResponse
.
setHeader
(
"LINK-PWD-TOKEN"
,
tk
);
return
false
;
}
if
(
StringUtils
.
isEmpty
(
panelLink
.
getPwd
()))
return
false
;
return
JWTUtils
.
verifyLink
(
token
,
panelLink
.
getResourceId
(),
panelLink
.
getPwd
());
return
JWTUtils
.
verifyLink
(
token
,
panelLink
.
getResourceId
(),
panelLink
.
get
UserId
(),
panelLink
.
get
Pwd
());
}
// 验证链接是否过期
...
...
@@ -155,11 +185,11 @@ public class PanelLinkService {
public
boolean
validatePwd
(
PasswordRequest
request
)
throws
Exception
{
String
password
=
request
.
getPassword
();
String
resourceId
=
request
.
getResourceId
();
PanelLink
one
=
findOne
(
resourceId
);
PanelLink
one
=
findOne
(
resourceId
,
request
.
getUser
()
);
String
pwd
=
one
.
getPwd
();
boolean
pass
=
StringUtils
.
equals
(
pwd
,
password
);
if
(
pass
)
{
String
token
=
JWTUtils
.
signLink
(
resourceId
,
password
);
String
token
=
JWTUtils
.
signLink
(
resourceId
,
request
.
getUser
(),
password
);
HttpServletResponse
httpServletResponse
=
ServletUtils
.
response
();
httpServletResponse
.
addHeader
(
"Access-Control-Expose-Headers"
,
"LINK-PWD-TOKEN"
);
httpServletResponse
.
setHeader
(
"LINK-PWD-TOKEN"
,
token
);
...
...
@@ -173,7 +203,7 @@ public class PanelLinkService {
public
String
getShortUrl
(
String
resourceId
)
{
PanelLinkMappingExample
example
=
new
PanelLinkMappingExample
();
example
.
createCriteria
().
andResourceIdEqualTo
(
resourceId
);
example
.
createCriteria
().
andResourceIdEqualTo
(
resourceId
)
.
andUserIdEqualTo
(
AuthUtils
.
getUser
().
getUserId
())
;
List
<
PanelLinkMapping
>
mappings
=
panelLinkMappingMapper
.
selectByExample
(
example
);
PanelLinkMapping
mapping
=
mappings
.
get
(
0
);
return
SHORT_URL_PREFIX
+
mapping
.
getId
();
...
...
@@ -182,7 +212,8 @@ public class PanelLinkService {
public
String
getUrlByIndex
(
Long
index
)
{
PanelLinkMapping
mapping
=
panelLinkMappingMapper
.
selectByPrimaryKey
(
index
);
String
resourceId
=
mapping
.
getResourceId
();
PanelLink
one
=
findOne
(
resourceId
);
Long
userId
=
mapping
.
getUserId
();
PanelLink
one
=
findOne
(
resourceId
,
userId
);
return
convertDto
(
one
).
getUri
();
}
}
backend/src/main/resources/db/migration/V29__de1.6.sql
浏览文件 @
a79a96f4
...
...
@@ -8,4 +8,11 @@ CREATE TABLE `dataset_row_permissions` (
`filter`
longtext
DEFAULT
NULL
COMMENT
'数值'
,
`update_time`
bigint
(
13
)
NULL
DEFAULT
NULL
,
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
COLLATE
utf8mb4_general_ci
;
\ No newline at end of file
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
COLLATE
utf8mb4_general_ci
;
ALTER
TABLE
`panel_link`
ADD
COLUMN
`user_id`
BIGINT
(
20
)
NULL
DEFAULT
NULL
;
ALTER
TABLE
`panel_link_mapping`
ADD
COLUMN
`user_id`
BIGINT
(
20
)
NULL
DEFAULT
NULL
;
ALTER
TABLE
`panel_link`
CHANGE
COLUMN
`user_id`
`user_id`
BIGINT
(
20
)
NOT
NULL
,
DROP
PRIMARY
KEY
;
backend/src/main/resources/generatorConfig.xml
浏览文件 @
a79a96f4
...
...
@@ -60,8 +60,7 @@
</javaClientGenerator>
<!--要生成的数据库表 -->
<table
tableName=
"dataset_row_permissions"
>
<columnOverride
column=
"filter"
javaType=
"java.lang.String"
jdbcType=
"VARCHAR"
/>
<table
tableName=
"panel_link_mapping"
>
</table>
...
...
frontend/public/link.html
浏览文件 @
a79a96f4
...
...
@@ -30,13 +30,16 @@
return
(
false
)
}
const
link
=
getQueryVariable
(
'link'
)
const
user
=
getQueryVariable
(
'user'
)
const
terminal
=
getQueryVariable
(
'terminal'
)
let
url
=
"/#/delink?link="
+
encodeURIComponent
(
link
)
if
(
terminal
)
{
url
+=
'&terminal='
+
terminal
}
if
(
user
)
{
url
+=
'&user='
+
user
}
window
.
location
.
href
=
url
</script>
</html>
frontend/src/api/link/index.js
浏览文件 @
a79a96f4
...
...
@@ -60,7 +60,7 @@ export function loadGenerate(resourceId) {
export
function
loadResource
(
resourceId
)
{
return
request
({
url
:
'api/link/resourceDetail/'
+
resourceId
,
method
:
'
pos
t'
method
:
'
ge
t'
})
}
...
...
frontend/src/components/canvas/custom-component/UserView.vue
浏览文件 @
a79a96f4
...
...
@@ -159,6 +159,7 @@ export default {
filter
.
drill
=
this
.
drillClickDimensionList
filter
.
resultCount
=
this
.
resultCount
filter
.
resultMode
=
this
.
resultMode
filter
.
user
=
this
.
element
.
user
filter
.
queryFrom
=
'panel'
return
filter
},
...
...
frontend/src/utils/index.js
浏览文件 @
a79a96f4
...
...
@@ -269,15 +269,16 @@ export function formatQuickCondition(param, quickField) {
}
export
function
getQueryVariable
(
variable
)
{
debugger
let
query
=
window
.
location
.
search
.
substring
(
1
)
if
(
!
query
)
{
query
=
Cookies
.
get
(
variable
)
}
const
vars
=
query
.
split
(
'&'
)
for
(
var
i
=
0
;
i
<
vars
.
length
;
i
++
)
{
const
pair
=
vars
[
i
].
split
(
'='
)
if
(
pair
[
0
]
===
variable
)
{
return
pair
[
1
]
}
if
(
query
!==
undefined
){
const
vars
=
query
.
split
(
'&'
)
for
(
var
i
=
0
;
i
<
vars
.
length
;
i
++
)
{
const
pair
=
vars
[
i
].
split
(
'='
)
if
(
pair
[
0
]
===
variable
)
{
return
pair
[
1
]
}
}
}
return
(
false
)
}
...
...
frontend/src/views/link/index.vue
浏览文件 @
a79a96f4
<
template
>
<div
style=
"height: 100%;"
>
<link-error
v-if=
"showIndex===0"
:resource-id=
"resourceId"
/>
<link-pwd
v-if=
"showIndex===1"
:resource-id=
"resourceId"
@
fresh-token=
"refreshToken"
/>
<link-view
v-if=
"showIndex===2"
:resource-id=
"resourceId"
/>
<link-expire
v-if=
"showIndex===3"
:resource-id=
"resourceId"
/>
<link-pwd
v-if=
"showIndex===1"
:resource-id=
"resourceId"
:user=
"user"
@
fresh-token=
"refreshToken"
/>
<link-view
v-if=
"showIndex===2"
:resource-id=
"resourceId"
:user=
"user"
/>
<link-expire
v-if=
"showIndex===3"
:resource-id=
"resourceId"
:user=
"user"
/>
</div>
</
template
>
<
script
>
...
...
@@ -23,6 +23,7 @@ export default {
resourceId
:
null
,
PARAMKEY
:
'link'
,
link
:
null
,
user
:
null
,
showIndex
:
-
1
}
},
...
...
@@ -33,17 +34,20 @@ export default {
loadInit
()
{
this
.
$store
.
commit
(
'setPublicLinkStatus'
,
true
)
debugger
// this.link = getQueryVariable(this.PARAMKEY)
this
.
link
=
this
.
$route
.
query
.
link
this
.
user
=
this
.
$route
.
query
.
user
if
(
!
this
.
link
)
{
this
.
link
=
getQueryVariable
(
this
.
PARAMKEY
)
}
if
(
!
this
.
user
)
{
this
.
user
=
getQueryVariable
(
'user'
)
}
if
(
!
this
.
link
)
{
this
.
showError
()
return
}
validate
({
link
:
encodeURIComponent
(
this
.
link
)
}).
then
(
res
=>
{
let
params
=
this
.
user
?
{
link
:
encodeURIComponent
(
this
.
link
),
user
:
this
.
user
}
:
{
link
:
encodeURIComponent
(
this
.
link
)};
validate
(
params
).
then
(
res
=>
{
const
{
resourceId
,
valid
,
enablePwd
,
passPwd
,
expire
}
=
res
.
data
this
.
resourceId
=
resourceId
// 如果链接无效 直接显示无效页面
...
...
frontend/src/views/link/pwd/index.vue
浏览文件 @
a79a96f4
...
...
@@ -45,6 +45,10 @@ export default {
resourceId
:
{
type
:
String
,
default
:
null
},
user
:
{
type
:
String
,
default
:
null
}
},
data
()
{
...
...
@@ -88,10 +92,7 @@ export default {
this
.
msg
=
null
this
.
$refs
.
pwdForm
.
validate
(
valid
=>
{
if
(
!
valid
)
return
false
const
param
=
{
password
:
this
.
form
.
password
,
resourceId
:
this
.
resourceId
}
const
param
=
this
.
user
?
{
password
:
this
.
form
.
password
,
resourceId
:
this
.
resourceId
,
user
:
this
.
user
}
:
{
password
:
this
.
form
.
password
,
resourceId
:
this
.
resourceId
}
validatePwd
(
param
).
then
(
res
=>
{
if
(
!
res
.
data
)
{
this
.
msg
=
this
.
$t
(
'pblink.pwd_error'
)
...
...
frontend/src/views/link/view/index.vue
浏览文件 @
a79a96f4
...
...
@@ -18,6 +18,10 @@ export default {
resourceId
:
{
type
:
String
,
default
:
null
},
user
:
{
type
:
String
,
default
:
null
}
},
data
()
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论