Ver Fonte

增加权限验证

guo00guo há 5 anos atrás
pai
commit
6b539f5fe4

+ 14 - 0
core/src/main/java/com/mooctest/crowd/domain/exception/HaveNotAgencyAuthException.java

@@ -0,0 +1,14 @@
+package com.mooctest.crowd.domain.exception;
+
+import lombok.NoArgsConstructor;
+
+/**
+ * @author guochao
+ * @date 2019-07-30 09:15
+ */
+@NoArgsConstructor
+public class HaveNotAgencyAuthException extends BaseException {
+    public HaveNotAgencyAuthException(String msg){
+        super(msg);
+    }
+}

+ 14 - 0
core/src/main/java/com/mooctest/crowd/domain/exception/HaveNotPartAuthException.java

@@ -0,0 +1,14 @@
+package com.mooctest.crowd.domain.exception;
+
+import lombok.NoArgsConstructor;
+
+/**
+ * @author guochao
+ * @date 2019-07-30 09:15
+ */
+@NoArgsConstructor
+public class HaveNotPartAuthException extends BaseException {
+    public HaveNotPartAuthException(String msg){
+        super(msg);
+    }
+}

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
site/src/main/java/com/mooctest/crowd/site/controller/CommonController.java


+ 5 - 1
site/src/main/java/com/mooctest/crowd/site/controller/advice/ExceptionAdvice.java

@@ -49,7 +49,11 @@ public class ExceptionAdvice {
             return "资源不存在";
         } else if (e instanceof UserTaskCountNoExistException) {
             return "当前用户没有参与接包";
-        } else
+        } else if (e instanceof HaveNotAgencyAuthException){
+            return "您未认证为接包用户,请认证后操作。";
+        } else if (e instanceof HaveNotPartAuthException){
+            return "您未认证为发包用户,请认证后操作。";
+        }  else
             return e.getMessage();
     }
 

+ 11 - 0
site/src/main/java/com/mooctest/crowd/site/service/AuthCheckService.java

@@ -0,0 +1,11 @@
+package com.mooctest.crowd.site.service;
+
+
+import com.mooctest.crowd.domain.domainobject.User;
+
+public interface AuthCheckService {
+
+    Boolean isAgency(User user);
+
+    Boolean isPart(User user);
+}

+ 4 - 0
site/src/main/java/com/mooctest/crowd/site/service/CommonService.java

@@ -49,4 +49,8 @@ public interface CommonService {
     DataDTO getAllData();
 
     List<UserTaskCountVO> getCount();
+
+    Boolean checkCreateProject(Long userId);
+
+    Boolean checkAcceptTask(Long userId);
 }

+ 33 - 0
site/src/main/java/com/mooctest/crowd/site/service/impl/AuthCheckServiceImpl.java

@@ -0,0 +1,33 @@
+package com.mooctest.crowd.site.service.impl;
+
+import com.mooctest.crowd.domain.domainobject.User;
+import com.mooctest.crowd.site.data.enums.RoleType;
+import com.mooctest.crowd.site.service.AuthCheckService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author:xx
+ * @date:2020/7/8
+ * @description:
+ */
+@Slf4j
+@Service
+public class AuthCheckServiceImpl implements AuthCheckService {
+
+    @Override
+    public Boolean isAgency(User user) {
+        if(user.getRoleList().stream().anyMatch(role -> role.getName().equals(RoleType.AGENCY.getName())) || user.getRoleList().stream().anyMatch(role -> role.getName().equals(RoleType.EVALUATION_USER.getName()))){
+            return true;
+        }
+        return false;
+    }
+
+    @Override
+    public Boolean isPart(User user) {
+        if(user.getRoleList().stream().anyMatch(role -> role.getName().equals(RoleType.PARTY_AGENCY.getName())) || user.getRoleList().stream().anyMatch(role -> role.getName().equals(RoleType.PARTY_USER.getName()))){
+            return true;
+        }
+        return false;
+    }
+}

+ 27 - 0
site/src/main/java/com/mooctest/crowd/site/service/impl/CommonServiceImpl.java

@@ -3,6 +3,9 @@ package com.mooctest.crowd.site.service.impl;
 import com.mooctest.crowd.domain.dao.CrowdTestProjectDao;
 import com.mooctest.crowd.domain.dao.ResourceTypeDao;
 import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
+import com.mooctest.crowd.domain.domainobject.User;
+import com.mooctest.crowd.domain.exception.HaveNotAgencyAuthException;
+import com.mooctest.crowd.domain.exception.HaveNotPartAuthException;
 import com.mooctest.crowd.domain.model.ResourceTypePO;
 import com.mooctest.crowd.domain.repository.*;
 import com.mooctest.crowd.site.constants.CommonConstant;
@@ -14,6 +17,7 @@ import com.mooctest.crowd.site.data.response.ServerCode;
 import com.mooctest.crowd.site.data.vo.*;
 import com.mooctest.crowd.site.mediator.ViewMediator;
 import com.mooctest.crowd.site.mediator.impl.WebMediatorImpl;
+import com.mooctest.crowd.site.service.AuthCheckService;
 import com.mooctest.crowd.site.service.CommonService;
 import com.mooctest.crowd.site.util.DataUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -63,6 +67,9 @@ public class CommonServiceImpl implements CommonService {
     @Autowired
     private WebMediatorImpl webMediator;
 
+    @Autowired
+    private AuthCheckService authCheckService;
+
 //    @Autowired
 //    private CacheUtil cacheUtil;
 
@@ -203,6 +210,26 @@ public class CommonServiceImpl implements CommonService {
         return viewMediator.getCount();
     }
 
+    @Override
+    public Boolean checkCreateProject(Long userId) {
+        User user = userRepo.getByID(userId);
+        Boolean isPart = authCheckService.isPart(user);
+        if(!isPart){
+            throw new HaveNotPartAuthException();
+        }
+        return isPart;
+    }
+
+    @Override
+    public Boolean checkAcceptTask(Long userId) {
+        User user = userRepo.getByID(userId);
+        Boolean isAgency = authCheckService.isAgency(user);
+        if(!isAgency){
+            throw new HaveNotAgencyAuthException();
+        }
+        return isAgency;
+    }
+
     Pageable getPageable(SearchConditionVO searchConditionVO) {
         int activePage = searchConditionVO.getActivePage() == 0 ? 1 : searchConditionVO.getActivePage();
         Sort sort = new Sort(Sort.Direction.DESC, "id");

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff