webserver

package
v4.14.0-beta.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 18, 2025 License: GPL-3.0 Imports: 31 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AllowIfNotLoggedIn

func AllowIfNotLoggedIn(jwtSecret []byte) func(*fiber.Ctx) error

AllowIfNotLoggedIn only allows processing the request if there is no session

func AlwaysRequireAuthentication

func AlwaysRequireAuthentication(jwtSecret []byte, sender Sender, translator i18n.Translator) func(*fiber.Ctx) error

AlwaysRequireAuthentication returns forbidden and renders the login page if the user trying to access has not logged in

func ConfigurableAuthentication

func ConfigurableAuthentication(jwtSecret []byte, sender Sender, translator i18n.Translator, requireAuth bool) func(*fiber.Ctx) error

ConfigurableAuthentication allows to enable or disable authentication on routes which may or may not require it

func New

func New(cfg Config, controllers Controllers, sender Sender, progress ProgressInfo) *fiber.App

New builds a new Fiber application and set up the required routes

func OneTimeMessages added in v4.11.0

func OneTimeMessages() func(c *fiber.Ctx) error

func RequireAdmin

func RequireAdmin(c *fiber.Ctx) error

RequireAdmin returns HTTP forbidden if the user requesting access is not an admin

func SetFQDN

func SetFQDN(cfg Config) func(*fiber.Ctx) error

SetFQDN composes the Fully Qualified Domain Name of the host running the app and sets it as a local variable of the request

func SetProgress

func SetProgress(progress ProgressInfo) func(*fiber.Ctx) error

SetProgress retrieves indexing progress information from the index and sets it as a local variable of the request

Types

type Config

type Config struct {
	Version                    string
	SessionTimeout             time.Duration
	RecoveryTimeout            time.Duration
	MinPasswordLength          int
	WordsPerMinute             float64
	JwtSecret                  []byte
	Hostname                   string
	FQDN                       string
	Port                       int
	HomeDir                    string
	CacheDir                   string
	LibraryPath                string
	AuthorImageMaxWidth        int
	CoverMaxWidth              int
	RequireAuth                bool
	UploadDocumentMaxSize      int
	ClientStaticCacheTTL       int
	ClientDynamicImageCacheTTL int
	ServerStaticCacheTTL       int
	ServerDynamicImageCacheTTL int
}

type Controllers

type Controllers struct {
	Auth       *auth.Controller
	Users      *user.Controller
	Highlights *highlight.Controller
	Documents  *document.Controller
	Home       *home.Controller
	Authors    *author.Controller
	Series     *series.Controller
}

func SetupControllers

func SetupControllers(cfg Config, db *gorm.DB, metadataReaders map[string]metadata.Reader, idx *index.BleveIndexer, sender Sender, appFs afero.Fs, dataSource author.DataSource) Controllers

type ProgressInfo

type ProgressInfo interface {
	IndexingProgress() (index.Progress, error)
}

type Sender

type Sender interface {
	Send(address, subject, body string) error
	SendDocument(address, subject, libraryPath, fileName string) error
	From() string
}

Directories

Path Synopsis
controller

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL