文件下载权限判断完成

This commit is contained in:
20932067@zju.edu.cn 2021-02-19 18:23:03 +08:00
parent 3fc0ef7d6d
commit db118aec37
4 changed files with 55 additions and 26 deletions

View File

@ -201,4 +201,8 @@ public class FileController extends HcyBaseController {
return AjaxResult.error(ReturnConstants.SYS_ERROR);
}
}
@GetMapping("/download/api")
public AjaxResult api(){
return AjaxResult.success("8085");
}
}

View File

@ -98,7 +98,7 @@ public class SysUserController extends BaseController {
@GetMapping(value = {"/", "/{userId}"})
public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) {
AjaxResult ajax = AjaxResult.success();
List<SysRole> roles = roleService.selectRoleAll(1);
List<SysRole> roles = roleService.selectRoleAll(0);
ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
ajax.put("posts", postService.selectPostAll());
if (StringUtils.isNotNull(userId)) {

View File

@ -101,19 +101,19 @@ public class ${ClassName}ServiceImpl implements ${ClassName}Service {
#if($table.sub)
int renewal = ${className}Dao.insert${ClassName}(${className});
if (insert${subClassName}(${className})){
return new ServerResult<Integer>(false,ReturnConstants.DB_EX);
return new ServerResult<>(false,ReturnConstants.DB_EX);
}
#else
Integer renewal = ${className}Dao.insert${ClassName}(${className});
#end
if (renewal >0){
return new ServerResult<Integer>(true,renewal);
return new ServerResult<>(true,renewal);
}else {
return new ServerResult<Integer>(false,ReturnConstants.SYS_FAILL);
return new ServerResult<>(false,ReturnConstants.SYS_FAILL);
}
}catch (RuntimeException e){
logger.error(e.getMessage());
return new ServerResult<Integer>(false,ReturnConstants.DB_EX);
return new ServerResult<>(false,ReturnConstants.DB_EX);
}
}
@ -137,18 +137,18 @@ public class ${ClassName}ServiceImpl implements ${ClassName}Service {
#if($table.sub)
${className}Dao.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}());
if (insert${subClassName}(${className})){
return new ServerResult<Integer>(false,ReturnConstants.DB_EX);
return new ServerResult<>(false,ReturnConstants.DB_EX);
}
#end
Integer renewal = ${className}Dao.update${ClassName}(${className});
if (renewal >0){
return new ServerResult<Integer>(true,renewal);
return new ServerResult<>(true,renewal);
}else {
return new ServerResult<Integer>(false,ReturnConstants.SYS_FAILL);
return new ServerResult<>(false,ReturnConstants.SYS_FAILL);
}
}catch (RuntimeException e){
logger.error(e.getMessage());
return new ServerResult<Integer>(false,ReturnConstants.DB_EX);
return new ServerResult<>(false,ReturnConstants.DB_EX);
}
}
@ -170,16 +170,16 @@ public class ${ClassName}ServiceImpl implements ${ClassName}Service {
#end
Integer renewal = ${className}Dao.delete${ClassName}ByIds(${pkColumn.javaField}s);
if (renewal >0){
return new ServerResult<Integer>(true,renewal);
return new ServerResult<>(true,renewal);
}else {
return new ServerResult<Integer>(false,ReturnConstants.SYS_FAILL);
return new ServerResult<>(false,ReturnConstants.SYS_FAILL);
}
}catch (RuntimeException e){
#if($table.sub)
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
#end
logger.error(e.getMessage());
return new ServerResult<Integer>(false,ReturnConstants.DB_EX);
return new ServerResult<>(false,ReturnConstants.DB_EX);
}
}
@ -198,13 +198,13 @@ public class ${ClassName}ServiceImpl implements ${ClassName}Service {
#end
Integer renewal = ${className}Dao.delete${ClassName}ById(${pkColumn.javaField});
if (renewal >0){
return new ServerResult<Integer>(true,renewal);
return new ServerResult<>(true,renewal);
}else {
return new ServerResult<Integer>(false,ReturnConstants.SYS_FAILL);
return new ServerResult<>(false,ReturnConstants.SYS_FAILL);
}
}catch (RuntimeException e){
logger.error(e.getMessage());
return new ServerResult<Integer>(false,ReturnConstants.DB_EX);
return new ServerResult<>(false,ReturnConstants.DB_EX);
}
}
#if($table.sub)

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import com.hchyun.common.constant.ReturnConstants;
import com.hchyun.common.core.entity.entity.SysRole;
import com.hchyun.common.core.entity.model.LoginUser;
import com.hchyun.common.utils.SecurityUtils;
import com.hchyun.common.utils.ServerResult;
@ -41,13 +42,13 @@ public class FileServiceImpl implements FileService {
try {
SysFile sysFile = fileDao.selectFileById(fileId);
if (sysFile != null) {
return new ServerResult<SysFile>(true, sysFile);
return new ServerResult<>(true, sysFile);
} else {
return new ServerResult<SysFile>(false, ReturnConstants.RESULT_EMPTY);
return new ServerResult<>(false, ReturnConstants.RESULT_EMPTY);
}
} catch (RuntimeException e) {
logger.error(e.getMessage());
return new ServerResult<SysFile>(false, ReturnConstants.DB_EX);
return new ServerResult<>(false, ReturnConstants.DB_EX);
}
}
@ -110,13 +111,13 @@ public class FileServiceImpl implements FileService {
sysFile.setUpdateBy(SecurityUtils.getUserId());
Integer renewal = fileDao.updateFile(sysFile);
if (renewal > 0) {
return new ServerResult<Integer>(true, renewal);
return new ServerResult<>(true, renewal);
} else {
return new ServerResult<Integer>(false, ReturnConstants.SYS_FAILL);
return new ServerResult<>(false, ReturnConstants.SYS_FAILL);
}
} catch (RuntimeException e) {
logger.error(e.getMessage());
return new ServerResult<Integer>(false, ReturnConstants.DB_EX);
return new ServerResult<>(false, ReturnConstants.DB_EX);
}
}
@ -140,9 +141,9 @@ public class FileServiceImpl implements FileService {
}
Integer renewal = fileDao.deleteFileByIds(fileIds);
if (renewal > 0) {
return new ServerResult<Integer>(true, renewal);
return new ServerResult<>(true, renewal);
} else {
return new ServerResult<Integer>(false, ReturnConstants.SYS_FAILL);
return new ServerResult<>(false, ReturnConstants.SYS_FAILL);
}
} catch (RuntimeException e) {
logger.error(e.getMessage());
@ -154,6 +155,30 @@ public class FileServiceImpl implements FileService {
public ServerResult<SysFile> downloadFile(Long fileId, LoginUser loginUser) {
try {
SysFile sysFile = fileDao.selectFileById(fileId);
if (sysFile.getIsPublic().equals("2")){
if (loginUser == null){
return new ServerResult<>(false,"请登录后再试!");
}else {
if (!loginUser.getUser().isAdmin()){
String[] roleIds = sysFile.getRoleIds().split(",");
boolean start = true;
for (SysRole role : loginUser.getUser().getRoles()) {
for (String roleId : roleIds) {
if (String.valueOf(role.getRoleId()).equals(roleId)){
start = false;
break;
}
}
if (!start){
break;
}
}
if (start){
return new ServerResult<>(false,"您没有下载该文件的权限!");
}
}
}
}
String fileName = FtpUtils.downloadFile(sysFile);
if (fileName == null) {
return new ServerResult<>(false, "文件下载失败!");
@ -177,13 +202,13 @@ public class FileServiceImpl implements FileService {
try {
Integer renewal = fileDao.deleteFileById(fileId);
if (renewal > 0) {
return new ServerResult<Integer>(true, renewal);
return new ServerResult<>(true, renewal);
} else {
return new ServerResult<Integer>(false, ReturnConstants.SYS_FAILL);
return new ServerResult<>(false, ReturnConstants.SYS_FAILL);
}
} catch (RuntimeException e) {
logger.error(e.getMessage());
return new ServerResult<Integer>(false, ReturnConstants.DB_EX);
return new ServerResult<>(false, ReturnConstants.DB_EX);
}
}