Rename auth files

This commit is contained in:
Melon 2025-03-13 22:41:57 +00:00
parent 50df217b66
commit 4300165ae3
Signed by: melon
GPG Key ID: 6C9D970C50D26A25
7 changed files with 28 additions and 32 deletions

View File

@ -1,29 +0,0 @@
package auth
import (
"context"
"github.com/1f349/lavender/auth/process"
"github.com/1f349/lavender/database"
)
type Provider interface {
// AccessState defines the state at which the provider is allowed to show.
// Some factors might be unavailable due to user preference.
AccessState() process.State
// Name defines a string value for the provider.
Name() string
}
type LookupUserDB interface {
GetUser(ctx context.Context, subject string) (database.User, error)
}
func LookupUser(ctx context.Context, db LookupUserDB, subject string, user *database.User) error {
getUser, err := db.GetUser(ctx, subject)
if err != nil {
return err
}
*user = getUser
return nil
}

14
auth/provider.go Normal file
View File

@ -0,0 +1,14 @@
package auth
import (
"github.com/1f349/lavender/auth/process"
)
type Provider interface {
// AccessState defines the state at which the provider is allowed to show.
// Some factors might be unavailable due to user preference.
AccessState() process.State
// Name defines a string value for the provider.
Name() string
}

View File

@ -1,13 +1,15 @@
package providers
import (
"context"
"github.com/1f349/lavender/auth"
"github.com/1f349/lavender/auth/authContext"
"github.com/1f349/lavender/auth/process"
"github.com/1f349/lavender/database"
)
type passkeyLoginDB interface {
auth.LookupUserDB
GetUser(ctx context.Context, subject string) (database.User, error)
}
var (

View File

@ -12,7 +12,7 @@ import (
)
type passwordLoginDB interface {
auth.LookupUserDB
GetUser(ctx context.Context, subject string) (database.User, error)
CheckLogin(ctx context.Context, un, pw string) (database.CheckLoginResult, error)
}
@ -58,7 +58,16 @@ func (b *PasswordLogin) AttemptLogin(ctx authContext.FormContext) error {
login, err := b.DB.CheckLogin(ctx.Context(), un, pw)
switch {
case err == nil:
return auth.LookupUser(ctx.Context(), b.DB, login.Subject, ctx.User())
user, err := b.DB.GetUser(ctx.Context(), login.Subject)
if err != nil {
return err
}
ctx.SetUser(&user)
ctx.UpdateSession(process.LoginProcessData{
State: process.StateBasic,
Email: un,
})
return nil
case errors.Is(err, sql.ErrNoRows):
return auth.BasicUserSafeError(http.StatusForbidden, "Username or password is invalid")
default: