Compare commits
No commits in common. "8dc4c731d0ce478bab43e75c237f3f03cb3e117e" and "e0d3fc23ed0ea597eea69b7d1067d4113f4f6408" have entirely different histories.
8dc4c731d0
...
e0d3fc23ed
|
|
@ -1,31 +0,0 @@
|
|||
package com.electromagnetic.industry.software.manage.aop;
|
||||
|
||||
import com.electromagnetic.industry.software.common.annotations.RequiredPermission;
|
||||
import com.electromagnetic.industry.software.common.enums.FilePermission;
|
||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||
import com.electromagnetic.industry.software.manage.service.PermissionService;
|
||||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.aspectj.lang.annotation.Before;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
@Aspect
|
||||
@Component
|
||||
public class PermissionAspect {
|
||||
|
||||
@Resource
|
||||
PermissionService permissionService;
|
||||
|
||||
@Before("@annotation(requiredPermission) && args(id)")
|
||||
public void requirePermission(RequiredPermission requiredPermission, String id) {
|
||||
|
||||
FilePermission filePermission = requiredPermission.value();
|
||||
String userId = UserThreadLocal.getUserId();
|
||||
Map<String,Boolean> permissions = permissionService.getUserPermission(userId,id);
|
||||
if (!permissions.get(filePermission.getCode()).equals(Boolean.TRUE)) {
|
||||
throw new SecurityException("用户无权限执行此操作");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -37,10 +37,4 @@ public interface PermissionService {
|
|||
* @return
|
||||
*/
|
||||
Map<String, Boolean> transToMap(List<String> permissionCodes);
|
||||
|
||||
/**
|
||||
* 检查文件id列表是否可具有导出权限
|
||||
* @param ids
|
||||
*/
|
||||
String[] filterExportIds(String[] ids);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import com.electromagnetic.industry.software.manage.mapper.UserRoleMapper;
|
|||
import com.electromagnetic.industry.software.manage.pojo.models.RolePermission;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.UserRole;
|
||||
import com.electromagnetic.industry.software.manage.service.PermissionService;
|
||||
import com.electromagnetic.industry.software.manage.service.RolePermissionService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
|
@ -38,7 +37,7 @@ public class PermissionServiceImpl implements PermissionService {
|
|||
|
||||
List<String> roleIds = getRoles(userId);
|
||||
// 只有当 roleIds 不为空且不为 null 时,才添加 in 条件
|
||||
if (roleIds.isEmpty()) {
|
||||
if (CollUtil.isEmpty(roleIds)) {
|
||||
return new HashMap<>();
|
||||
}
|
||||
LambdaQueryWrapper<RolePermission> queryWrapper1 = new LambdaQueryWrapper<>();
|
||||
|
|
@ -59,10 +58,6 @@ public class PermissionServiceImpl implements PermissionService {
|
|||
String userId = UserThreadLocal.getUserId();
|
||||
List<String> roleIds = getRoles(userId);
|
||||
|
||||
if (roleIds ==null || roleIds.isEmpty()) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<RolePermission> queryWrapper1 = new LambdaQueryWrapper<>();
|
||||
queryWrapper1.select(RolePermission::getFileId)
|
||||
.in(RolePermission::getRoleId, roleIds)
|
||||
|
|
@ -117,29 +112,4 @@ public class PermissionServiceImpl implements PermissionService {
|
|||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查文件id列表是否可具有导出权限
|
||||
* @param ids
|
||||
*/
|
||||
@Override
|
||||
public String[] filterExportIds(String[] ids){
|
||||
if (ids.length==0) {
|
||||
return ids;
|
||||
}
|
||||
String userId=UserThreadLocal.getUserId();
|
||||
List<String> roleIds = getRoles(userId);
|
||||
List<String> result = new ArrayList<>();
|
||||
for (String id : ids) {
|
||||
LambdaQueryWrapper<RolePermission> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(RolePermission::getFileId, id)
|
||||
.eq(RolePermission::getPermissionCode, FilePermission.EXPORT.getCode())
|
||||
.in(RolePermission::getRoleId, roleIds);
|
||||
List<RolePermission> list = rolePermissionMapper.selectList(queryWrapper);
|
||||
if (!list.isEmpty()) {
|
||||
result.add(id);
|
||||
}
|
||||
}
|
||||
return result.toArray(new String[0]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
package com.electromagnetic.industry.software.common.annotations;
|
||||
|
||||
import com.electromagnetic.industry.software.common.enums.FilePermission;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.METHOD)
|
||||
public @interface RequiredPermission {
|
||||
FilePermission value();
|
||||
}
|
||||
Loading…
Reference in New Issue