mirror of https://github.com/bjdgyc/anylink.git
修复用户组停用时的登录问题 + 优化IUserAuth的checkUser参数
This commit is contained in:
parent
f46a30488a
commit
8ede613488
|
@ -66,13 +66,13 @@ func SetUser(v *User) error {
|
|||
return err
|
||||
}
|
||||
|
||||
// 验证用户登陆信息
|
||||
// 验证用户登录信息
|
||||
func CheckUser(name, pwd, group string) error {
|
||||
// 获取登入的group数据
|
||||
groupData := &Group{}
|
||||
err := One("Name", group, groupData)
|
||||
if err != nil {
|
||||
return fmt.Errorf("%s %s", name, "No用户组")
|
||||
if err != nil || groupData.Status != 1 {
|
||||
return fmt.Errorf("%s - %s", name, "用户组错误")
|
||||
}
|
||||
// 初始化Auth
|
||||
if len(groupData.Auth) == 0 {
|
||||
|
@ -89,10 +89,10 @@ func CheckUser(name, pwd, group string) error {
|
|||
return fmt.Errorf("%s %s", "未知的认证方式: ", authType)
|
||||
}
|
||||
auth := makeInstance(authType).(IUserAuth)
|
||||
return auth.checkUser(name, pwd, groupData.Auth)
|
||||
return auth.checkUser(name, pwd, groupData)
|
||||
}
|
||||
|
||||
// 验证本地用户登陆信息
|
||||
// 验证本地用户登录信息
|
||||
func checkLocalUser(name, pwd, group string) error {
|
||||
// TODO 严重问题
|
||||
// return nil
|
||||
|
@ -110,12 +110,6 @@ func checkLocalUser(name, pwd, group string) error {
|
|||
if !utils.InArrStr(v.Groups, group) {
|
||||
return fmt.Errorf("%s %s", name, "用户组错误")
|
||||
}
|
||||
groupData := &Group{}
|
||||
err = One("Name", group, groupData)
|
||||
if err != nil || groupData.Status != 1 {
|
||||
return fmt.Errorf("%s - %s", name, "用户组错误")
|
||||
}
|
||||
|
||||
// 判断otp信息
|
||||
pinCode := pwd
|
||||
if !v.DisableOtp {
|
||||
|
|
|
@ -9,7 +9,7 @@ var authRegistry = make(map[string]reflect.Type)
|
|||
|
||||
type IUserAuth interface {
|
||||
checkData(authData map[string]interface{}) error
|
||||
checkUser(name string, pwd string, authData map[string]interface{}) error
|
||||
checkUser(name, pwd string, g *Group) error
|
||||
}
|
||||
|
||||
func makeInstance(name string) interface{} {
|
||||
|
|
|
@ -38,16 +38,16 @@ func (auth AuthRadius) checkData(authData map[string]interface{}) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (auth AuthRadius) checkUser(name string, pwd string, authData map[string]interface{}) error {
|
||||
func (auth AuthRadius) checkUser(name, pwd string, g *Group) error {
|
||||
pl := len(pwd)
|
||||
if name == "" || pl < 1 {
|
||||
return fmt.Errorf("%s %s", name, "密码错误")
|
||||
}
|
||||
authType := authData["type"].(string)
|
||||
if _, ok := authData[authType]; !ok {
|
||||
authType := g.Auth["type"].(string)
|
||||
if _, ok := g.Auth[authType]; !ok {
|
||||
return fmt.Errorf("%s %s", name, "Radius的radius值不存在")
|
||||
}
|
||||
bodyBytes, err := json.Marshal(authData[authType])
|
||||
bodyBytes, err := json.Marshal(g.Auth[authType])
|
||||
if err != nil {
|
||||
return fmt.Errorf("%s %s", name, "Radius Marshal出现错误")
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue