Merge branch 'dev' into pr@dev@pages

This commit is contained in:
taojinlong 2023-03-08 11:26:31 +08:00
commit 37c78583d2
9 changed files with 50 additions and 21 deletions

View File

@ -17,4 +17,9 @@ public class CurrentUserDto extends SysUserEntity implements Serializable {
@ApiModelProperty("权限集合")
private List<String> permissions;
public CurrentUserDto(String username, String nickName) {
super.setUsername(username);
super.setNickName(nickName);
}
}

View File

@ -129,7 +129,7 @@ public class ShiroServiceImpl implements ShiroService {
filterChainDefinitionMap.put("/panel/group/exportDetails", ANON);
filterChainDefinitionMap.put("/dataset/field/linkMultFieldValues", "link");
filterChainDefinitionMap.put("/dataset/field/linkMappingFieldValues", "link");
filterChainDefinitionMap.put("/systemInfo/proxyUserLoginInfo/**", ANON);
filterChainDefinitionMap.put("/systemInfo/proxyUserLoginInfo", ANON);
filterChainDefinitionMap.put("/**", "authc");

View File

@ -1,14 +1,20 @@
package io.dataease.controller.sys;
import com.auth0.jwt.JWT;
import com.auth0.jwt.interfaces.DecodedJWT;
import io.dataease.auth.filter.F2CLinkFilter;
import io.dataease.dto.UserLoginInfoDTO;
import io.dataease.service.SystemInfoService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
@ApiIgnore
@ -23,8 +29,17 @@ public class SystemInfoController {
return systemInfoService.getUserLoginInfo(null);
}
@GetMapping("proxyUserLoginInfo/{userId}")
public UserLoginInfoDTO proxyUserLoginInfo(@PathVariable String userId) throws IOException {
return systemInfoService.getUserLoginInfo(userId);
@GetMapping("proxyUserLoginInfo")
public UserLoginInfoDTO proxyUserLoginInfo() throws IOException {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
.getRequest();
String linkToken = request.getHeader(F2CLinkFilter.LINK_TOKEN_KEY);
if (StringUtils.isNotEmpty(linkToken)) {
DecodedJWT jwt = JWT.decode(linkToken);
return systemInfoService.getUserLoginInfo(jwt.getClaim("userId").asLong());
} else {
return null;
}
}
}

View File

@ -22,4 +22,9 @@ public class UserLoginInfoDTO {
this.userInfo = userInfo;
this.ip = ip;
}
public UserLoginInfoDTO(String username, String nickname, String ip) {
this.userInfo = new CurrentUserDto(username, nickname);
this.ip = ip;
}
}

View File

@ -2,12 +2,10 @@ package io.dataease.service;
import io.dataease.auth.api.dto.CurrentUserDto;
import io.dataease.commons.utils.AuthUtils;
import io.dataease.commons.utils.BeanUtils;
import io.dataease.commons.utils.IPUtils;
import io.dataease.dto.UserLoginInfoDTO;
import io.dataease.plugins.common.base.domain.SysUser;
import io.dataease.plugins.common.base.mapper.SysUserMapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -18,14 +16,18 @@ public class SystemInfoService {
@Resource
private SysUserMapper sysUserMapper;
public UserLoginInfoDTO getUserLoginInfo(String userId) {
if (StringUtils.isNotEmpty(userId)) {
SysUser userInfo = sysUserMapper.selectByPrimaryKey(Long.parseLong(userId));
CurrentUserDto userDto = new CurrentUserDto();
BeanUtils.copyBean(userDto, userInfo);
return new UserLoginInfoDTO(userDto, IPUtils.get());
public UserLoginInfoDTO getUserLoginInfo(Long userId) {
if (userId != null) {
SysUser userInfo = sysUserMapper.selectByPrimaryKey(userId);
return new UserLoginInfoDTO(userInfo.getUsername(), userInfo.getNickName(), IPUtils.get());
}
CurrentUserDto userDto = AuthUtils.getUser();
if (userDto != null) {
return new UserLoginInfoDTO(userDto.getUsername(), userDto.getNickName(), IPUtils.get());
} else {
return new UserLoginInfoDTO(null, null, IPUtils.get());
}
return new UserLoginInfoDTO(AuthUtils.getUser(), IPUtils.get());
}
}

View File

@ -8,9 +8,9 @@ export function userLoginInfo() {
})
}
export function proxyUserLoginInfo(userId) {
export function proxyUserLoginInfo() {
return request({
url: '/systemInfo/proxyUserLoginInfo/' + userId,
url: '/systemInfo/proxyUserLoginInfo',
method: 'get',
loading: false
})

View File

@ -485,7 +485,7 @@ export default {
activeWatermark(this.panelInfo.watermarkInfo.settingContent, this.userInfo, waterDomId, this.canvasId, this.panelInfo.watermarkOpen)
} else {
const method = this.userId ? proxyUserLoginInfo : userLoginInfo
method(this.userId).then(res => {
method().then(res => {
this.userInfo = res.data
activeWatermark(this.panelInfo.watermarkInfo.settingContent, this.userInfo, waterDomId, this.canvasId, this.panelInfo.watermarkOpen)
})

View File

@ -911,8 +911,9 @@ export default {
},
initTableInfo() {
if (this.param.tableId) {
getTable(this.param.tableId).then((response) => {
const tableId = this.param.tableId || this.$route.query.id
if (tableId) {
getTable(tableId).then((response) => {
const table = response.data
this.dataSource = table.dataSourceId
this.changeDatasource()

View File

@ -1127,8 +1127,9 @@ export default {
},
filterNode(value, data) {
if (!value) return true
const result = data.label.toLowerCase().indexOf(value.toLowerCase()) !== -1
if (this.searchType === 'folder') {
if (data.nodeType === 'folder' && data.label.indexOf(value) !== -1) {
if (data.nodeType === 'folder' && result) {
this.searchPids.push(data.id)
return true
}
@ -1139,7 +1140,7 @@ export default {
return true
}
} else {
return data.label.indexOf(value) !== -1
return result
}
return false
},