Add first helper method to user
This commit is contained in:
parent
f3a139b809
commit
11e0059631
6 changed files with 16 additions and 7 deletions
|
@ -177,7 +177,7 @@ func oneStorageAuthToLoginState(in models.AuthenticationMethodType) LoginNextSta
|
|||
//
|
||||
// TODO: Decide whether to include the reason for disallowed login
|
||||
func (a *Authenticator) canUsernameLogin(username string) (bool, error) {
|
||||
acc, err := dbgen.User.Where(dbgen.User.Username.Eq(username)).First()
|
||||
acc, err := dbgen.User.GetByUsername(username)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ func (a *Authenticator) StartPasskeyLogin(
|
|||
if ok, err := a.canUsernameLogin(username); !ok {
|
||||
return nil, "", other.Error("auth", "user may not login", err)
|
||||
}
|
||||
acc, err := dbgen.User.Where(dbgen.User.Username.Eq(username)).First()
|
||||
acc, err := dbgen.User.GetByUsername(username)
|
||||
if err != nil {
|
||||
return nil, "", other.Error("auth", "failed to acquire user for login", err)
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ func (a *Authenticator) CompletePasskeyLogin(
|
|||
response *http.Request,
|
||||
) (accessToken string, err error) {
|
||||
// Get user in question
|
||||
acc, err := dbgen.User.Where(dbgen.User.Username.Eq(username)).First()
|
||||
acc, err := dbgen.User.GetByUsername(username)
|
||||
if err != nil {
|
||||
return "", other.Error("auth", "failed to get user for passkey login completion", err)
|
||||
}
|
||||
|
@ -140,7 +140,7 @@ func (a *Authenticator) StartPasskeyRegistration(
|
|||
if ok, err := a.canUsernameLogin(username); !ok {
|
||||
return nil, "", other.Error("auth", "user may not login", err)
|
||||
}
|
||||
acc, err := dbgen.User.Where(dbgen.User.Username.Eq(username)).First()
|
||||
acc, err := dbgen.User.GetByUsername(username)
|
||||
if err != nil {
|
||||
return nil, "", other.Error("auth", "failed to acquire user for login", err)
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ func (a *Authenticator) PerformPasswordLogin(
|
|||
if ok, err := a.canUsernameLogin(username); !ok {
|
||||
return LoginNextFailure, "", other.Error("auth", "user may not login", err)
|
||||
}
|
||||
acc, err := dbgen.User.Where(dbgen.User.Username.Eq(username)).First()
|
||||
acc, err := dbgen.User.GetByUsername(username)
|
||||
switch err {
|
||||
case nil:
|
||||
break
|
||||
|
@ -110,7 +110,7 @@ func (a *Authenticator) PerformPasswordLogin(
|
|||
// If there is no password set yet (i.e. during account registration or passkey only so far)
|
||||
// it creates the password link
|
||||
func (a *Authenticator) PerformPasswordRegister(username, password string) error {
|
||||
acc, err := dbgen.User.Where(dbgen.User.Username.Eq(username)).First()
|
||||
acc, err := dbgen.User.GetByUsername(username)
|
||||
if err != nil {
|
||||
return other.Error("auth", "failed to get user to add a password to", err)
|
||||
}
|
||||
|
|
|
@ -129,7 +129,7 @@ func (a *Authenticator) StartTotpRegistration(
|
|||
if ok, err := a.canUsernameLogin(username); !ok {
|
||||
return nil, other.Error("auth", "user may not login", err)
|
||||
}
|
||||
acc, err := dbgen.User.Where(dbgen.User.Username.Eq(username)).First()
|
||||
acc, err := dbgen.User.GetByUsername(username)
|
||||
if err != nil {
|
||||
return nil, other.Error("auth", "failed to find account", err)
|
||||
}
|
||||
|
|
|
@ -53,6 +53,7 @@ func main() {
|
|||
|
||||
log.Info().Msg("Basic operations applied, applying extra features")
|
||||
g.ApplyInterface(func(models.INotification) {}, models.Notification{})
|
||||
g.ApplyInterface(func(models.IUser) {}, models.User{})
|
||||
|
||||
log.Info().Msg("Extra features applied, starting generation")
|
||||
g.Execute()
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"database/sql"
|
||||
"time"
|
||||
|
||||
"gorm.io/gen"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
|
@ -76,3 +77,10 @@ type User struct {
|
|||
RemoteInfo *UserRemoteLinks
|
||||
AuthMethods []UserAuthMethod
|
||||
}
|
||||
|
||||
type IUser interface {
|
||||
// Get a user by a username
|
||||
//
|
||||
// SELECT * FROM @@table WHERE username = @username LIMIT 1
|
||||
GetByUsername(username string) (*gen.T, error)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue