mirror of
https://github.com/notherealmarco/WASAPhoto.git
synced 2025-03-14 14:16:15 +01:00
38 lines
968 B
Go
38 lines
968 B
Go
/*
|
|
Package reqcontext contains the request context. Each request will have its own instance of RequestContext filled by the
|
|
middleware code in the api-context-wrapper.go (parent package).
|
|
|
|
Each value here should be assumed valid only per request only, with some exceptions like the logger.
|
|
*/
|
|
package reqcontext
|
|
|
|
import (
|
|
"github.com/gofrs/uuid"
|
|
"github.com/notherealmarco/WASAPhoto/service/database"
|
|
"github.com/sirupsen/logrus"
|
|
)
|
|
|
|
type AuthStatus int
|
|
|
|
const (
|
|
AUTHORIZED = 0
|
|
UNAUTHORIZED = 1
|
|
FORBIDDEN = 2
|
|
)
|
|
|
|
// RequestContext is the context of the request, for request-dependent parameters
|
|
type RequestContext struct {
|
|
// ReqUUID is the request unique ID
|
|
ReqUUID uuid.UUID
|
|
|
|
// Logger is a custom field logger for the request
|
|
Logger logrus.FieldLogger
|
|
|
|
Auth Authorization
|
|
}
|
|
|
|
type Authorization interface {
|
|
GetType() string
|
|
Authorized(db database.AppDatabase) (bool, error)
|
|
UserAuthorized(db database.AppDatabase, uid string) (AuthStatus, error)
|
|
}
|