| 123456789101112131415161718192021222324252627282930313233343536373839 |
- package jnpf.aop;
- import jnpf.base.ActionResult;
- import jnpf.base.UserInfo;
- import jnpf.constant.MsgCode;
- import jnpf.util.UserProvider;
- import org.aspectj.lang.ProceedingJoinPoint;
- public interface PermissionAdminBase{
- /**
- * 详细的权限判断
- * @param pjp AOP切点参数
- * @param operatorUserId 操作者对象
- */
- Boolean detailPermission(ProceedingJoinPoint pjp, String operatorUserId, String methodName);
- /**
- * 管理者权限判断
- *
- */
- static Object permissionCommon(ProceedingJoinPoint pjp, PermissionAdminBase permissionAdminBase) throws Throwable {
- // 获取用户信息
- UserInfo operatorUser = UserProvider.getUser();
- // 是否是管理员
- if(operatorUser.getIsAdministrator()){
- return pjp.proceed();
- }else {
- // 获取方法名
- String methodName = pjp.getSignature().getName();
- // 具体方法权限
- if(permissionAdminBase.detailPermission(pjp, operatorUser.getUserId(),methodName)){
- return pjp.proceed();
- }
- }
- return ActionResult.fail(MsgCode.FA021.get());
- }
- }
|