1. 用户登录结果中添加adminFlag字段

topo_dev
xueqingkun 8 months ago
parent 7e2b020b15
commit 65bfb25f38

@ -3,8 +3,8 @@ package com.supervision.police.dto.user;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONUtil;
import com.supervision.constant.RoleEnum;
import com.supervision.police.domain.SystemUser;
import com.supervision.police.dto.RoleDTO;
import com.supervision.utils.TokenUtil;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@ -52,8 +52,12 @@ public class LoginResVO {
if (Objects.isNull(userInfoDTO)){
return;
}
if (CollUtil.isNotEmpty(this.roleList)){
if (CollUtil.isNotEmpty(this.roleList)) {
userInfoDTO.setUserRoleList(this.roleList);
userInfoDTO.setAdminFlag(this.roleList.stream()
.anyMatch(userRoleDTO ->
RoleEnum.ADMIN.getCode().equals(userRoleDTO.getRoleId())) ? "1" : "0"
);
}
if (CollUtil.isNotEmpty(this.permission)){
userInfoDTO.setPermission(this.permission);

@ -184,17 +184,15 @@ public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemU
@Override
public boolean changePassWord(String account, String password) {
UserInfoDTO user = UserUtil.getUser();
// 账号不为空,且当前操作不是账号归属人出发 (需要管理员权限)
Assert.notEmpty(password, "密码不能为空");
UserInfoDTO user = UserUtil.getUser();
// 账号不为空,且当前操作不是账号归属人触发 (需要管理员权限)
if (StrUtil.isNotEmpty(account) && !StrUtil.equals(user.getAccount(), account)){
long count = user.getUserRoleList().stream().filter(userRoleDTO -> StrUtil.equals(userRoleDTO.getRoleId(), RoleEnum.ADMIN.getCode())).count();
if (count == 0){
log.info("账号:{}不是管理员,不能修改其他账号密码", user.getAccount());
throw new BusinessException("您没有权限修改用户密码!");
}
boolean isAdmin = user.getUserRoleList().stream().anyMatch(userRoleDTO -> StrUtil.equals(userRoleDTO.getRoleId(), RoleEnum.ADMIN.getCode()));
Assert.isTrue(isAdmin, "您没有权限修改用户密码!");
}
Assert.notEmpty(password, "密码不能为空");
String userCount = StrUtil.isEmpty(account) ? user.getAccount() : account;
SystemUser systemUser = super.lambdaQuery().eq(SystemUser::getAccount, userCount).one();

Loading…
Cancel
Save