Просмотр исходного кода

FIX: admin operation related availability

zhangxin 7 лет назад
Родитель
Сommit
c73a97df7a

+ 6 - 6
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/data/UserDTOForMT.java

@@ -24,7 +24,7 @@ public class UserDTOForMT {
 
     private Long createTime;
 
-    private  String school;
+    private String school;
 
     private String userName;
 
@@ -46,7 +46,7 @@ public class UserDTOForMT {
 
     private Boolean manualCheckValid;
 
-    private Boolean isAvailable;
+    private Integer availability;
 
     public Long getId() {
         return id;
@@ -192,11 +192,11 @@ public class UserDTOForMT {
         this.manualCheckValid = manualCheckValid;
     }
 
-    public Boolean getAvailable() {
-        return isAvailable;
+    public Integer getAvailability() {
+        return availability;
     }
 
-    public void setAvailable(Boolean available) {
-        isAvailable = available;
+    public void setAvailability(Integer availability) {
+        this.availability = availability;
     }
 }

+ 6 - 7
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/models/User.java

@@ -53,12 +53,11 @@ public class User {
     @Excel(name = "城市", orderNum = "6")
     private String city;
 
-
     @Column(name = "manual_check_valid")
     private Boolean manualCheckValid = true;
 
-    @Column(name = "is_available")
-    private Boolean isAvailable;
+    @Column(name = "availability")
+    private Integer availability;
 
     public String getName() {
         return name;
@@ -148,11 +147,11 @@ public class User {
         this.manualCheckValid = manualCheckValid;
     }
 
-    public Boolean getAvailable() {
-        return isAvailable;
+    public Integer getAvailability() {
+        return availability;
     }
 
-    public void setAvailable(Boolean available) {
-        isAvailable = available;
+    public void setAvailability(Integer availability) {
+        this.availability = availability;
     }
 }

+ 2 - 3
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/ctrl/TestController.java

@@ -128,7 +128,7 @@ public class TestController {
             } else if (userVO.getMobile() != null) {
                 userVO = userLogic.findUserByMobile(userVO.getMobile());
             }
-            if (!userVO.getIsAvailable()) {
+            if (userVO.getAvailability() != 1) {
                 throw new AccountException("user unavailable");
             }
             recordService.recordLoginAction(request, userVO.getId());
@@ -189,8 +189,7 @@ public class TestController {
     }
 
     @RequestMapping(value = UrlConstants.API_COMMON + "onlineMembers", method = RequestMethod.GET)
-    public Integer getNumbersOfOnlineUsers()
-    {
+    public Integer getNumbersOfOnlineUsers() {
         return SessionCounter.getActiveSessions();
     }
 

+ 6 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/ctrl/UserController.java

@@ -329,4 +329,10 @@ public class UserController {
     public void exportCheckedTeachers(HttpServletResponse response) throws Exception {
         userLogic.exportCheckedTeachers(response);
     }
+
+    @RequiresRoles("admin")
+    @RequestMapping(value = UrlConstants.API + "user/creation", method = RequestMethod.PUT)
+    public UserVO createUserByAdmin(@RequestBody UserVO userVO) {
+        return userLogic.register(userVO);
+    }
 }

+ 3 - 11
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/data/UserVO.java

@@ -13,7 +13,7 @@ import java.util.List;
 @Data
 @EqualsAndHashCode(exclude = "createTime")
 @JsonInclude(JsonInclude.Include.NON_NULL)
-public class UserVO extends BaseVO{
+public class UserVO extends BaseVO {
 
     private Long id;
 
@@ -29,7 +29,7 @@ public class UserVO extends BaseVO{
 
     private Long createTime;
 
-    private  String school;
+    private String school;
 
     private String userName;
 
@@ -51,7 +51,7 @@ public class UserVO extends BaseVO{
 
     private Boolean manualCheckValid;
 
-    private Boolean isAvailable;
+    private Integer availability;
 
     public Long getId() {
         return id;
@@ -196,12 +196,4 @@ public class UserVO extends BaseVO{
     public void setManualCheckValid(Boolean manualCheckValid) {
         this.manualCheckValid = manualCheckValid;
     }
-
-    public Boolean getAvailable() {
-        return isAvailable;
-    }
-
-    public void setAvailable(Boolean available) {
-        isAvailable = available;
-    }
 }

+ 16 - 16
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/data/wrapper/UserVOWrapper.java

@@ -18,30 +18,30 @@ public class UserVOWrapper extends BaseWrapper<UserVO, User> {
 
     @Override
     public UserVO wrap(User user) {
-        UserVO UserVO = new UserVO();
+        UserVO userVO = new UserVO();
 
-        UserVO.setCreateTime(user.getCreateTime().getTime());
-        UserVO.setId(user.getId());
+        userVO.setCreateTime(user.getCreateTime().getTime());
+        userVO.setId(user.getId());
 
-        UserVO.setEmail(user.getEmail());
-        UserVO.setMobile(user.getMobile());
-        UserVO.setName(user.getName());
-        UserVO.setSchool(user.getSchool());
-        UserVO.setPhotoUrl(user.getPhotoUrl());
-        UserVO.setProvince(user.getProvince());
-        UserVO.setCity(user.getCity());
-        UserVO.setManualCheckValid(user.getManualCheckValid());
-        UserVO.setIsAvailable(user.getAvailable());
+        userVO.setEmail(user.getEmail());
+        userVO.setMobile(user.getMobile());
+        userVO.setName(user.getName());
+        userVO.setSchool(user.getSchool());
+        userVO.setPhotoUrl(user.getPhotoUrl());
+        userVO.setProvince(user.getProvince());
+        userVO.setCity(user.getCity());
+        userVO.setManualCheckValid(user.getManualCheckValid());
+        userVO.setAvailability(user.getAvailability());
         Boolean hasFinalPermission = false;
 //        long[] groupIds= {386l, 387l, 388l, 389l, 390l, 391l};
 //        for(int i=0; i < groupIds.length; i++) {
-//            if(this.groupService.checkUserExist(UserVO.getId(), groupIds[i])) {
+//            if(this.groupService.checkUserExist(userVO.getId(), groupIds[i])) {
 //                hasFinalPermission = true;
 //                break;
 //            }
 //        }
-//        UserVO.setHasFinalPermission(hasFinalPermission);
-        return UserVO;
+//        userVO.setHasFinalPermission(hasFinalPermission);
+        return userVO;
     }
 
     @Override
@@ -58,7 +58,7 @@ public class UserVOWrapper extends BaseWrapper<UserVO, User> {
         user.setProvince(data.getProvince());
         user.setCity(data.getCity());
         user.setManualCheckValid(data.getManualCheckValid());
-        user.setAvailable(data.getIsAvailable());
+        user.setAvailability(data.getAvailability());
         return user;
     }
 }

+ 16 - 6
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/impl/UserLogicImpl.java

@@ -17,6 +17,7 @@ import cn.iselab.mooctest.site.web.data.wrapper.ManagerPropertyVOWrapper;
 import cn.iselab.mooctest.site.web.data.wrapper.SalesPackageVOWrapper;
 import cn.iselab.mooctest.site.web.data.wrapper.UserVOWrapper;
 import cn.iselab.mooctest.site.web.exception.HttpBadRequestException;
+import cn.iselab.mooctest.site.web.exception.HttpForbiddenException;
 import cn.iselab.mooctest.site.web.exception.HttpInternalServerError;
 import cn.iselab.mooctest.site.web.exception.HttpNotFoundException;
 import cn.iselab.mooctest.site.web.logic.BaseLogic;
@@ -118,7 +119,7 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
 
     private UserDTOForMT registerUser(UserVO userVO) {
         UserDTOForMT user = Converter.convert(UserDTOForMT.class, userVO);
-        user.setAvailable(true);
+        user.setAvailability(1);
         user.setPassword(EncryptionUtil.encryptMD5(userVO.getPassword()));
         user.setCreateTime(new Timestamp(System.currentTimeMillis()).getTime());
         user.setManualCheckValid(true);
@@ -426,6 +427,9 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
             throw new HttpBadRequestException("user not exist");
         }
         UserDTOForMT user = userService.findByUsername(username);
+        if (user.getAvailability() == -1) {
+            throw new HttpForbiddenException("user has been deleted");
+        }
         UserVO u = Converter.convert(UserVO.class, user);
         if (roleService.getRolesOfUser(user.getId()).contains(roleService.getRoleByRoleName("manager"))) {
             ManagerProperty managerProperty = managerPropertyService.getManagerPropertyByUserId(user.getId());
@@ -574,14 +578,17 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
     }
 
     @Override
-    public UserVO updateUserAvailability(UserVO UserVO) {
-        boolean isAvailable = UserVO.getIsAvailable();
-        UserDTOForMT user = userService.findByUserId(UserVO.getId());
+    public UserVO updateUserAvailability(UserVO userVO) {
+        Integer availability = userVO.getAvailability();
+        UserDTOForMT user = userService.findByUserId(userVO.getId());
         if (user == null) {
             throw new HttpBadRequestException("用户不存在");
         }
-        user.setAvailable(isAvailable);
-        UserVO user1 = Converter.copy(UserVO, userService.updateUser(user));
+        if (user.getAvailability() == -1) {
+            throw new HttpForbiddenException("该用户已删除");
+        }
+        user.setAvailability(availability);
+        UserVO user1 = Converter.copy(userVO, userService.updateUser(user));
         user1.setPassword("");
         return user1;
     }
@@ -593,6 +600,9 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
         if (user == null) {
             throw new HttpBadRequestException("用户不存在");
         }
+        if (user.getAvailability() == -1) {
+            throw new HttpForbiddenException("该用户已删除");
+        }
         user.setPassword(EncryptionUtil.encryptMD5(password));
         UserVO user1 = Converter.copy(UserVO, userService.updateUser(user));
         user1.setPassword("");