package jnpf.aop; import jnpf.aop.constant.PermissionConstant; 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.stereotype.Component; /** * 角色操作权限 * * @author JNPF开发平台组 YanYu * @version V3.2.0 * @copyright 引迈信息技术有限公司 * @date 2022/2/10 */ @Slf4j @Aspect @Component public class PermissionRoleAspect implements PermissionAdminBase { /** * 分级管理切点 */ @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) { switch (methodName) { case PermissionConstant.METHOD_CREATE: case PermissionConstant.METHOD_UPDATE: return true; case PermissionConstant.METHOD_DELETE: return true; default: break; } return false; } }