PermissionAdminBase.java 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package jnpf.aop;
  2. import jnpf.base.ActionResult;
  3. import jnpf.base.UserInfo;
  4. import jnpf.constant.MsgCode;
  5. import jnpf.util.UserProvider;
  6. import org.aspectj.lang.ProceedingJoinPoint;
  7. public interface PermissionAdminBase{
  8. /**
  9. * 详细的权限判断
  10. * @param pjp AOP切点参数
  11. * @param operatorUserId 操作者对象
  12. */
  13. Boolean detailPermission(ProceedingJoinPoint pjp, String operatorUserId, String methodName);
  14. /**
  15. * 管理者权限判断
  16. *
  17. */
  18. static Object permissionCommon(ProceedingJoinPoint pjp, PermissionAdminBase permissionAdminBase) throws Throwable {
  19. // 获取用户信息
  20. UserInfo operatorUser = UserProvider.getUser();
  21. // 是否是管理员
  22. if(operatorUser.getIsAdministrator()){
  23. return pjp.proceed();
  24. }else {
  25. // 获取方法名
  26. String methodName = pjp.getSignature().getName();
  27. // 具体方法权限
  28. if(permissionAdminBase.detailPermission(pjp, operatorUser.getUserId(),methodName)){
  29. return pjp.proceed();
  30. }
  31. }
  32. return ActionResult.fail(MsgCode.FA021.get());
  33. }
  34. }