mirror of
https://github.com/1f349/lavender.git
synced 2025-04-15 23:37:53 +01:00
Rename auth files
This commit is contained in:
parent
50df217b66
commit
4300165ae3
29
auth/auth.go
29
auth/auth.go
@ -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
14
auth/provider.go
Normal 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
|
||||||
|
}
|
@ -1,13 +1,15 @@
|
|||||||
package providers
|
package providers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"github.com/1f349/lavender/auth"
|
"github.com/1f349/lavender/auth"
|
||||||
"github.com/1f349/lavender/auth/authContext"
|
"github.com/1f349/lavender/auth/authContext"
|
||||||
"github.com/1f349/lavender/auth/process"
|
"github.com/1f349/lavender/auth/process"
|
||||||
|
"github.com/1f349/lavender/database"
|
||||||
)
|
)
|
||||||
|
|
||||||
type passkeyLoginDB interface {
|
type passkeyLoginDB interface {
|
||||||
auth.LookupUserDB
|
GetUser(ctx context.Context, subject string) (database.User, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -12,7 +12,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type passwordLoginDB interface {
|
type passwordLoginDB interface {
|
||||||
auth.LookupUserDB
|
GetUser(ctx context.Context, subject string) (database.User, error)
|
||||||
CheckLogin(ctx context.Context, un, pw string) (database.CheckLoginResult, 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)
|
login, err := b.DB.CheckLogin(ctx.Context(), un, pw)
|
||||||
switch {
|
switch {
|
||||||
case err == nil:
|
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):
|
case errors.Is(err, sql.ErrNoRows):
|
||||||
return auth.BasicUserSafeError(http.StatusForbidden, "Username or password is invalid")
|
return auth.BasicUserSafeError(http.StatusForbidden, "Username or password is invalid")
|
||||||
default:
|
default:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user