Documentation ¶
Index ¶
- Variables
- func JSONResponse(w http.ResponseWriter, d interface{}, c int)
- type Server
- func (as *Server) Campaign(w http.ResponseWriter, r *http.Request)
- func (as *Server) CampaignComplete(w http.ResponseWriter, r *http.Request)
- func (as *Server) CampaignResults(w http.ResponseWriter, r *http.Request)
- func (as *Server) CampaignSummary(w http.ResponseWriter, r *http.Request)
- func (as *Server) Campaigns(w http.ResponseWriter, r *http.Request)
- func (as *Server) CampaignsSummary(w http.ResponseWriter, r *http.Request)
- func (as *Server) Group(w http.ResponseWriter, r *http.Request)
- func (as *Server) GroupSummary(w http.ResponseWriter, r *http.Request)
- func (as *Server) Groups(w http.ResponseWriter, r *http.Request)
- func (as *Server) GroupsSummary(w http.ResponseWriter, r *http.Request)
- func (as *Server) IMAPServer(w http.ResponseWriter, r *http.Request)
- func (as *Server) IMAPServerValidate(w http.ResponseWriter, r *http.Request)
- func (as *Server) ImportEmail(w http.ResponseWriter, r *http.Request)
- func (as *Server) ImportGroup(w http.ResponseWriter, r *http.Request)
- func (as *Server) ImportSite(w http.ResponseWriter, r *http.Request)
- func (as *Server) Page(w http.ResponseWriter, r *http.Request)
- func (as *Server) Pages(w http.ResponseWriter, r *http.Request)
- func (as *Server) Reset(w http.ResponseWriter, r *http.Request)
- func (as *Server) SendTestEmail(w http.ResponseWriter, r *http.Request)
- func (as *Server) SendingProfile(w http.ResponseWriter, r *http.Request)
- func (as *Server) SendingProfiles(w http.ResponseWriter, r *http.Request)
- func (as *Server) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (as *Server) Template(w http.ResponseWriter, r *http.Request)
- func (as *Server) Templates(w http.ResponseWriter, r *http.Request)
- func (as *Server) User(w http.ResponseWriter, r *http.Request)
- func (as *Server) Users(w http.ResponseWriter, r *http.Request)
- func (as *Server) ValidateWebhook(w http.ResponseWriter, r *http.Request)
- func (as *Server) Webhook(w http.ResponseWriter, r *http.Request)
- func (as *Server) Webhooks(w http.ResponseWriter, r *http.Request)
- type ServerOption
Constants ¶
This section is empty.
Variables ¶
var ErrEmptyRole = errors.New("No role specified")
ErrEmptyRole is throws when no role is provided when creating or modifying a user.
var ErrEmptyUsername = errors.New("No username provided")
ErrEmptyUsername is thrown when a user attempts to register a username that is taken.
var ErrInsufficientPermission = errors.New("Permission denied")
ErrInsufficientPermission is thrown when a user attempts to change an attribute (such as the role) for which they don't have permission.
var ErrUsernameTaken = errors.New("Username already taken")
ErrUsernameTaken is thrown when a user attempts to register a username that is taken.
Functions ¶
func JSONResponse ¶
func JSONResponse(w http.ResponseWriter, d interface{}, c int)
JSONResponse attempts to set the status code, c, and marshal the given interface, d, into a response that is written to the given ResponseWriter.
Types ¶
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server represents the routes and functionality of the Gophish API. It's not a server in the traditional sense, in that it isn't started and stopped. Rather, it's meant to be used as an http.Handler in the AdminServer.
func NewServer ¶
func NewServer(options ...ServerOption) *Server
NewServer returns a new instance of the API handler with the provided options applied.
func (*Server) Campaign ¶
func (as *Server) Campaign(w http.ResponseWriter, r *http.Request)
Campaign returns details about the requested campaign. If the campaign is not valid, APICampaign returns null.
func (*Server) CampaignComplete ¶
func (as *Server) CampaignComplete(w http.ResponseWriter, r *http.Request)
CampaignComplete effectively "ends" a campaign. Future phishing emails clicked will return a simple "404" page.
func (*Server) CampaignResults ¶
func (as *Server) CampaignResults(w http.ResponseWriter, r *http.Request)
CampaignResults returns just the results for a given campaign to significantly reduce the information returned.
func (*Server) CampaignSummary ¶
func (as *Server) CampaignSummary(w http.ResponseWriter, r *http.Request)
CampaignSummary returns the summary for a given campaign.
func (*Server) Campaigns ¶
func (as *Server) Campaigns(w http.ResponseWriter, r *http.Request)
Campaigns returns a list of campaigns if requested via GET. If requested via POST, APICampaigns creates a new campaign and returns a reference to it.
func (*Server) CampaignsSummary ¶
func (as *Server) CampaignsSummary(w http.ResponseWriter, r *http.Request)
CampaignsSummary returns the summary for the current user's campaigns
func (*Server) Group ¶
func (as *Server) Group(w http.ResponseWriter, r *http.Request)
Group returns details about the requested group. If the group is not valid, Group returns null.
func (*Server) GroupSummary ¶
func (as *Server) GroupSummary(w http.ResponseWriter, r *http.Request)
GroupSummary returns a summary of the groups owned by the current user.
func (*Server) Groups ¶
func (as *Server) Groups(w http.ResponseWriter, r *http.Request)
Groups returns a list of groups if requested via GET. If requested via POST, APIGroups creates a new group and returns a reference to it.
func (*Server) GroupsSummary ¶
func (as *Server) GroupsSummary(w http.ResponseWriter, r *http.Request)
GroupsSummary returns a summary of the groups owned by the current user.
func (*Server) IMAPServer ¶
func (as *Server) IMAPServer(w http.ResponseWriter, r *http.Request)
IMAPServer handles requests for the /api/imapserver/ endpoint
func (*Server) IMAPServerValidate ¶
func (as *Server) IMAPServerValidate(w http.ResponseWriter, r *http.Request)
IMAPServerValidate handles requests for the /api/imapserver/validate endpoint
func (*Server) ImportEmail ¶
func (as *Server) ImportEmail(w http.ResponseWriter, r *http.Request)
ImportEmail allows for the importing of email. Returns a Message object
func (*Server) ImportGroup ¶
func (as *Server) ImportGroup(w http.ResponseWriter, r *http.Request)
ImportGroup imports a CSV of group members
func (*Server) ImportSite ¶
func (as *Server) ImportSite(w http.ResponseWriter, r *http.Request)
ImportSite allows for the importing of HTML from a website Without "include_resources" set, it will merely place a "base" tag so that all resources can be loaded relative to the given URL.
func (*Server) Page ¶
func (as *Server) Page(w http.ResponseWriter, r *http.Request)
Page contains functions to handle the GET'ing, DELETE'ing, and PUT'ing of a Page object
func (*Server) Pages ¶
func (as *Server) Pages(w http.ResponseWriter, r *http.Request)
Pages handles requests for the /api/pages/ endpoint
func (*Server) Reset ¶
func (as *Server) Reset(w http.ResponseWriter, r *http.Request)
Reset (/api/reset) resets the currently authenticated user's API key
func (*Server) SendTestEmail ¶
func (as *Server) SendTestEmail(w http.ResponseWriter, r *http.Request)
SendTestEmail sends a test email using the template name and Target given.
func (*Server) SendingProfile ¶
func (as *Server) SendingProfile(w http.ResponseWriter, r *http.Request)
SendingProfile contains functions to handle the GET'ing, DELETE'ing, and PUT'ing of a SMTP object
func (*Server) SendingProfiles ¶
func (as *Server) SendingProfiles(w http.ResponseWriter, r *http.Request)
SendingProfiles handles requests for the /api/smtp/ endpoint
func (*Server) Template ¶
func (as *Server) Template(w http.ResponseWriter, r *http.Request)
Template handles the functions for the /api/templates/:id endpoint
func (*Server) Templates ¶
func (as *Server) Templates(w http.ResponseWriter, r *http.Request)
Templates handles the functionality for the /api/templates endpoint
func (*Server) User ¶
func (as *Server) User(w http.ResponseWriter, r *http.Request)
User contains functions to retrieve or delete a single user. Users with the ModifySystem permission can view and modify any user. Otherwise, users may only view or delete their own account.
func (*Server) Users ¶
func (as *Server) Users(w http.ResponseWriter, r *http.Request)
Users contains functions to retrieve a list of existing users or create a new user. Users with the ModifySystem permissions can view and create users.
func (*Server) ValidateWebhook ¶
func (as *Server) ValidateWebhook(w http.ResponseWriter, r *http.Request)
ValidateWebhook makes an HTTP request to a specified remote url to ensure that it's valid.
type ServerOption ¶
type ServerOption func(*Server)
ServerOption is an option to apply to the API server.
func WithLimiter ¶
func WithLimiter(limiter *ratelimit.PostLimiter) ServerOption
func WithWorker ¶
func WithWorker(w worker.Worker) ServerOption
WithWorker is an option that sets the background worker.