禁用用户登录

This commit is contained in:
xmdhs 2023-10-05 15:34:26 +08:00
parent c8c0d77165
commit 838652503c
No known key found for this signature in database
GPG Key ID: E809D6D43DEFCC95
2 changed files with 16 additions and 3 deletions

View File

@ -79,3 +79,11 @@ func Auth(ctx context.Context, t yggdrasil.ValidateToken, client *ent.Client, c
} }
return claims, nil return claims, nil
} }
func IsAdmin(state int) bool {
return state&1 == 1
}
func IsDisable(state int) bool {
return state&2 == 2
}

View File

@ -30,9 +30,10 @@ import (
) )
var ( var (
ErrRate = errors.New("频率限制") ErrRate = errors.New("频率限制")
ErrPassWord = errors.New("错误的密码或邮箱") ErrPassWord = errors.New("错误的密码或邮箱")
ErrNotUser = errors.New("没有这个用户") ErrNotUser = errors.New("没有这个用户")
ErrUserDisable = errors.New("用户被禁用")
) )
func (y *Yggdrasil) validatePass(cxt context.Context, email, pass string) (*ent.User, error) { func (y *Yggdrasil) validatePass(cxt context.Context, email, pass string) (*ent.User, error) {
@ -60,6 +61,10 @@ func (y *Yggdrasil) Authenticate(cxt context.Context, auth yggdrasil.Authenticat
return yggdrasil.Token{}, fmt.Errorf("Authenticate: %w", err) return yggdrasil.Token{}, fmt.Errorf("Authenticate: %w", err)
} }
if sutils.IsDisable(u.State) {
return yggdrasil.Token{}, fmt.Errorf("Authenticate: %w", ErrUserDisable)
}
clientToken := auth.ClientToken clientToken := auth.ClientToken
if clientToken == "" { if clientToken == "" {
clientToken = strings.ReplaceAll(uuid.New().String(), "-", "") clientToken = strings.ReplaceAll(uuid.New().String(), "-", "")