|
|
@@ -1,5 +1,6 @@
|
|
|
package com.fdkankan.scene.Interceptor;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.fdkankan.common.constant.CommonStatus;
|
|
|
import com.fdkankan.common.constant.ErrorCode;
|
|
|
@@ -16,7 +17,10 @@ import com.fdkankan.web.user.SSOLoginHelper;
|
|
|
import com.fdkankan.web.user.SSOUser;
|
|
|
import com.fdkankan.web.util.WebUtil;
|
|
|
import java.io.IOException;
|
|
|
+import java.util.HashSet;
|
|
|
+import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
+import java.util.Set;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import lombok.extern.log4j.Log4j2;
|
|
|
import org.aspectj.lang.JoinPoint;
|
|
|
@@ -24,6 +28,7 @@ import org.aspectj.lang.annotation.Aspect;
|
|
|
import org.aspectj.lang.annotation.Before;
|
|
|
import org.aspectj.lang.annotation.Pointcut;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.core.annotation.Order;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.web.context.request.RequestContextHolder;
|
|
|
@@ -35,6 +40,31 @@ import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
@Order(101)
|
|
|
public class CheckPermitAspect {
|
|
|
|
|
|
+ private static Set<String> demoAllowApis = new HashSet<>();
|
|
|
+
|
|
|
+ static {
|
|
|
+ demoAllowApis.add("/tag/list");
|
|
|
+ demoAllowApis.add("/linkPan/list");
|
|
|
+ demoAllowApis.add("/getInfo");
|
|
|
+ demoAllowApis.add("/downloadPanorama");
|
|
|
+ demoAllowApis.add("/downloadBallScreenVideo");
|
|
|
+ demoAllowApis.add("/getAuth");
|
|
|
+ demoAllowApis.add("/tour/video/download");
|
|
|
+ demoAllowApis.add("/mosaics/list");
|
|
|
+ demoAllowApis.add("/filter/list");
|
|
|
+ demoAllowApis.add("/surveillance/list");
|
|
|
+ demoAllowApis.add("/billboards/list");
|
|
|
+ demoAllowApis.add("/cutModel/list");
|
|
|
+ demoAllowApis.add("/point/getLatAndLon");
|
|
|
+ demoAllowApis.add("/box4/getInfos");
|
|
|
+ demoAllowApis.add("/dynamicPanel/list");
|
|
|
+ demoAllowApis.add("/sceneDraw/list");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Value("#{'${demo.scene.num:}'.split(',')}")
|
|
|
+ private List<String> demoSceneNums;
|
|
|
+
|
|
|
@Autowired
|
|
|
private SSOLoginHelper ssoLoginHelper;
|
|
|
@Autowired
|
|
|
@@ -97,15 +127,21 @@ public class CheckPermitAspect {
|
|
|
throw new BusinessException(ErrorCode.FAILURE_CODE_5014);
|
|
|
}
|
|
|
|
|
|
- if(scenePlus.getUserId().equals(user.getId())){
|
|
|
- return;
|
|
|
- }
|
|
|
+ if(CollUtil.isNotEmpty(demoSceneNums) && demoSceneNums.contains(num)){//这是一个demo场景,允许无条件打开编辑页,但是不允许提交数据
|
|
|
+ String requestURI = request.getRequestURI();
|
|
|
+ log.info("-----------requestURI:{}", requestURI);
|
|
|
+ }
|
|
|
+ if(scenePlus.getUserId().equals(user.getId())){
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- //如果不是用户自己的场景,判断是否有协作权限
|
|
|
+ //如果不是用户自己的场景,判断是否有协作权限
|
|
|
SceneCooperation sceneCooperation = sceneCooperationService.getByNumAndUserId(num, user.getId());
|
|
|
if(Objects.isNull(sceneCooperation)){
|
|
|
throw new BusinessException(ErrorCode.FAILURE_CODE_5014);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|