fix: 优化登录门户逻辑
This commit is contained in:
parent
30abebea60
commit
ae57efdae2
@ -70,7 +70,8 @@ public class SmsVerifyCodeController {
|
||||
@Resource
|
||||
private SysUserTenantMapper sysUserTenantMapper;
|
||||
|
||||
|
||||
@Resource
|
||||
private SysUserTenantMapper userTenantMapper;
|
||||
@Resource
|
||||
private ISdHbrvDicService hbrvDicService;
|
||||
|
||||
@ -184,7 +185,7 @@ public class SmsVerifyCodeController {
|
||||
*/
|
||||
@PostMapping("/register")
|
||||
@Operation(summary = "注册用户")
|
||||
@Transactional
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ResponseResult register(@RequestHeader(value = "Tenant_id", required = false) String tenantId,@RequestBody SmsVerifyCodeRequest smsVerifyCodeRequest) {
|
||||
String code = smsVerifyCodeRequest.getCode();
|
||||
if (smsVerifyCodeRequest.getPhone() == null || smsVerifyCodeRequest.getPhone().isEmpty()) {
|
||||
@ -233,6 +234,10 @@ public class SmsVerifyCodeController {
|
||||
// 给注册用户加上默认权限
|
||||
SysUser savedUser = userService.getUserByPhone(smsVerifyCodeRequest.getPhone(),tenantId);
|
||||
if (savedUser != null) {
|
||||
SysUserTenant sysUserTenant = new SysUserTenant();
|
||||
sysUserTenant.setTenantId(tenantId);
|
||||
sysUserTenant.setUserId(user.getId());
|
||||
userTenantMapper.insert(sysUserTenant);
|
||||
this.addDefaultRole(savedUser.getId(), smsVerifyCodeRequest);
|
||||
}
|
||||
if (success) {
|
||||
|
||||
@ -74,6 +74,8 @@ public class AdminAuthServiceImpl implements IAdminAuthService {
|
||||
|
||||
@Override
|
||||
public boolean isCurrentManagedAdmin() {
|
||||
return isManagedAdminUsername(SecurityUtils.getCurrentUsername());
|
||||
String maxLevel = userMapper.getMaxLevel(SecurityUtils.getUserId());
|
||||
boolean adminRole = "1".equals(maxLevel);
|
||||
return adminRole||isManagedAdminUsername(SecurityUtils.getCurrentUsername());
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,6 +9,7 @@ import com.yfd.platform.system.domain.SysUser;
|
||||
import com.yfd.platform.system.mapper.SysMenuMapper;
|
||||
import com.yfd.platform.system.mapper.SysUserMapper;
|
||||
import com.yfd.platform.system.mapper.SysUserTenantMapper;
|
||||
import com.yfd.platform.system.service.IAdminAuthService;
|
||||
import com.yfd.platform.system.service.IUserService;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import org.springframework.security.core.userdetails.UserDetails;
|
||||
@ -38,6 +39,8 @@ public class UserDetailsServiceImpl implements UserDetailsService {
|
||||
|
||||
@Resource
|
||||
private IUserService userService;
|
||||
@Resource
|
||||
private IAdminAuthService adminAuthService;
|
||||
|
||||
@Resource
|
||||
private SysMenuMapper sysMenuMapper;
|
||||
@ -71,7 +74,7 @@ public class UserDetailsServiceImpl implements UserDetailsService {
|
||||
}
|
||||
|
||||
// 判断是否为超级管理员(LEVEL=1)
|
||||
boolean isSuperAdmin = isSuperAdmin(user.getId());
|
||||
boolean isSuperAdmin = (isSuperAdmin(user.getId())||user.getUsertype()==0);
|
||||
|
||||
// 查询用户可访问的门户列表
|
||||
List<String> accessibleTenantIds = sysUserTenantMapper.getTenantIdsByUserId(user.getId());
|
||||
@ -79,10 +82,10 @@ public class UserDetailsServiceImpl implements UserDetailsService {
|
||||
// 非超级管理员必须指定门户,且必须在可访问列表中
|
||||
if (!isSuperAdmin) {
|
||||
if (StrUtil.isBlank(tenantId)) {
|
||||
throw new RuntimeException("普通用户登录必须指定门户(Tenant_Id)");
|
||||
throw new RuntimeException("用户无权限访问该平台");
|
||||
}
|
||||
if (accessibleTenantIds == null || !accessibleTenantIds.contains(tenantId)) {
|
||||
throw new RuntimeException("用户无权限访问该门户");
|
||||
throw new RuntimeException("用户无权限访问该平台");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -83,7 +83,7 @@
|
||||
and u.orgid = #{orgid}
|
||||
</if>
|
||||
<if test="username != null">
|
||||
and u.username LIKE '%' || #{username} || '%'
|
||||
and (u.username LIKE '%' || #{username} || '%' OR u.nickname LIKE '%' || #{username} || '%' OR u.phone LIKE '%' || #{username} || '%')
|
||||
</if>
|
||||
<if test="tenantId != null and tenantId != ''">
|
||||
and (ut.TENANT_ID = #{tenantId} OR u.tenant_id = #{tenantId})
|
||||
|
||||
Loading…
Reference in New Issue
Block a user