mirror of
https://github.com/get-drexa/drive.git
synced 2026-02-02 19:11:17 +00:00
57 lines
1.7 KiB
Go
57 lines
1.7 KiB
Go
package reqctx
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
)
|
|
|
|
const authenticatedUserKey = "authenticatedUser"
|
|
const vfsAccessScope = "vfsAccessScope"
|
|
const currentAccountKey = "currentAccount"
|
|
const currentDriveKey = "currentDrive"
|
|
|
|
var ErrUnauthenticatedRequest = errors.New("unauthenticated request")
|
|
|
|
// AuthenticatedUser returns the authenticated user from the given fiber context.
|
|
// Returns ErrUnauthenticatedRequest if not authenticated.
|
|
// The caller must type assert the returned value to the appropriate user type.
|
|
func AuthenticatedUser(c *fiber.Ctx) any {
|
|
return c.Locals(authenticatedUserKey)
|
|
}
|
|
|
|
// SetAuthenticatedUser sets the authenticated user in the fiber context.
|
|
func SetAuthenticatedUser(c *fiber.Ctx, user any) {
|
|
c.Locals(authenticatedUserKey, user)
|
|
}
|
|
|
|
// SetCurrentAccount sets the current account in the fiber context.
|
|
func SetCurrentAccount(c *fiber.Ctx, account any) {
|
|
c.Locals(currentAccountKey, account)
|
|
}
|
|
|
|
// SetCurrentDrive sets the current drive in the fiber context.
|
|
func SetCurrentDrive(c *fiber.Ctx, drive any) {
|
|
c.Locals(currentDriveKey, drive)
|
|
}
|
|
|
|
// SetVFSAccessScope sets the VFS access scope in the fiber context.
|
|
func SetVFSAccessScope(c *fiber.Ctx, scope any) {
|
|
c.Locals(vfsAccessScope, scope)
|
|
}
|
|
|
|
// CurrentAccount returns the current account from the given fiber context.
|
|
func CurrentAccount(c *fiber.Ctx) any {
|
|
return c.Locals(currentAccountKey)
|
|
}
|
|
|
|
// CurrentDrive returns the current drive from the given fiber context.
|
|
func CurrentDrive(c *fiber.Ctx) any {
|
|
return c.Locals(currentDriveKey)
|
|
}
|
|
|
|
// VFSAccessScope returns the VFS access scope from the given fiber context.
|
|
func VFSAccessScope(c *fiber.Ctx) any {
|
|
return c.Locals(vfsAccessScope)
|
|
}
|