controller

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: Aug 11, 2020 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

Package controller defines common utilities used by web and API controllers.

Index

Constants

View Source
const (
	ContentTypeJSON = "application/json"
	ContentTypeHTML = "text/html"
)

Variables

This section is empty.

Functions

func AuthorizedAppFromContext

func AuthorizedAppFromContext(ctx context.Context) *database.AuthorizedApp

AuthorizedAppFromContext retrieves the authorized app from the context. If no value exists, it returns nil.

func Back added in v0.3.0

Back goes back to the referrer.

func BindForm

func BindForm(w http.ResponseWriter, r *http.Request, data interface{}) error

BindForm parses and binds the HTTP form to the provided data interface using the gorilla schema package.

func BindJSON

func BindJSON(w http.ResponseWriter, r *http.Request, data interface{}) error

BindJSON provides a common implementation of JSON unmarshaling with well defined error handling.

func ClearSessionFirebaseCookie

func ClearSessionFirebaseCookie(session *sessions.Session)

ClearSessionFirebaseCookie clears the firebase cookie from the session.

func ClearSessionRealm

func ClearSessionRealm(session *sessions.Session)

ClearSessionRealm clears the realm from the session.

func FirebaseCookieFromSession

func FirebaseCookieFromSession(session *sessions.Session) string

FirebaseCookieFromSession extracts the firebase cookie from the session.

func Flash

func Flash(session *sessions.Session) *flash.Flash

Flash gets or creates the flash data for the provided session.

func HandleHealthz added in v0.3.0

func HandleHealthz(hctx context.Context, h *render.Renderer, cfg *database.Config) http.Handler

func InternalError

func InternalError(w http.ResponseWriter, r *http.Request, h *render.Renderer, err error)

InternalError handles an internal error, returning the right response to the client.

func IsJSONContentType

func IsJSONContentType(r *http.Request) bool

IsJSONContentType returns true if the request's content type is application/json extra specific details, like UTF encoding schema are allowed.

func MissingAuthorizedApp

func MissingAuthorizedApp(w http.ResponseWriter, r *http.Request, h *render.Renderer)

MissingAuthorizedApp returns an internal error when the authorized app does not exist.

func MissingRealm

func MissingRealm(w http.ResponseWriter, r *http.Request, h *render.Renderer)

MissingRealm returns an error indicating that the request requires a realm selection, but one was not present.

func MissingSession

func MissingSession(w http.ResponseWriter, r *http.Request, h *render.Renderer)

MissingSession returns an internal error when the session does not exist.

func MissingUser

func MissingUser(w http.ResponseWriter, r *http.Request, h *render.Renderer)

MissingUser returns an internal error when the user does not exist.

func RealmFromContext

func RealmFromContext(ctx context.Context) *database.Realm

RealmFromContext retrieves the realm from the context. If no value exists, it returns nil.

func RealmIDFromSession

func RealmIDFromSession(session *sessions.Session) uint

RealmIDFromSession extracts the realm from the session.

func SessionFromContext

func SessionFromContext(ctx context.Context) *sessions.Session

SessionFromContext retrieves the session on the provided context. If no session exists, or if the value in the context is not of the correct type, it returns nil.

func StoreSessionFirebaseCookie

func StoreSessionFirebaseCookie(session *sessions.Session, firebaseCookie string)

StoreSessionFirebaseCookie stores the firebase cookie in the session. If the provided session or cookie is nil/empty, it does nothing.

func StoreSessionRealm

func StoreSessionRealm(session *sessions.Session, realm *database.Realm)

StoreSessionRealm stores the realm's ID in the session.

func Unauthorized

func Unauthorized(w http.ResponseWriter, r *http.Request, h *render.Renderer)

Unauthorized returns an error indicating the request was unauthorized.

func UserFromContext

func UserFromContext(ctx context.Context) *database.User

UserFromContext retrieves the user from the context. If no value exists, it returns nil.

func WithAuthorizedApp

func WithAuthorizedApp(ctx context.Context, app *database.AuthorizedApp) context.Context

WithAuthorizedApp stores the authorized app on the context.

func WithRealm

func WithRealm(ctx context.Context, r *database.Realm) context.Context

WithRealm stores the current realm on the context.

func WithSession

func WithSession(ctx context.Context, session *sessions.Session) context.Context

WithSession stores the session on the request's context for retrieval later. Use Session(r) to retrieve the session.

func WithTemplateMap

func WithTemplateMap(ctx context.Context, m TemplateMap) context.Context

WithTemplateMap sets the user in the context.

func WithUser

func WithUser(ctx context.Context, u *database.User) context.Context

WithUser stores the current user on the context.

Types

type TemplateMap

type TemplateMap map[string]interface{}

TemplateMap is a typemap for the HTML templates.

func TemplateMapFromContext

func TemplateMapFromContext(ctx context.Context) TemplateMap

TemplateMapFromContext gets the template map on the context. If no map exists, it returns an empty map.

Directories

Path Synopsis
Package apikey contains web controllers for listing and adding API Keys.
Package apikey contains web controllers for listing and adding API Keys.
Package certapi implements the token + TEK verification API.
Package certapi implements the token + TEK verification API.
Package cleanup implements periodic data deletion.
Package cleanup implements periodic data deletion.
Package flash implements flash messages.
Package flash implements flash messages.
Package home defines a web controller for the home page of the verification server.
Package home defines a web controller for the home page of the verification server.
Package index defines the controller for the index/landing page.
Package index defines the controller for the index/landing page.
Package issueapi implements the API handler for taking a code request, assigning an OTP, saving it to the database and returning the result.
Package issueapi implements the API handler for taking a code request, assigning an OTP, saving it to the database and returning the result.
Package middleware contains application specific gin middleware functions.
Package middleware contains application specific gin middleware functions.
Package realm contains web controllers for selecting the effective realm.
Package realm contains web controllers for selecting the effective realm.
Package realmadmin contains web controllers for changing realm settings.
Package realmadmin contains web controllers for changing realm settings.
Package session contains the controller that exchanges firebase auth tokens for server side session tokens.
Package session contains the controller that exchanges firebase auth tokens for server side session tokens.
Package user contains web controllers for listing and adding users.
Package user contains web controllers for listing and adding users.
Package verifyapi implements the exchange of the verification code (short term token) for a long term token that can be used to get a verification certification to send to the key server.
Package verifyapi implements the exchange of the verification code (short term token) for a long term token that can be used to get a verification certification to send to the key server.

Jump to

Keyboard shortcuts

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