检查权限切面类

master
kanade 3 years ago
parent c1a948bdc6
commit db44f975f2

@ -1,8 +1,13 @@
package com.zh.project0512.aop; package com.zh.project0512.aop;
import com.zh.project0512.annotation.AdminCheckAuthorityAnnotation; import com.zh.project0512.annotation.AdminCheckAuthorityAnnotation;
import com.zh.project0512.model.Admin;
import com.zh.project0512.service.IAdminRoleService;
import com.zh.project0512.service.IAdminService;
import com.zh.project0512.service.IUserService; import com.zh.project0512.service.IUserService;
import com.zh.project0512.utils.BizException;
import com.zh.project0512.utils.JwtUtil; import com.zh.project0512.utils.JwtUtil;
import com.zh.project0512.utils.result.HttpStatusEnum;
import jdk.nashorn.internal.ir.annotations.Reference; import jdk.nashorn.internal.ir.annotations.Reference;
import org.aspectj.lang.JoinPoint; import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.AfterReturning;
@ -37,7 +42,9 @@ public class AdminCheckAuthorityAspect {
private final static Logger logger = LoggerFactory.getLogger(AdminCheckAuthorityAspect.class); private final static Logger logger = LoggerFactory.getLogger(AdminCheckAuthorityAspect.class);
@Resource @Resource
IUserService userService; IAdminService adminService;
@Resource
IAdminRoleService adminRoleService;
/** /**
@ -59,38 +66,36 @@ public class AdminCheckAuthorityAspect {
//获取当前用户的信息 //获取当前用户的信息
String tokenId = request.getHeader("token"); String tokenId = request.getHeader("token");
Integer userId = userService.selByOpenid(new JwtUtil().parseOpenid(tokenId)).getId(); Integer id = Integer.valueOf(new JwtUtil().parseAdminJWT(tokenId).getId());
// //如果不是超级管理员,则判断是否有足够权限 Admin admin = adminService.getById(id);
// if (manageUser.getType() != 1){//1.公司超级管理员 //1、查询【当前用户】所拥有的【角色】
// //1、查询【当前用户】所拥有的【角色】 String roleIdsStr = admin.getRoleIds();
// String roleIdsStr = manageUser.getRoleId(); if (roleIdsStr != null && !roleIdsStr.trim().equals("")){
// if (roleIdsStr != null){ String[] roleIds = roleIdsStr.split(",");
// String[] roleIds = roleIdsStr.split(",");
// HashSet<Integer> jurisdictionIds = new HashSet<>();
// HashSet<Integer> jurisdictionIds = new HashSet<>(); for (String roleId : roleIds) {
// for (String roleId : roleIds) { //2、根据【角色】查询对应的权限
// //2、根据【角色】查询对应的权限 List<Integer> jurisdictionIdList = adminRoleService.findJurisdictionByRoleId(roleId);
// List<Integer> jurisdictionIdList = manageCheckAuthorityService.findJurisdictionByRoleId(roleId,sysCommunity);
// //3、将各个角色的权限 合在一起 并进行 去重操作
// //3、将各个角色的权限 合在一起 并进行 去重操作 jurisdictionIds.addAll(jurisdictionIdList);
// jurisdictionIds.addAll(jurisdictionIdList); }
// }
//
// //4、获取该api所需权限
// //4、获取该api所需权限 MethodSignature signature = (MethodSignature) joinPoint.getSignature();
// MethodSignature signature = (MethodSignature) joinPoint.getSignature(); AdminCheckAuthorityAnnotation annotation = signature.getMethod().getAnnotation(AdminCheckAuthorityAnnotation.class);
// ManageCheckAuthorityAnnotation annotation = signature.getMethod().getAnnotation(ManageCheckAuthorityAnnotation.class); String jurisdictionId = annotation.jurisdictionId();
// String jurisdictionId = annotation.jurisdictionId();
// //5、判断该用户是否存在该api所需权限,如果存在,则通过,不存在则抛出提示权限不足
// //5、判断该用户是否存在该api所需权限,如果存在,则通过,不存在则抛出提示权限不足 if (!jurisdictionIds.contains(Integer.valueOf(jurisdictionId))){
// if (!jurisdictionIds.contains(Integer.valueOf(jurisdictionId))){ throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"用户权限不足");
// throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"用户权限不足"); }
// } }else {
// }else { throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"用户权限不足");
// throw new BizException(HttpStatusEnum.CUSTOM_EXCEPTION,"用户权限不足"); }
// }
// }
} }

@ -1,5 +1,6 @@
package com.zh.project0512.controller.manage; package com.zh.project0512.controller.manage;
import com.zh.project0512.annotation.AdminCheckAuthorityAnnotation;
import com.zh.project0512.model.dto.OperationRoleJurisdictionDTO; import com.zh.project0512.model.dto.OperationRoleJurisdictionDTO;
import com.zh.project0512.model.dto.AdminJurisdictionFBIDTO; import com.zh.project0512.model.dto.AdminJurisdictionFBIDTO;
import com.zh.project0512.model.vo.AdminJurisdictionFBRIVo; import com.zh.project0512.model.vo.AdminJurisdictionFBRIVo;
@ -34,6 +35,7 @@ public class AdminJurisdictionController {
* @param operationRoleJurisdictionDTO DTO * @param operationRoleJurisdictionDTO DTO
* @return * @return
*/ */
@AdminCheckAuthorityAnnotation(jurisdictionId = "5")
@Operation(summary = "操作角色权限") @Operation(summary = "操作角色权限")
@PostMapping("/operationRoleJurisdiction") @PostMapping("/operationRoleJurisdiction")
public Result<String> operationRoleJurisdiction(@Validated @RequestBody OperationRoleJurisdictionDTO operationRoleJurisdictionDTO){ public Result<String> operationRoleJurisdiction(@Validated @RequestBody OperationRoleJurisdictionDTO operationRoleJurisdictionDTO){

@ -94,5 +94,10 @@ public class Admin extends Model {
*/ */
private Integer status; private Integer status;
/**
* id,
*/
@TableField("roleIds")
private String roleIds;
} }

@ -16,7 +16,7 @@ import java.io.Serializable;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@TableName("userJurisdiction") @TableName("adminJurisdiction")
public class AdminJurisdiction implements Serializable { public class AdminJurisdiction implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**

@ -16,7 +16,7 @@ import java.io.Serializable;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@TableName("userMenus") @TableName("adminMenus")
public class AdminMenus implements Serializable { public class AdminMenus implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

@ -16,7 +16,7 @@ import java.io.Serializable;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@TableName("userOperation") @TableName("adminOperation")
public class AdminOperation implements Serializable { public class AdminOperation implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

@ -17,7 +17,7 @@ import java.util.Date;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@TableName("userRole") @TableName("adminRole")
public class AdminRole implements Serializable { public class AdminRole implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

@ -16,7 +16,7 @@ import java.io.Serializable;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@TableName("userRoleJurisdiction") @TableName("adminRoleJurisdiction")
public class AdminRoleJurisdiction implements Serializable { public class AdminRoleJurisdiction implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

@ -6,6 +6,8 @@ import com.zh.project0512.model.dto.AdminRoleUpdateDTO;
import com.zh.project0512.model.vo.AdminRoleListVo; import com.zh.project0512.model.vo.AdminRoleListVo;
import com.zh.project0512.utils.page.PageInfo; import com.zh.project0512.utils.page.PageInfo;
import java.util.List;
public interface IAdminRoleService { public interface IAdminRoleService {
/** /**
* *
@ -27,4 +29,11 @@ public interface IAdminRoleService {
* @return * @return
*/ */
boolean update(AdminRoleUpdateDTO adminRoleUpdateDTO); boolean update(AdminRoleUpdateDTO adminRoleUpdateDTO);
/**
*
* @param roleId id
* @return
*/
List<Integer> findJurisdictionByRoleId(String roleId);
} }

@ -3,8 +3,10 @@ package com.zh.project0512.serviceImpl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zh.project0512.mapper.AdminRoleJurisdictionMapper;
import com.zh.project0512.mapper.AdminRoleMapper; import com.zh.project0512.mapper.AdminRoleMapper;
import com.zh.project0512.model.AdminRole; import com.zh.project0512.model.AdminRole;
import com.zh.project0512.model.AdminRoleJurisdiction;
import com.zh.project0512.model.dto.AdminRoleInsertDTO; import com.zh.project0512.model.dto.AdminRoleInsertDTO;
import com.zh.project0512.model.dto.AdminRoleListDTO; import com.zh.project0512.model.dto.AdminRoleListDTO;
import com.zh.project0512.model.dto.AdminRoleUpdateDTO; import com.zh.project0512.model.dto.AdminRoleUpdateDTO;
@ -27,6 +29,8 @@ import java.util.UUID;
public class AdminRoleServiceImpl implements IAdminRoleService { public class AdminRoleServiceImpl implements IAdminRoleService {
@Resource @Resource
AdminRoleMapper adminRoleMapper; AdminRoleMapper adminRoleMapper;
@Resource
AdminRoleJurisdictionMapper adminRoleJurisdictionMapper;
@Override @Override
public PageInfo<AdminRoleListVo> list(AdminRoleListDTO adminRoleListDTO) { public PageInfo<AdminRoleListVo> list(AdminRoleListDTO adminRoleListDTO) {
@ -69,4 +73,18 @@ public class AdminRoleServiceImpl implements IAdminRoleService {
int update = adminRoleMapper.updateById(adminRole); int update = adminRoleMapper.updateById(adminRole);
return update > 0; return update > 0;
} }
@Override
public List<Integer> findJurisdictionByRoleId(String roleId) {
ArrayList<Integer> jurisdictionIds = new ArrayList<>();
QueryWrapper<AdminRoleJurisdiction> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("role_id",roleId);
List<AdminRoleJurisdiction> adminRoleJurisdictionList = adminRoleJurisdictionMapper.selectList(queryWrapper);
for (AdminRoleJurisdiction adminRoleJurisdiction : adminRoleJurisdictionList) {
jurisdictionIds.add(adminRoleJurisdiction.getJurisdictionId());
}
return jurisdictionIds;
}
} }

Loading…
Cancel
Save