Documentation ¶
Overview ¶
Package controller defines common utilities used by web and API controllers.
Index ¶
- Constants
- func AuthorizedAppFromContext(ctx context.Context) *database.AuthorizedApp
- func Back(w http.ResponseWriter, r *http.Request, h *render.Renderer)
- func BindForm(w http.ResponseWriter, r *http.Request, data interface{}) error
- func BindJSON(w http.ResponseWriter, r *http.Request, data interface{}) error
- func ClearSessionFirebaseCookie(session *sessions.Session)
- func ClearSessionRealm(session *sessions.Session)
- func FirebaseCookieFromSession(session *sessions.Session) string
- func Flash(session *sessions.Session) *flash.Flash
- func HandleHealthz(hctx context.Context, h *render.Renderer, cfg *database.Config) http.Handler
- func InternalError(w http.ResponseWriter, r *http.Request, h *render.Renderer, err error)
- func IsJSONContentType(r *http.Request) bool
- func MissingAuthorizedApp(w http.ResponseWriter, r *http.Request, h *render.Renderer)
- func MissingRealm(w http.ResponseWriter, r *http.Request, h *render.Renderer)
- func MissingSession(w http.ResponseWriter, r *http.Request, h *render.Renderer)
- func MissingUser(w http.ResponseWriter, r *http.Request, h *render.Renderer)
- func RealmFromContext(ctx context.Context) *database.Realm
- func RealmIDFromSession(session *sessions.Session) uint
- func SessionFromContext(ctx context.Context) *sessions.Session
- func StoreSessionFirebaseCookie(session *sessions.Session, firebaseCookie string)
- func StoreSessionRealm(session *sessions.Session, realm *database.Realm)
- func Unauthorized(w http.ResponseWriter, r *http.Request, h *render.Renderer)
- func UserFromContext(ctx context.Context) *database.User
- func WithAuthorizedApp(ctx context.Context, app *database.AuthorizedApp) context.Context
- func WithRealm(ctx context.Context, r *database.Realm) context.Context
- func WithSession(ctx context.Context, session *sessions.Session) context.Context
- func WithTemplateMap(ctx context.Context, m TemplateMap) context.Context
- func WithUser(ctx context.Context, u *database.User) context.Context
- type TemplateMap
Constants ¶
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 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 ¶
ClearSessionFirebaseCookie clears the firebase cookie from the session.
func ClearSessionRealm ¶
ClearSessionRealm clears the realm from the session.
func FirebaseCookieFromSession ¶
FirebaseCookieFromSession extracts the firebase cookie from the session.
func HandleHealthz ¶ added in v0.3.0
func InternalError ¶
InternalError handles an internal error, returning the right response to the client.
func IsJSONContentType ¶
IsJSONContentType returns true if the request's content type is application/json extra specific details, like UTF encoding schema are allowed.
func MissingAuthorizedApp ¶
MissingAuthorizedApp returns an internal error when the authorized app does not exist.
func MissingRealm ¶
MissingRealm returns an error indicating that the request requires a realm selection, but one was not present.
func MissingSession ¶
MissingSession returns an internal error when the session does not exist.
func MissingUser ¶
MissingUser returns an internal error when the user does not exist.
func RealmFromContext ¶
RealmFromContext retrieves the realm from the context. If no value exists, it returns nil.
func RealmIDFromSession ¶
RealmIDFromSession extracts the realm from the session.
func SessionFromContext ¶
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 ¶
StoreSessionFirebaseCookie stores the firebase cookie in the session. If the provided session or cookie is nil/empty, it does nothing.
func StoreSessionRealm ¶
StoreSessionRealm stores the realm's ID in the session.
func Unauthorized ¶
Unauthorized returns an error indicating the request was unauthorized.
func UserFromContext ¶
UserFromContext retrieves the user from the context. If no value exists, it returns nil.
func WithAuthorizedApp ¶
WithAuthorizedApp stores the authorized app on the context.
func WithSession ¶
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.
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.
Source Files ¶
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 codestatus defines a web controller for the code status page of the verification server.
|
Package codestatus defines a web controller for the code status page of the verification server. |
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. |