You've already forked openaccounting-server
mirror of
https://github.com/openaccounting/oa-server.git
synced 2025-12-09 00:50:59 +13:00
allow limited login via email verify code
This commit is contained in:
@@ -19,6 +19,7 @@ type Interface interface {
|
||||
AuthenticateUser(email string, password string) (*types.User, error)
|
||||
AuthenticateSession(string) (*types.User, error)
|
||||
AuthenticateApiKey(string) (*types.User, error)
|
||||
AuthenticateEmailVerifyCode(string) (*types.User, error)
|
||||
}
|
||||
|
||||
func NewAuthService(db db.Datastore, bcrypt util.Bcrypt) *AuthService {
|
||||
@@ -47,6 +48,12 @@ func (auth *AuthService) Authenticate(emailOrKey string, password string) (*type
|
||||
return user, nil
|
||||
}
|
||||
|
||||
user, err = auth.AuthenticateEmailVerifyCode(emailOrKey)
|
||||
|
||||
if err == nil {
|
||||
return user, nil
|
||||
}
|
||||
|
||||
return nil, errors.New("Unauthorized")
|
||||
}
|
||||
|
||||
@@ -89,3 +96,13 @@ func (auth *AuthService) AuthenticateApiKey(id string) (*types.User, error) {
|
||||
|
||||
return u, nil
|
||||
}
|
||||
|
||||
func (auth *AuthService) AuthenticateEmailVerifyCode(code string) (*types.User, error) {
|
||||
u, err := auth.db.GetUserByEmailVerifyCode(code)
|
||||
|
||||
if err != nil {
|
||||
return nil, errors.New("Access denied")
|
||||
}
|
||||
|
||||
return u, nil
|
||||
}
|
||||
Reference in New Issue
Block a user