system

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Sep 19, 2019 License: ISC, MIT Imports: 28 Imported by: 22

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func APIInvalidHandler

func APIInvalidHandler(w http.ResponseWriter, _ *http.Request)

APIInvalidHandler responds to invalid requests. It matches the signature of http.HanderFunc.

func DestroySessionsForUserID

func DestroySessionsForUserID(dbMap *gorp.DbMap, userID int64) error

DestroySessionsForUserID deletes all sessions from the db for userId

It should be noted that this does not prevent the user's current session from being saved again, which can be achieved by setting MaxAge to -1

func DisableLog

func DisableLog()

DisableLog disables all library log output. Logging output is disabled by default until either UseLogger or SetLogWriter are called.

func GojiWebHandlerFunc

func GojiWebHandlerFunc(h http.HandlerFunc) web.HandlerFunc

GojiWebHandlerFunc is an adaptor that allows an http.HanderFunc where a web.HandlerFunc is required.

func ReloadTemplatesSig

func ReloadTemplatesSig(app *Application)

func UseLogger

func UseLogger(logger slog.Logger)

UseLogger uses a specified Logger to output package logging info. This should be used in preference to SetLogWriter if the caller is also using slog.

func WriteAPIResponse

func WriteAPIResponse(resp *APIResponse, code int, w http.ResponseWriter)

WriteAPIResponse marshals the given poolapi.Response into the http.ResponseWriter and sets HTTP status code.

Types

type APIResponse

type APIResponse struct {
	Status  string      `json:"status"`
	Code    codes.Code  `json:"code"`
	Message string      `json:"message"`
	Data    interface{} `json:"data,omitempty"`
}

APIResponse is the response struct used by the server to marshal to a JSON object. Data should be another struct with JSON tags.

func NewAPIResponse

func NewAPIResponse(status string, code codes.Code, message string, data interface{}) *APIResponse

NewAPIResponse is a constructor for APIResponse.

type Application

type Application struct {
	APISecret     string
	Template      *template.Template
	TemplatesPath string
	Store         *SQLStore
	DbMap         *gorp.DbMap
}

func (*Application) APIHandler

func (application *Application) APIHandler(apiFun func(web.C, *http.Request) *APIResponse) web.HandlerFunc

APIHandler executes an API processing function that provides an *APIResponse required by WriteAPIResponse. It returns an web.HandlerFunc so it can be used with a goji router.

func (*Application) ApplyAPI

func (application *Application) ApplyAPI(c *web.C, h http.Handler) http.Handler

func (*Application) ApplyAuth

func (application *Application) ApplyAuth(c *web.C, h http.Handler) http.Handler

func (*Application) ApplyCaptcha

func (application *Application) ApplyCaptcha(c *web.C, h http.Handler) http.Handler

func (*Application) ApplyDbMap

func (application *Application) ApplyDbMap(c *web.C, h http.Handler) http.Handler

func (*Application) ApplyGzip

func (application *Application) ApplyGzip(c *web.C, h http.Handler) http.Handler

func (*Application) ApplySessions

func (application *Application) ApplySessions(c *web.C, h http.Handler) http.Handler

Makes sure controllers can have access to session

func (*Application) ApplyTemplates

func (application *Application) ApplyTemplates(c *web.C, h http.Handler) http.Handler

Makes sure templates are stored in the context

func (*Application) Close

func (application *Application) Close()

func (*Application) Init

func (application *Application) Init(APISecret, baseURL, cookieSecret string,
	cookieSecure bool, DBHost, DBName, DBPassword, DBPort, DBUser string)

func (*Application) LoadTemplates

func (application *Application) LoadTemplates(templatePath string) error

func (*Application) Route

func (application *Application) Route(controller interface{}, route string) web.HandlerFunc

type Controller

type Controller struct {
}

func (*Controller) CheckPasswordResetToken

func (controller *Controller) CheckPasswordResetToken(tokenStr string, c web.C) (models.UserToken, *models.PasswordReset, bool)

CheckPasswordResetToken checks that the input token string is valid, recognized by the DB, and not expired. Flash messages are added to the session for any token failure, and the return indicates if all checks have passed. The UserToken and PasswordReset objects are also returned.

func (*Controller) GetDbMap

func (controller *Controller) GetDbMap(c web.C) *gorp.DbMap

func (*Controller) GetSession

func (controller *Controller) GetSession(c web.C) *sessions.Session

func (*Controller) GetTemplate

func (controller *Controller) GetTemplate(c web.C) *template.Template

func (*Controller) IsCaptchaDone

func (controller *Controller) IsCaptchaDone(c web.C) bool

func (*Controller) Parse

func (controller *Controller) Parse(t *template.Template, name string, data interface{}) string

type SQLStore

type SQLStore struct {
	Options *sessions.Options
	// contains filtered or unexported fields
}

SQLStore stores gorilla sessions in a database.

func NewSQLStore

func NewSQLStore(dbMap *gorp.DbMap, keyPairs ...[]byte) *SQLStore

NewSQLStore returns a new SQLStore. The keyPairs are used in the same way as the gorilla sessions CookieStore.

func (*SQLStore) Get

func (s *SQLStore) Get(r *http.Request, name string) (*sessions.Session, error)

Get returns a cached session.

func (*SQLStore) New

func (s *SQLStore) New(r *http.Request, name string) (*sessions.Session, error)

New creates a new session for the given request r. If the request contains a valid session ID for an existing, non-expired session, then that session will be loaded from the database.

func (*SQLStore) Save

func (s *SQLStore) Save(r *http.Request, w http.ResponseWriter, session *sessions.Session) error

Save stores the session in the database. If session.Options.MaxAge is < 0, the session is deleted from the database.

Jump to

Keyboard shortcuts

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