Commit f58fa42a by gdj

增加角色权限roleType,修改workspace和user。

parent 298ab2f4
...@@ -33,6 +33,9 @@ public class CustomClaim { ...@@ -33,6 +33,9 @@ public class CustomClaim {
@JsonAlias("user_type") @JsonAlias("user_type")
private Integer userType; private Integer userType;
@JsonAlias("role_type")
private Integer roleType;
@JsonAlias("workspace_id") @JsonAlias("workspace_id")
private String workspaceId; private String workspaceId;
......
...@@ -2,6 +2,7 @@ package com.dji.sample.common.util; ...@@ -2,6 +2,7 @@ package com.dji.sample.common.util;
import com.auth0.jwt.interfaces.DecodedJWT; import com.auth0.jwt.interfaces.DecodedJWT;
import com.dji.sample.common.model.CustomClaim; import com.dji.sample.common.model.CustomClaim;
import com.dji.sample.manage.model.enums.RoleTypeEnum;
import com.dji.sample.manage.model.enums.UserTypeEnum; import com.dji.sample.manage.model.enums.UserTypeEnum;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
...@@ -70,4 +71,186 @@ public class SecurityUtils { ...@@ -70,4 +71,186 @@ public class SecurityUtils {
return request.getHeader(PARAM_TOKEN); return request.getHeader(PARAM_TOKEN);
} }
public static Integer getRoleType() {
DecodedJWT jwt = JwtUtil.verifyToken(getToken());
CustomClaim customClaim = new CustomClaim(jwt.getClaims());
return customClaim.getRoleType();
}
public static String getWorkspaceId() {
DecodedJWT jwt = JwtUtil.verifyToken(getToken());
CustomClaim customClaim = new CustomClaim(jwt.getClaims());
return customClaim.getWorkspaceId();
}
public static String getUserId() {
DecodedJWT jwt = JwtUtil.verifyToken(getToken());
CustomClaim customClaim = new CustomClaim(jwt.getClaims());
return customClaim.getId();
}
public static boolean isSysAdminRole() {
Integer roleType = getRoleType();
return isSysAdminRole(roleType);
}
public static boolean isNotSysAdminRole() {
return !isSysAdminRole();
}
public static boolean isSysAdminRole(Integer roleType) {
return roleType == RoleTypeEnum.SYS_ADMIN.getVal();
}
public static boolean isNotSysAdminRole(Integer roleType) {
return !isSysAdminRole(roleType);
}
public static boolean isAdminRole() {
Integer roleType = getRoleType();
return isAdminRole(roleType);
}
public static boolean isNotAdminRole() {
return !isAdminRole();
}
public static boolean isAdminRole(Integer roleType) {
return roleType == RoleTypeEnum.ADMIN.getVal();
}
public static boolean isNotAdminRole(Integer roleType) {
return !isAdminRole(roleType);
}
public static boolean isPilotRole() {
Integer roleType = getRoleType();
return isPilotRole(roleType);
}
public static boolean isNotPilotRole() {
return !isPilotRole();
}
public static boolean isPilotRole(Integer roleType) {
return roleType == RoleTypeEnum.PILOT.getVal();
}
public static boolean isNotPilotRole(Integer roleType) {
return !isPilotRole(roleType);
}
public static boolean isMemberRole() {
Integer roleType = getRoleType();
return isMemberRole(roleType);
}
public static boolean isNotMemberRole() {
return !isMemberRole();
}
public static boolean isMemberRole(Integer roleType) {
return roleType == RoleTypeEnum.MEMBER.getVal();
}
public static boolean isNotMemberRole(Integer roleType) {
return !isMemberRole(roleType);
}
public static boolean aboveMemberRoleAndThrowError() {
boolean result = aboveMemberRole();
if (!result) {
throw new RuntimeException("The current role has no permissions");
}
return true;
}
public static boolean aboveMemberRole() {
Integer roleType = getRoleType();
return aboveMemberRole(roleType);
}
public static boolean aboveMemberRole(Integer roleType) {
int[] roleArr = {RoleTypeEnum.MEMBER.getVal(), RoleTypeEnum.PILOT.getVal(), RoleTypeEnum.ADMIN.getVal(), RoleTypeEnum.SYS_ADMIN.getVal()};
for(int role : roleArr){
if(roleType == role) {
return true;
}
}
return false;
}
public static boolean abovePilotRoleAndThrowError() {
boolean result = abovePilotRole();
if (!result) {
throw new RuntimeException("The current role has no permissions");
}
return true;
}
public static boolean abovePilotRole() {
Integer roleType = getRoleType();
return abovePilotRole(roleType);
}
public static boolean abovePilotRole(Integer roleType) {
int[] roleArr = {RoleTypeEnum.PILOT.getVal(), RoleTypeEnum.ADMIN.getVal(), RoleTypeEnum.SYS_ADMIN.getVal()};
for(int role : roleArr){
if(roleType == role) {
return true;
}
}
return false;
}
public static boolean aboveAdminRoleAndThrowError() {
boolean result = aboveAdminRole();
if (!result) {
throw new RuntimeException("The current role has no permissions");
}
return true;
}
public static boolean aboveAdminRole() {
Integer roleType = getRoleType();
return aboveAdminRole(roleType);
}
public static boolean aboveAdminRole(Integer roleType) {
int[] roleArr = {RoleTypeEnum.ADMIN.getVal(), RoleTypeEnum.SYS_ADMIN.getVal()};
for(int role : roleArr){
if(roleType == role) {
return true;
}
}
return false;
}
public static boolean aboveSysAdminRoleAndThrowError() {
boolean result = aboveSysAdminRole();
if (!result) {
throw new RuntimeException("The current role has no permissions");
}
return true;
}
public static boolean aboveSysAdminRole() {
Integer roleType = getRoleType();
return aboveSysAdminRole(roleType);
}
public static boolean aboveSysAdminRole(Integer roleType) {
int[] roleArr = {RoleTypeEnum.SYS_ADMIN.getVal()};
for(int role : roleArr) {
if(roleType == role) {
return true;
}
}
return false;
}
} }
...@@ -2,16 +2,17 @@ package com.dji.sample.manage.controller; ...@@ -2,16 +2,17 @@ package com.dji.sample.manage.controller;
import com.dji.sample.common.model.CustomClaim; import com.dji.sample.common.model.CustomClaim;
import com.dji.sample.manage.model.dto.WorkspaceDTO; import com.dji.sample.manage.model.dto.WorkspaceDTO;
import com.dji.sample.manage.model.param.searchParam.WorkspaceSearchParam;
import com.dji.sample.manage.service.IWorkspaceService; import com.dji.sample.manage.service.IWorkspaceService;
import com.dji.sdk.common.HttpResultResponse; import com.dji.sdk.common.HttpResultResponse;
import com.dji.sdk.common.PaginationData;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Optional; import java.util.Optional;
import static com.dji.sample.common.util.SecurityUtils.*;
import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM; import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM;
/** /**
...@@ -38,4 +39,66 @@ public class WorkspaceController { ...@@ -38,4 +39,66 @@ public class WorkspaceController {
return workspaceOpt.isEmpty() ? HttpResultResponse.error() : HttpResultResponse.success(workspaceOpt.get()); return workspaceOpt.isEmpty() ? HttpResultResponse.error() : HttpResultResponse.success(workspaceOpt.get());
} }
@GetMapping("/getOne")
public HttpResultResponse getWorkspace(WorkspaceSearchParam param) {
// 判断权限 系统管理员才允许全查
if (!aboveSysAdminRole()) {
param.setRoleWorkspaceId(getWorkspaceId());
}
WorkspaceDTO workspace = workspaceService.getWorkspace(param);
return HttpResultResponse.success(workspace);
}
@GetMapping("/page")
public HttpResultResponse getWorkspacePage(WorkspaceSearchParam param,
@RequestParam(defaultValue = "1") Long page,
@RequestParam(value = "page_size", defaultValue = "50") Long pageSize) {
// 判断权限 系统管理员才允许全查
if (!aboveSysAdminRole()) {
param.setRoleWorkspaceId(getWorkspaceId());
}
PaginationData<WorkspaceDTO> workspacePage = workspaceService.getWorkspacePage(param, page, pageSize);
return HttpResultResponse.success(workspacePage);
}
@PostMapping("/delete")
public HttpResultResponse delWorkspace(@RequestParam(name = "id") Integer id) {
// 判断权限 系统管理员才允许修改
aboveSysAdminRoleAndThrowError();
boolean isDel = workspaceService.delWorkspaceById(id);
return isDel ? HttpResultResponse.success() : HttpResultResponse.error();
}
@PostMapping("/edit")
public HttpResultResponse editWorkspace(@RequestBody WorkspaceDTO workspaceDTO) {
// 判断权限 管理员才允许修改
aboveAdminRoleAndThrowError();
boolean isEdit = workspaceService.editWorkspace(workspaceDTO);
return isEdit ? HttpResultResponse.success() : HttpResultResponse.error();
}
@PostMapping("/add")
public HttpResultResponse addWorkspace(@RequestBody WorkspaceDTO workspaceDTO) {
// 判断权限 系统管理员才允许新增
aboveSysAdminRoleAndThrowError();
WorkspaceDTO workspace = workspaceService.addWorkspace(workspaceDTO);
return HttpResultResponse.success(workspace);
}
} }
\ No newline at end of file
...@@ -34,4 +34,7 @@ public class UserDTO { ...@@ -34,4 +34,7 @@ public class UserDTO {
@JsonProperty("mqtt_addr") @JsonProperty("mqtt_addr")
private String mqttAddr; private String mqttAddr;
@JsonProperty("role_type")
private Integer roleType;
} }
...@@ -28,6 +28,10 @@ public class UserListDTO { ...@@ -28,6 +28,10 @@ public class UserListDTO {
private String userType; private String userType;
private String roleTypeName;
private Integer roleType;
private String mqttUsername; private String mqttUsername;
private String mqttPassword; private String mqttPassword;
......
package com.dji.sample.manage.model.dto; package com.dji.sample.manage.model.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serializable;
/** /**
* @author sean.zhou * @author sean.zhou
* @date 2021/11/22 * @date 2021/11/22
...@@ -14,10 +17,11 @@ import lombok.NoArgsConstructor; ...@@ -14,10 +17,11 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@Builder @Builder
public class WorkspaceDTO { public class WorkspaceDTO implements Serializable {
private Integer id; private Integer id;
@JsonProperty("workspace_id")
private String workspaceId; private String workspaceId;
private String workspaceName; private String workspaceName;
...@@ -27,4 +31,12 @@ public class WorkspaceDTO { ...@@ -27,4 +31,12 @@ public class WorkspaceDTO {
private String platformName; private String platformName;
private String bindCode; private String bindCode;
@JsonProperty("admin_user_id")
private String adminUserId;
@JsonProperty("admin_user_name")
private String adminUserName;
@JsonProperty("admin_user_password")
private String adminUserPassword;
} }
\ No newline at end of file
...@@ -38,4 +38,8 @@ public class UserEntity implements Serializable { ...@@ -38,4 +38,8 @@ public class UserEntity implements Serializable {
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Long updateTime; private Long updateTime;
@TableField(value = "role_type")
private Integer roleType;
} }
...@@ -24,6 +24,10 @@ public class WorkspaceEntity implements Serializable { ...@@ -24,6 +24,10 @@ public class WorkspaceEntity implements Serializable {
@TableField(value = "platform_name") @TableField(value = "platform_name")
private String platformName; private String platformName;
@TableField(value = "admin_user_id")
private String adminUserId;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Long createTime; private Long createTime;
......
package com.dji.sample.manage.model.enums;
/**
* 角色类型
* @author guan
*/
public enum RoleTypeEnum {
MEMBER(0, "成员"),
ADMIN(1, "管理员"),
PILOT(2, "飞手"),
SYS_ADMIN(100, "系统管理员"),
UNKNOWN(-1, "Unknown");
private int val;
private String desc;
RoleTypeEnum(int val, String desc) {
this.val = val;
this.desc = desc;
}
public int getVal() {
return this.val;
}
public String getDesc() {
return this.desc;
}
public static RoleTypeEnum find(int val) {
if (val == SYS_ADMIN.val) {
return SYS_ADMIN;
}
if (val == ADMIN.val) {
return ADMIN;
}
if (val == PILOT.val) {
return PILOT;
}
if (val == MEMBER.val) {
return MEMBER;
}
return UNKNOWN;
}
}
package com.dji.sample.manage.model.param.searchParam;
import lombok.Data;
/**
* @author guan
*/
@Data
public class WorkspaceSearchParam {
private String workspaceId;
private Integer id;
private String workspaceName;
private String workspaceDesc;
private String platformName;
private String bindCode;
/**
* 用于系统权限校验
*/
private String roleWorkspaceId;
}
...@@ -56,4 +56,6 @@ public interface IUserService extends IService<UserEntity> { ...@@ -56,4 +56,6 @@ public interface IUserService extends IService<UserEntity> {
*/ */
HttpResultResponse getUserByUserId(String username, String workspaceId); HttpResultResponse getUserByUserId(String username, String workspaceId);
UserEntity addWorkspaceAdminUser(UserEntity user);
} }
package com.dji.sample.manage.service; package com.dji.sample.manage.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dji.sample.manage.model.dto.WorkspaceDTO; import com.dji.sample.manage.model.dto.WorkspaceDTO;
import com.dji.sample.manage.model.entity.WorkspaceEntity;
import com.dji.sample.manage.model.param.searchParam.WorkspaceSearchParam;
import com.dji.sdk.common.PaginationData;
import java.util.Optional; import java.util.Optional;
public interface IWorkspaceService { public interface IWorkspaceService extends IService<WorkspaceEntity> {
/** /**
* Query the information of a workspace based on its workspace id. * Query the information of a workspace based on its workspace id.
...@@ -21,4 +25,16 @@ public interface IWorkspaceService { ...@@ -21,4 +25,16 @@ public interface IWorkspaceService {
*/ */
Optional<WorkspaceDTO> getWorkspaceNameByBindCode(String bindCode); Optional<WorkspaceDTO> getWorkspaceNameByBindCode(String bindCode);
PaginationData<WorkspaceDTO> getWorkspacePage(WorkspaceSearchParam param, Long page, Long pageSize);
WorkspaceDTO addWorkspace(WorkspaceDTO addWorkspace);
boolean editWorkspace(WorkspaceDTO editWorkspace);
boolean delWorkspaceById(Integer id);
boolean delWorkspaceByWorkspaceId(String workspaceId);
WorkspaceDTO getWorkspace(WorkspaceSearchParam param);
} }
...@@ -17,6 +17,8 @@ import com.dji.sample.manage.model.dto.UserDTO; ...@@ -17,6 +17,8 @@ import com.dji.sample.manage.model.dto.UserDTO;
import com.dji.sample.manage.model.dto.UserListDTO; import com.dji.sample.manage.model.dto.UserListDTO;
import com.dji.sample.manage.model.dto.WorkspaceDTO; import com.dji.sample.manage.model.dto.WorkspaceDTO;
import com.dji.sample.manage.model.entity.UserEntity; import com.dji.sample.manage.model.entity.UserEntity;
import com.dji.sample.manage.model.entity.WorkspaceEntity;
import com.dji.sample.manage.model.enums.RoleTypeEnum;
import com.dji.sample.manage.model.enums.UserTypeEnum; import com.dji.sample.manage.model.enums.UserTypeEnum;
import com.dji.sample.manage.service.IUserService; import com.dji.sample.manage.service.IUserService;
import com.dji.sample.manage.service.IWorkspaceService; import com.dji.sample.manage.service.IWorkspaceService;
...@@ -39,7 +41,7 @@ import java.util.Optional; ...@@ -39,7 +41,7 @@ import java.util.Optional;
import java.util.UUID; import java.util.UUID;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.dji.sample.common.util.SecurityUtils.isNotAdmin; import static com.dji.sample.common.util.SecurityUtils.*;
@Service @Service
@Transactional @Transactional
...@@ -100,8 +102,10 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem ...@@ -100,8 +102,10 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem
.setMessage("invalid workspace id"); .setMessage("invalid workspace id");
} }
// 创建token
CustomClaim customClaim = new CustomClaim(userEntity.getUserId(), CustomClaim customClaim = new CustomClaim(userEntity.getUserId(),
userEntity.getUsername(), userEntity.getUserType(), userEntity.getUsername(), userEntity.getUserType(),
userEntity.getRoleType(),
workspaceOpt.get().getWorkspaceId()); workspaceOpt.get().getWorkspaceId());
// create token // create token
...@@ -175,18 +179,36 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem ...@@ -175,18 +179,36 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem
@Override @Override
public Boolean deleteUser(String workspaceId, String userId) { public Boolean deleteUser(String workspaceId, String userId) {
if (isNotAdmin()) { // 管理员以上才能删除
throw new RuntimeException("The current user is not an admin and has no permissions"); aboveAdminRoleAndThrowError();
} // if (isNotAdmin()) {
// throw new RuntimeException("The current user is not an admin and has no permissions");
// }
LambdaQueryWrapper<UserEntity> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<UserEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(UserEntity::getWorkspaceId, workspaceId); queryWrapper.eq(UserEntity::getWorkspaceId, workspaceId);
queryWrapper.eq(UserEntity::getUserId, userId); queryWrapper.eq(UserEntity::getUserId, userId);
// 需要先查询 // 需要先查询
UserEntity userEntity = this.mapper.selectOne(queryWrapper); UserEntity userEntity = this.mapper.selectOne(queryWrapper);
// 管理员 // 不能删除自身
if (userEntity.getUserType() == UserTypeEnum.WEB.getVal()) { if (userEntity.getUserId().equals(getUserId())) {
throw new RuntimeException("Failed to delete admin"); throw new RuntimeException("can't delete self");
}
// 不能删除高级用户
if (userEntity.getRoleType() == RoleTypeEnum.SYS_ADMIN.getVal()) {
aboveSysAdminRoleAndThrowError();
}
// if (userEntity.getUserType() == UserTypeEnum.WEB.getVal()) {
// throw new RuntimeException("Failed to delete admin");
// }
// 然后 假如是删除管理员 不能删除 项目管理员
if (userEntity.getRoleType() == RoleTypeEnum.ADMIN.getVal()) {
LambdaQueryWrapper<WorkspaceEntity> workspaceWrapper = new LambdaQueryWrapper<>();
workspaceWrapper.eq(WorkspaceEntity::getAdminUserId, userEntity.getUserId());
List<WorkspaceEntity> workspaceEntities = workspaceService.list(workspaceWrapper);
if (!CollectionUtils.isEmpty(workspaceEntities)) {
throw new RuntimeException("can't delete workspace admin");
}
} }
int delete = mapper.delete(queryWrapper); int delete = mapper.delete(queryWrapper);
...@@ -197,11 +219,14 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem ...@@ -197,11 +219,14 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem
@Override @Override
public Boolean addUser(String workspaceId, UserEntity user) { public Boolean addUser(String workspaceId, UserEntity user) {
// 管理员才能创建用户
aboveAdminRoleAndThrowError();
// 用户名不能重复 // 用户名不能重复
String username = user.getUsername(); String username = user.getUsername();
LambdaQueryWrapper<UserEntity> userQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<UserEntity> userQueryWrapper = new LambdaQueryWrapper<>();
userQueryWrapper.eq(UserEntity::getUsername, username); userQueryWrapper.eq(UserEntity::getUsername, username);
userQueryWrapper.eq(UserEntity::getWorkspaceId, workspaceId); // userQueryWrapper.eq(UserEntity::getWorkspaceId, workspaceId);
List<UserEntity> nameUserList = this.mapper.selectList(userQueryWrapper); List<UserEntity> nameUserList = this.mapper.selectList(userQueryWrapper);
if (!CollectionUtils.isEmpty(nameUserList)) { if (!CollectionUtils.isEmpty(nameUserList)) {
throw new RuntimeException("the username is already existed"); throw new RuntimeException("the username is already existed");
...@@ -210,13 +235,19 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem ...@@ -210,13 +235,19 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem
UserEntity userEntity = new UserEntity(); UserEntity userEntity = new UserEntity();
// 普通用户不能创建管理员 // 普通用户不能创建管理员
if (user.getUserType() == UserTypeEnum.WEB.getVal()) { // if (user.getUserType() == UserTypeEnum.WEB.getVal()) {
if (isNotAdmin()) { // if (isNotAdmin()) {
throw new RuntimeException("The current user is not an admin and has no permissions"); // throw new RuntimeException("The current user is not an admin and has no permissions");
} // }
// }
// 不能创建高级用户
if (user.getRoleType() == RoleTypeEnum.SYS_ADMIN.getVal()) {
aboveSysAdminRoleAndThrowError();
} }
userEntity.setUserType(user.getUserType() != null ? user.getUserType() : UserTypeEnum.PILOT.getVal()); userEntity.setUserType(user.getUserType() != null ? user.getUserType() : UserTypeEnum.PILOT.getVal());
userEntity.setRoleType(user.getRoleType() != null ? user.getRoleType() : RoleTypeEnum.MEMBER.getVal());
userEntity.setUserId(UUID.randomUUID().toString()); userEntity.setUserId(UUID.randomUUID().toString());
userEntity.setPassword(SecurityUtils.encryptPassword(user.getPassword())); userEntity.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
userEntity.setUsername(user.getUsername()); userEntity.setUsername(user.getUsername());
...@@ -226,6 +257,38 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem ...@@ -226,6 +257,38 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem
return insert > 0; return insert > 0;
} }
@Transactional(rollbackFor = Exception.class)
@Override
public UserEntity addWorkspaceAdminUser(UserEntity user) {
// 系统管理员才能创建
aboveSysAdminRoleAndThrowError();
// 用户名不能重复
String username = user.getUsername();
LambdaQueryWrapper<UserEntity> userQueryWrapper = new LambdaQueryWrapper<>();
userQueryWrapper.eq(UserEntity::getUsername, username);
// userQueryWrapper.eq(UserEntity::getWorkspaceId, user.getWorkspaceId());
List<UserEntity> nameUserList = this.list(userQueryWrapper);
if (!CollectionUtils.isEmpty(nameUserList)) {
throw new RuntimeException("the username is already existed");
}
UserEntity userEntity = new UserEntity();
userEntity.setUserType(UserTypeEnum.WEB.getVal());
userEntity.setRoleType(RoleTypeEnum.ADMIN.getVal());
userEntity.setUserId(UUID.randomUUID().toString());
userEntity.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
userEntity.setUsername(user.getUsername());
userEntity.setWorkspaceId(user.getWorkspaceId());
boolean save = this.save(userEntity);
return userEntity;
}
/** /**
* Convert database entity objects into user data transfer object. * Convert database entity objects into user data transfer object.
* @param entity * @param entity
...@@ -240,6 +303,8 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem ...@@ -240,6 +303,8 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem
.mqttUsername(entity.getMqttUsername()) .mqttUsername(entity.getMqttUsername())
.mqttPassword(entity.getMqttPassword()) .mqttPassword(entity.getMqttPassword())
.userType(UserTypeEnum.find(entity.getUserType()).getDesc()) .userType(UserTypeEnum.find(entity.getUserType()).getDesc())
.roleTypeName(RoleTypeEnum.find(entity.getRoleType()).getDesc())
.roleType(entity.getRoleType())
.createTime(LocalDateTime.ofInstant( .createTime(LocalDateTime.ofInstant(
Instant.ofEpochMilli(entity.getCreateTime()), ZoneId.systemDefault())); Instant.ofEpochMilli(entity.getCreateTime()), ZoneId.systemDefault()));
Optional<WorkspaceDTO> workspaceOpt = workspaceService.getWorkspaceByWorkspaceId(entity.getWorkspaceId()); Optional<WorkspaceDTO> workspaceOpt = workspaceService.getWorkspaceByWorkspaceId(entity.getWorkspaceId());
...@@ -282,6 +347,7 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem ...@@ -282,6 +347,7 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, UserEntity> implem
.userId(entity.getUserId()) .userId(entity.getUserId())
.username(entity.getUsername()) .username(entity.getUsername())
.userType(entity.getUserType()) .userType(entity.getUserType())
.roleType(entity.getRoleType())
.mqttUsername(entity.getMqttUsername()) .mqttUsername(entity.getMqttUsername())
.mqttPassword(entity.getMqttPassword()) .mqttPassword(entity.getMqttPassword())
.mqttAddr(MqttPropertyConfiguration.getBasicMqttAddress()) .mqttAddr(MqttPropertyConfiguration.getBasicMqttAddress())
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment