From 7063313c0596867b53cfa2eed2bec932d0db9ffb Mon Sep 17 00:00:00 2001 From: hiparker Date: Fri, 21 May 2021 11:02:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=99=BB=E5=BD=95=E9=89=B4?= =?UTF-8?q?=E6=9D=83=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/opsli/core/msg/TokenMsg.java | 2 ++ .../org/opsli/modulars/system/SystemMsg.java | 1 - .../system/login/web/LoginRestController.java | 17 +++++++++++++++++ .../system/menu/web/MenuRestController.java | 8 -------- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/msg/TokenMsg.java b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/msg/TokenMsg.java index f58f37d0..853a6e3f 100644 --- a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/msg/TokenMsg.java +++ b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/msg/TokenMsg.java @@ -48,6 +48,8 @@ public enum TokenMsg implements BaseMsg { EXCEPTION_LOGIN_TENANT_NOT_USABLE(12105,"租户未启用,请联系管理员"), EXCEPTION_LOGIN_NULL(12106,"请输入账号密码"), EXCEPTION_LOGIN_DECRYPT(12107,"登录账号密码解析失败"), + EXCEPTION_USER_ROLE_NOT_NULL(12108,"用户暂无角色,请设置后登录"), + EXCEPTION_USER_MENU_NOT_NULL(12109,"用户暂无角色菜单,请设置后登录"), /** * 其他 diff --git a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/SystemMsg.java b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/SystemMsg.java index dfdb1560..2df771d1 100644 --- a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/SystemMsg.java +++ b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/SystemMsg.java @@ -60,7 +60,6 @@ public enum SystemMsg implements BaseMsg { EXCEPTION_USER_PASSWORD_EQ_ERROR(20302,"旧密码不可以等于新密码"), EXCEPTION_USER_ID_NOT_NULL(20303,"用户Id不可为空"), EXCEPTION_USER_ROLES_ERROR(20304,"用户角色设置失败"), - EXCEPTION_USER_MENU_NOT_NULL(20305,"用户暂无角色菜单,请设置后登录"), EXCEPTION_USER_NO_UNIQUE(20306,"该工号已存在"), EXCEPTION_ORG_NOT_NULL(20307,"组织不可为空"), EXCEPTION_USER_ORG_ERROR(20308,"用户组织设置失败"), diff --git a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/login/web/LoginRestController.java b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/login/web/LoginRestController.java index e19b51ee..324ae28b 100644 --- a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/login/web/LoginRestController.java +++ b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/login/web/LoginRestController.java @@ -15,12 +15,14 @@ */ package org.opsli.modulars.system.login.web; +import cn.hutool.core.collection.CollUtil; import com.google.common.collect.Maps; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.opsli.api.base.result.ResultVo; +import org.opsli.api.wrapper.system.menu.MenuModel; import org.opsli.api.wrapper.system.options.OptionsModel; import org.opsli.api.wrapper.system.tenant.TenantModel; import org.opsli.api.wrapper.system.user.UserModel; @@ -48,6 +50,7 @@ import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.List; import java.util.Map; /** @@ -132,6 +135,20 @@ public class LoginRestController { CaptchaUtil.delCaptcha(form.getUuid()); } + // 检测用户是否有角色 + List roleModelList = UserUtil.getUserRolesByUserId(user.getId()); + if(CollUtil.isEmpty(roleModelList)){ + // 用户暂无角色,请设置后登录 + throw new TokenException(TokenMsg.EXCEPTION_USER_ROLE_NOT_NULL); + } + + // 检测用户是否有角色菜单 + List menuModelList = UserUtil.getMenuListByUserId(user.getId()); + if(CollUtil.isEmpty(menuModelList)){ + // 用户暂无角色菜单,请设置后登录 + throw new TokenException(TokenMsg.EXCEPTION_USER_MENU_NOT_NULL); + } + //生成token,并保存到Redis ResultVo resultVo = UserTokenUtil.createToken(user); if(resultVo.isSuccess()){ diff --git a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/web/MenuRestController.java b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/web/MenuRestController.java index 12877dfa..a478d5f7 100644 --- a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/web/MenuRestController.java +++ b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/menu/web/MenuRestController.java @@ -114,10 +114,6 @@ public class MenuRestController extends BaseRestController menuModelList = iUserService.getMenuAllListByUserId(user.getId()); - if(CollUtil.isEmpty(menuModelList)){ - // 用户暂无角色菜单,请设置后登录 - throw new ServiceException(SystemMsg.EXCEPTION_USER_MENU_NOT_NULL); - } // 这里有坑 如果 为 菜单数据 且 组件(Component)地址为空 不会跳转到主页 也不报错 // 修复菜单问题导致无法跳转主页 @@ -146,10 +142,6 @@ public class MenuRestController extends BaseRestController menuModelList = UserUtil.getMenuListByUserId(user.getId()); - if(CollUtil.isEmpty(menuModelList)){ - // 用户暂无角色菜单,请设置后登录 - throw new ServiceException(SystemMsg.EXCEPTION_USER_MENU_NOT_NULL); - } // 这里有坑 如果 为 菜单数据 且 组件(Component)地址为空 不会跳转到主页 也不报错 // 修复菜单问题导致无法跳转主页