big ole refactor

This commit is contained in:
2026-02-14 19:48:59 +11:00
parent f0e7962af5
commit 8a79533de3
66 changed files with 989 additions and 1114 deletions

47
internal/server/auth.go Normal file
View File

@@ -0,0 +1,47 @@
package server
import (
"context"
"git.haelnorr.com/h/golib/hlog"
"git.haelnorr.com/h/golib/hws"
"git.haelnorr.com/h/golib/hwsauth"
"git.haelnorr.com/h/oslstats/internal/db"
"git.haelnorr.com/h/oslstats/internal/handlers"
"github.com/pkg/errors"
"github.com/uptrace/bun"
)
func setupAuth(
cfg *hwsauth.Config,
logger *hlog.Logger,
conn *db.DB,
server *hws.Server,
ignoredPaths []string,
) (*hwsauth.Authenticator[*db.User, bun.Tx], error) {
beginTx := func(ctx context.Context) (hwsauth.DBTransaction, error) {
tx, err := conn.BeginTx(ctx, nil)
return tx, err
}
auth, err := hwsauth.NewAuthenticator(
cfg,
db.GetUserByID,
server,
beginTx,
logger,
handlers.ErrorPage,
conn.DB.DB,
)
if err != nil {
return nil, errors.Wrap(err, "hwsauth.NewAuthenticator")
}
err = auth.IgnorePaths(ignoredPaths...)
if err != nil {
return nil, errors.Wrap(err, "auth.IgnorePaths")
}
db.CurrentUser = auth.CurrentModel
return auth, nil
}