Compare commits
1 Commits
hws/v0.4.3
...
hwsauth/v0
| Author | SHA1 | Date | |
|---|---|---|---|
| 7ed40c7afe |
@@ -2,10 +2,12 @@ package hwsauth
|
||||
|
||||
import (
|
||||
"context"
|
||||
"git.haelnorr.com/h/golib/hws"
|
||||
"net/http"
|
||||
"slices"
|
||||
"time"
|
||||
|
||||
"git.haelnorr.com/h/golib/hws"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
// Authenticate returns the main authentication middleware.
|
||||
@@ -30,12 +32,20 @@ func (auth *Authenticator[T, TX]) authenticate() hws.MiddlewareFunc {
|
||||
// Start the transaction
|
||||
tx, err := auth.beginTx(ctx)
|
||||
if err != nil {
|
||||
return nil, &hws.HWSError{Message: "Unable to start transaction", StatusCode: http.StatusServiceUnavailable, Error: err}
|
||||
return nil, &hws.HWSError{
|
||||
Message: "Unable to start transaction",
|
||||
StatusCode: http.StatusServiceUnavailable,
|
||||
Error: errors.Wrap(err, "auth.beginTx"),
|
||||
}
|
||||
}
|
||||
// Type assert to TX - safe because user's beginTx should return their TX type
|
||||
txTyped, ok := tx.(TX)
|
||||
if !ok {
|
||||
return nil, &hws.HWSError{Message: "Transaction type mismatch", StatusCode: http.StatusInternalServerError, Error: err}
|
||||
return nil, &hws.HWSError{
|
||||
Message: "Transaction type mismatch",
|
||||
StatusCode: http.StatusInternalServerError,
|
||||
Error: errors.Wrap(err, "TX type not ok"),
|
||||
}
|
||||
}
|
||||
model, err := auth.getAuthenticatedUser(txTyped, w, r)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user