api

package
Version: v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Aug 28, 2020 License: MIT Imports: 25 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrEmptyRole = errors.New("No role specified")

ErrEmptyRole is throws when no role is provided when creating or modifying a user.

View Source
var ErrEmptyUsername = errors.New("No username provided")

ErrEmptyUsername is thrown when a user attempts to register a username that is taken.

View Source
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.

View Source
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) ServeHTTP

func (as *Server) ServeHTTP(w http.ResponseWriter, r *http.Request)

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.

func (*Server) Webhook

func (as *Server) Webhook(w http.ResponseWriter, r *http.Request)

Webhook returns details of a single webhook specified by "id" parameter

func (*Server) Webhooks

func (as *Server) Webhooks(w http.ResponseWriter, r *http.Request)

Webhooks returns a list of webhooks, both active and disabled

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to