Skip to content

Commit 2ab0007

Browse files
author
piexlmax
committed
当页面默认路由不在权限范围内时可以正常登录跳转404
1 parent 08d30e7 commit 2ab0007

File tree

3 files changed

+18
-3
lines changed

3 files changed

+18
-3
lines changed

server/service/system/sys_user.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,13 @@ func (userService *UserService) Login(u *system.SysUser) (err error, userInter *
4646
var user system.SysUser
4747
u.Password = utils.MD5V([]byte(u.Password))
4848
err = global.GVA_DB.Where("username = ? AND password = ?", u.Username, u.Password).Preload("Authorities").Preload("Authority").First(&user).Error
49+
if err == nil{
50+
var am system.SysMenu
51+
ferr := global.GVA_DB.First(&am,"name = ? AND authority_id = ?",user.Authority.DefaultRouter,user.AuthorityId).Error
52+
if errors.Is(ferr,gorm.ErrRecordNotFound) {
53+
user.Authority.DefaultRouter = "404"
54+
}
55+
}
4956
return err, &user
5057
}
5158

@@ -163,6 +170,14 @@ func (userService *UserService) SetUserInfo(reqUser system.SysUser) (err error,
163170
func (userService *UserService) GetUserInfo(uuid uuid.UUID) (err error, user system.SysUser) {
164171
var reqUser system.SysUser
165172
err = global.GVA_DB.Preload("Authorities").Preload("Authority").First(&reqUser, "uuid = ?", uuid).Error
173+
if err!=nil{
174+
return err, reqUser
175+
}
176+
var am system.SysMenu
177+
ferr := global.GVA_DB.First(&am,"name = ? AND authority_id = ?",reqUser.Authority.DefaultRouter,reqUser.AuthorityId).Error
178+
if errors.Is(ferr,gorm.ErrRecordNotFound) {
179+
reqUser.Authority.DefaultRouter = "404"
180+
}
166181
return err, reqUser
167182
}
168183

web/src/pinia/modules/router.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const KeepAliveFilter = (routes) => {
2424
routes && routes.forEach(item => {
2525
// 子菜单中有 keep-alive 的,父菜单也必须 keep-alive,否则无效。这里将子菜单中有 keep-alive 的父菜单也加入。
2626
if ((item.children && item.children.some(ch => ch.meta.keepAlive) || item.meta.keepAlive)) {
27-
item.component().then(val => { keepAliveRoutersArr.push(val.default.name) })
27+
item.component && item.component().then(val => { keepAliveRoutersArr.push(val.default.name) })
2828
}
2929
if (item.children && item.children.length > 0) {
3030
KeepAliveFilter(item.children)

web/src/view/error/index.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
<div class="big">
44
<div class="inner">
55
<img src="../../assets/notFound.png">
6-
<p>页面被神秘力量吸走了,请联系我们修复</p>
7-
<p style="font-size:18px;line-height:40px;">常见问题为菜单未分配仪表盘,可自行分配仪表盘或修改默认路由</p>
6+
<p>页面被神秘力量吸走了(如果您是开源版请联系我们修复)</p>
7+
<p style="font-size:18px;line-height:40px;">常见问题为当前此角色无当前路由,如果确定要使用本路由,请到角色管理进行分配</p>
88
<p>↓</p>
99
<img src="../../assets/qm.png" class="leftPic">
1010
</div>

0 commit comments

Comments
 (0)