| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- package jnpf.aop;
- import jnpf.constant.PermissionConstant;
- import jnpf.permission.service.RoleService;
- import jnpf.util.UserProvider;
- import lombok.extern.slf4j.Slf4j;
- import org.aspectj.lang.ProceedingJoinPoint;
- import org.aspectj.lang.annotation.Around;
- import org.aspectj.lang.annotation.Aspect;
- import org.aspectj.lang.annotation.Pointcut;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import java.util.List;
- /**
- * 角色操作权限
- *
- * @author JNPF开发平台组 YanYu
- * @version V3.2.0
- * @copyright 引迈信息技术有限公司
- * @date 2022/2/10
- */
- @Slf4j
- @Aspect
- @Component
- public class PermissionRoleAspect implements PermissionAdminBase {
- @Autowired
- private RoleService roleService;
- /**
- * 分级管理切点
- */
- @Pointcut("within(jnpf.*.controller.*) && @annotation(jnpf.annotation.RolePermission)")
- public void pointcut() {
- }
- /**
- * 分级管理切点
- *
- * @param pjp
- * @return
- * @throws Throwable
- */
- @Around("pointcut()")
- public Object around(ProceedingJoinPoint pjp) throws Throwable {
- return PermissionAdminBase.permissionCommon(pjp, this);
- }
- @Override
- public Boolean detailPermission(ProceedingJoinPoint pjp, String operatorUserId, String methodName) {
- boolean flag = false;
- switch (methodName) {
- case PermissionConstant.METHOD_CREATE:
- case PermissionConstant.METHOD_UPDATE:
- return true;
- case PermissionConstant.METHOD_DELETE:
- return true;
- default:
- break;
- }
- return true;
- }
- /**
- * 转成组织id字符串
- *
- * @param orgIdsTree
- * @return
- */
- private String getOrganize(List<List<String>> orgIdsTree) {
- StringBuilder orgIds = new StringBuilder();
- for (List<String> list : orgIdsTree) {
- if (list.size() > 0) {
- String orgId = list.get(list.size() - 1);
- orgIds.append(orgId + ",");
- }
- }
- return orgIds.toString();
- }
- /**
- * 全局角色只能超管来操作
- *
- * @param globalMark 全局标识 1:全局 0: 非全局
- */
- private Boolean checkAdminGlobal(Integer globalMark) {
- if (globalMark != null && globalMark == 1) {
- return UserProvider.getUser().getIsAdministrator();
- }
- return false;
- }
- }
|