diff --git a/README.md b/README.md index facaf3b..18a4a99 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ * 数据存储,仅支持***mysql***、***sqlite*** * 在使用***mysql***作为存储引擎时,需要提前先创建好数据表,并在配置中填写相应的连接信息 * 在使用***sqlite***,需要设置文件存储地址,因使用了Find_In_Set此函数,故暂不支持sqlite +* 已开启了rate限流,请参考配置中进行更改 ``` type # 数据引擎 diff --git a/app/controller/account/instance.go b/app/controller/account/instance.go index 5f35e1f..e84081a 100644 --- a/app/controller/account/instance.go +++ b/app/controller/account/instance.go @@ -34,6 +34,8 @@ func (c *Instance) Login(account, password, captchaKey, captchaValue, ip string) return nil, err } else if !isExist { return nil, errors.New("操作错误,该帐号信息不存在") + } else if mSysUser.Status != model2.SysUserStatusForNormal { + return nil, errors.New("操作错误,该账号已被禁用,请联系管理员") } if !mSysUser.ValidatePassword(password) { diff --git a/app/controller/user/menu.go b/app/controller/user/menu.go index b568c6c..644263a 100644 --- a/app/controller/user/menu.go +++ b/app/controller/user/menu.go @@ -4,6 +4,8 @@ import ( "ArmedPolice/app/controller/menu" "ArmedPolice/app/model" "ArmedPolice/app/service" + "ArmedPolice/utils" + "fmt" ) type Menu struct{ *service.Session } @@ -26,6 +28,7 @@ func (c *Menu) Menu() ([]*menu.InstanceIdentityInfo, error) { if out, err = mSysMenu.UserMenu(c.UID); err != nil { return nil, err } + fmt.Println(utils.AnyToJSON(out)) RETURN: return menu.TreeIdentity(mSysMenu.SysMenu, out, 0), nil } diff --git a/app/model/sys_menu.go b/app/model/sys_menu.go index eed0096..99c74f3 100644 --- a/app/model/sys_menu.go +++ b/app/model/sys_menu.go @@ -52,7 +52,7 @@ func (m *SysMenu) UserMenu(uid uint64) ([]*SysMenuScene, error) { db := orm.GetDB().Table(mSysUserRole.TableName()+" AS u_r"). Select("m.id, m.parent_id, m.name, m.kind, m.link, m.component, m.icon, 1 AS scene_id"). - Joins(fmt.Sprintf("LEFT JOIN %s AS r_m ON u_r.role_id = r_m.id AND r_m.is_deleted = %d", + Joins(fmt.Sprintf("LEFT JOIN %s AS r_m ON u_r.role_id = r_m.role_id AND r_m.is_deleted = %d", mSysRoleMenu.TableName(), model.DeleteStatusForNot)). Joins(fmt.Sprintf("LEFT JOIN %s AS m ON r_m.menu_id = m.id AND m.status = %d AND m.is_deleted = %d", m.TableName(), model.SysMenuStatusForNormal, model.DeleteStatusForNot)). diff --git a/app/model/sys_user.go b/app/model/sys_user.go index d9d4b41..6c55c90 100644 --- a/app/model/sys_user.go +++ b/app/model/sys_user.go @@ -32,7 +32,9 @@ func (m *SysUser) IsAdminUser() bool { } func (m *SysUser) GetByAccountOrMobile(param string) (bool, error) { - db := orm.GetDB().Table(m.TableName()).Where("(account = ? OR mobile = ?)", param, param). + db := orm.GetDB().Table(m.TableName()).Select("id", "tenant_id", "uuid", "name", "account", "avatar", "mobile", + "password", "salt", "is_admin", "status"). + Where("(account = ? OR mobile = ?)", param, param). Where("is_deleted = ?", model.DeleteStatusForNot) if err := db.First(m.SysUser).Error; err != nil {