PermissionAdminAspect.java 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package jnpf.aop;
  2. import jnpf.constant.PermissionConstant;
  3. import jnpf.util.PermissionAspectUtil;
  4. import lombok.extern.slf4j.Slf4j;
  5. import org.aspectj.lang.ProceedingJoinPoint;
  6. import org.aspectj.lang.annotation.Around;
  7. import org.aspectj.lang.annotation.Aspect;
  8. import org.aspectj.lang.annotation.Pointcut;
  9. import org.springframework.stereotype.Component;
  10. /**
  11. * @author JNPF开发平台组
  12. * @version V3.1.0
  13. * @copyright 引迈信息技术有限公司
  14. * @date 2021/3/15 17:12
  15. */
  16. @Slf4j
  17. @Aspect
  18. @Component
  19. public class PermissionAdminAspect implements PermissionAdminBase {
  20. /**
  21. * 分级管理切点
  22. */
  23. @Pointcut("within(jnpf.*.controller.*) && @annotation(jnpf.annotation.OrganizeAdminIsTrator)")
  24. public void pointcut() {
  25. }
  26. /**
  27. * 分级管理切点
  28. *
  29. * @param pjp
  30. * @return
  31. * @throws Throwable
  32. */
  33. @Around("pointcut()")
  34. public Object around(ProceedingJoinPoint pjp) throws Throwable {
  35. return PermissionAdminBase.permissionCommon(pjp, this);
  36. }
  37. @Override
  38. public Boolean detailPermission(ProceedingJoinPoint pjp, String operatorUserId, String methodName) {
  39. switch (methodName) {
  40. case PermissionConstant.METHOD_SAVE:
  41. case PermissionConstant.METHOD_SAVE_BATCH:
  42. return true;
  43. case PermissionConstant.METHOD_UPDATE:
  44. //判断是否有当前组织的修改权限
  45. String organizeId = String.valueOf(pjp.getArgs()[0]);
  46. return PermissionAspectUtil.containPermission(organizeId, operatorUserId, methodName);
  47. default:
  48. return false;
  49. }
  50. }
  51. }