manager

package
v0.0.0-...-c937b9e Latest Latest
Warning

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

Go to latest
Published: Jul 17, 2015 License: MIT Imports: 28 Imported by: 32

Documentation

Index

Constants

View Source
const AgentEmail = "agent@local"

Variables

View Source
var (
	ErrNotFound = mgo.ErrNotFound // alias
)

Functions

func FromId

func FromId(id bson.ObjectId) string

func Or

func Or(q bson.M) bson.M

func TimeP

func TimeP(t time.Time) *time.Time

func ToId

func ToId(id string) bson.ObjectId

func UpdateIssues

func UpdateIssues(r *report.Report)

func UpdateMulti

func UpdateMulti(r *report.Report)

upgrade underneath multi reports with created/updated, scan, scanSession fields

Types

type AgentFltr

type AgentFltr struct {
	Name   string       `fltr:"name"`
	Type   agent.Type   `fltr:"type,in,nin"`
	Status agent.Status `fltr:"status,in,nin"`
}

type AgentManager

type AgentManager struct {
	// contains filtered or unexported fields
}

func (*AgentManager) All

func (m *AgentManager) All() ([]*agent.Agent, int, error)

func (*AgentManager) Create

func (m *AgentManager) Create(raw *agent.Agent) (*agent.Agent, error)

func (*AgentManager) FilterBy

func (m *AgentManager) FilterBy(f *AgentFltr) ([]*agent.Agent, int, error)

func (*AgentManager) FilterByQuery

func (m *AgentManager) FilterByQuery(query bson.M) ([]*agent.Agent, int, error)

func (*AgentManager) Fltr

func (m *AgentManager) Fltr() *AgentFltr

func (*AgentManager) GetById

func (m *AgentManager) GetById(id bson.ObjectId) (*agent.Agent, error)

func (*AgentManager) Init

func (s *AgentManager) Init() error

func (*AgentManager) Remove

func (m *AgentManager) Remove(obj *agent.Agent) error

func (*AgentManager) Update

func (m *AgentManager) Update(obj *agent.Agent) error

type CommentFltr

type CommentFltr struct {
	Type    comment.Type  `fltr:"type"`
	Link    bson.ObjectId `fltr:"link"`
	Updated time.Time     `fltr:"updated,gte,gt,lte,lt"`
	Created time.Time     `fltr:"created,gte,gt,lte,lt"`
}

type CommentManager

type CommentManager struct {
	// contains filtered or unexported fields
}

func (*CommentManager) Create

func (m *CommentManager) Create(raw *comment.Comment) (*comment.Comment, error)

func (*CommentManager) FilterBy

func (m *CommentManager) FilterBy(f *CommentFltr, opts ...Opts) ([]*comment.Comment, int, error)

func (*CommentManager) FilterByQuery

func (m *CommentManager) FilterByQuery(query bson.M, opts ...Opts) ([]*comment.Comment, int, error)

func (*CommentManager) Fltr

func (m *CommentManager) Fltr() *CommentFltr

func (*CommentManager) GetById

func (m *CommentManager) GetById(id bson.ObjectId) (*comment.Comment, error)

func (*CommentManager) Init

func (s *CommentManager) Init() error

func (*CommentManager) Remove

func (m *CommentManager) Remove(obj *comment.Comment) error

func (*CommentManager) Update

func (m *CommentManager) Update(obj *comment.Comment) error

type FeedItemFltr

type FeedItemFltr struct {
	Target  bson.ObjectId `fltr:"target,in"`
	Project bson.ObjectId `fltr:"project,in"`
	Type    feed.ItemType `fltr:"type,in"`
	Updated time.Time     `fltr:"updated,gte,gt,lte,lt"`
}

type FeedManager

type FeedManager struct {
	// contains filtered or unexported fields
}

func (*FeedManager) AddScan

func (m *FeedManager) AddScan(sc *scan.Scan) (*feed.FeedItem, error)

func (*FeedManager) Create

func (m *FeedManager) Create(raw *feed.FeedItem) (*feed.FeedItem, error)

func (*FeedManager) Enrich

func (m *FeedManager) Enrich(item *feed.FeedItem) error

func (*FeedManager) EnrichMulti

func (m *FeedManager) EnrichMulti(items []*feed.FeedItem) ([]*feed.FeedItem, error)

func (*FeedManager) FilterBy

func (m *FeedManager) FilterBy(f *FeedItemFltr, opts ...Opts) ([]*feed.FeedItem, int, error)

func (*FeedManager) FilterByQuery

func (m *FeedManager) FilterByQuery(query bson.M, opts ...Opts) ([]*feed.FeedItem, int, error)

func (*FeedManager) Fltr

func (m *FeedManager) Fltr() *FeedItemFltr

func (*FeedManager) GetById

func (m *FeedManager) GetById(id bson.ObjectId) (*feed.FeedItem, error)

func (*FeedManager) Init

func (s *FeedManager) Init() error

func (*FeedManager) Remove

func (m *FeedManager) Remove(obj *feed.FeedItem) error

func (*FeedManager) Update

func (m *FeedManager) Update(obj *feed.FeedItem) error

func (*FeedManager) UpdateScan

func (m *FeedManager) UpdateScan(sc *scan.Scan) error

func (*FeedManager) UpdateScanReport

func (m *FeedManager) UpdateScanReport(sc *scan.Scan, rep *report.Report) error

type FileManager

type FileManager struct {
	// contains filtered or unexported fields
}

func (*FileManager) Create

func (m *FileManager) Create(r io.Reader, metaInfo *file.Meta) (*file.Meta, error)

create file with data

func (*FileManager) GetById

func (m *FileManager) GetById(id string) (*file.File, error)

Get file by id, don't forget to close file after

func (*FileManager) Init

func (m *FileManager) Init() error

type IssueFltr

type IssueFltr struct {
	Updated    time.Time      `fltr:"updated,gte,gt,lte,lt"`
	VulnType   int            `fltr:"vulnType"`
	Created    time.Time      `fltr:"created,gte,gt,lte,lt"`
	ResolvedAt time.Time      `fltr:"resolvedAt,gte,gt,lte,lt,in"`
	Target     bson.ObjectId  `fltr:"target,in"`
	Project    bson.ObjectId  `fltr:"project"`
	Confirmed  *bool          `fltr:"confirmed"`
	Muted      *bool          `fltr:"muted"`
	Resolved   *bool          `fltr:"resolved"`
	False      *bool          `fltr:"false"`
	Severity   issue.Severity `fltr:"severity,in"`
}

type IssueManager

type IssueManager struct {
	// contains filtered or unexported fields
}

func (*IssueManager) Create

func (m *IssueManager) Create(raw *issue.TargetIssue) (*issue.TargetIssue, error)

func (*IssueManager) FilterBy

func (m *IssueManager) FilterBy(f *IssueFltr, opts ...Opts) ([]*issue.TargetIssue, int, error)

func (*IssueManager) FilterByQuery

func (m *IssueManager) FilterByQuery(query bson.M, opts ...Opts) ([]*issue.TargetIssue, int, error)

func (*IssueManager) Fltr

func (m *IssueManager) Fltr() *IssueFltr

func (*IssueManager) GetById

func (m *IssueManager) GetById(id bson.ObjectId) (*issue.TargetIssue, error)

func (*IssueManager) GetByUniqId

func (m *IssueManager) GetByUniqId(target bson.ObjectId, uniqId string) (*issue.TargetIssue, error)

func (*IssueManager) Init

func (s *IssueManager) Init() error

func (*IssueManager) Remove

func (m *IssueManager) Remove(obj *issue.TargetIssue) error

func (*IssueManager) RemoveAll

func (m *IssueManager) RemoveAll(query bson.M) (int, error)

func (*IssueManager) Update

func (m *IssueManager) Update(obj *issue.TargetIssue) error

type Manager

type Manager struct {
	Cfg ManagerConfig

	Users    *UserManager
	Plugins  *PluginManager
	Projects *ProjectManager
	Targets  *TargetManager
	Plans    *PlanManager
	Scans    *ScanManager
	Agents   *AgentManager
	Reports  *ReportManager
	Feed     *FeedManager
	Files    *FileManager
	Comments *CommentManager
	Issues   *IssueManager
	Techs    *TechManager
	Tokens   *TokenManager

	Permission *PermissionManager
	Vulndb     *VulndbManager
	// contains filtered or unexported fields
}

func New

func New(db *mgo.Database, cfg ...ManagerConfig) *Manager

Manager contains all available managers for different models and hidden all db related operations

func (*Manager) All

func (m *Manager) All(col *mgo.Collection, results interface{}) (int, error)

func (*Manager) Clone

func (m *Manager) Clone() *Manager

Clone works just like Copy, but also reuses the same socket as the original session, in case it had already reserved one due to its consistency guarantees. This behavior ensures that writes performed in the old session are necessarily observed when using the new session, as long as it was a strong or monotonic session. That said, it also means that long operations may cause other goroutines using the original session to wait.

func (*Manager) Close

func (m *Manager) Close()

Close terminates the session. It's a runtime error to use a session after it has been closed.

func (*Manager) Copy

func (m *Manager) Copy() *Manager

Get copy of manager with copied session, don't forget to call Close after

func (*Manager) FilterAndSortBy

func (m *Manager) FilterAndSortBy(col *mgo.Collection, query *bson.M, sort []string, results interface{}) (int, error)

func (*Manager) FilterBy

func (m *Manager) FilterBy(col *mgo.Collection, query *bson.M, results interface{}, opts ...Opts) (int, error)

func (*Manager) FromId

func (m *Manager) FromId(id bson.ObjectId) string

convert ObjectId to string

func (*Manager) GetBy

func (m *Manager) GetBy(col *mgo.Collection, query *bson.M, result interface{}, opts ...Opts) error

func (*Manager) GetById

func (m *Manager) GetById(col *mgo.Collection, id bson.ObjectId, result interface{}) error

func (*Manager) Init

func (m *Manager) Init() error

Initialize all managers. Ensure indexes.

func (*Manager) IsDup

func (m *Manager) IsDup(err error) bool

IsDup returns whether err informs of a duplicate key error because a primary key index or a secondary unique index already has an entry with the given value.

func (*Manager) IsId

func (m *Manager) IsId(id string) bool

IsId returns whether id is in a valid form (bson ObjectId hex format)

func (*Manager) IsNotFound

func (m *Manager) IsNotFound(err error) bool

Return true if object is not found

func (*Manager) NewId

func (m *Manager) NewId() bson.ObjectId

func (*Manager) Opts

func (m *Manager) Opts(skip, limit int, sort []string) Opts

func (*Manager) ToId

func (m *Manager) ToId(id string) bson.ObjectId

type ManagerConfig

type ManagerConfig struct {
	TextSearchEnable bool
}

type ManagerInterface

type ManagerInterface interface {
	Init() error
}

type Opts

type Opts struct {
	Limit int
	Skip  int
	Sort  []string
}

query options

func GetOpts

func GetOpts(skip, limit int, sort []string) Opts

type PermissionManager

type PermissionManager struct {
	// contains filtered or unexported fields
}

func (*PermissionManager) Copy

func (m *PermissionManager) Copy(new *PermissionManager)

func (*PermissionManager) HasProjectAccess

func (m *PermissionManager) HasProjectAccess(p *project.Project, u *user.User) bool

func (*PermissionManager) Init

func (m *PermissionManager) Init() error

func (*PermissionManager) IsAdmin

func (m *PermissionManager) IsAdmin(u *user.User) bool

func (*PermissionManager) IsAdminEmail

func (m *PermissionManager) IsAdminEmail(email string) bool

func (*PermissionManager) SetAdmins

func (m *PermissionManager) SetAdmins(emails []string)

type PlanFltr

type PlanFltr struct {
	Name       string            `fltr:"name"`
	TargetType target.TargetType `fltr:"targetType,in"`
}

type PlanManager

type PlanManager struct {
	// contains filtered or unexported fields
}

func (*PlanManager) All

func (m *PlanManager) All() ([]*plan.Plan, int, error)

func (*PlanManager) Create

func (m *PlanManager) Create(raw *plan.Plan) (*plan.Plan, error)

func (*PlanManager) FilterBy

func (m *PlanManager) FilterBy(f *PlanFltr) ([]*plan.Plan, int, error)

func (*PlanManager) FilterByQuery

func (m *PlanManager) FilterByQuery(query bson.M) ([]*plan.Plan, int, error)

func (*PlanManager) Fltr

func (m *PlanManager) Fltr() *PlanFltr

func (*PlanManager) GetById

func (m *PlanManager) GetById(id bson.ObjectId) (*plan.Plan, error)

func (*PlanManager) Init

func (s *PlanManager) Init() error

func (*PlanManager) Remove

func (m *PlanManager) Remove(obj *plan.Plan) error

func (*PlanManager) Update

func (m *PlanManager) Update(obj *plan.Plan) error

type PluginFltr

type PluginFltr struct {
	Name       string            `fltr:"name,in"`
	Version    string            `fltr:"version,in,nin,gte,gt,lte,lte"`
	Type       plugin.PluginType `fltr:"type,in,nin"`
	TargetType target.TargetType `fltr:"targetType,in"`
}

type PluginManager

type PluginManager struct {
	// contains filtered or unexported fields
}

func (*PluginManager) All

func (m *PluginManager) All() ([]*plugin.Plugin, int, error)

func (*PluginManager) Create

func (m *PluginManager) Create(raw *plugin.Plugin) (*plugin.Plugin, error)

func (*PluginManager) FilterBy

func (m *PluginManager) FilterBy(f *PluginFltr) ([]*plugin.Plugin, int, error)

func (*PluginManager) FilterByQuery

func (m *PluginManager) FilterByQuery(query bson.M) ([]*plugin.Plugin, int, error)

func (*PluginManager) Fltr

func (m *PluginManager) Fltr() *PluginFltr

func (*PluginManager) GetById

func (m *PluginManager) GetById(id string) (*plugin.Plugin, error)

func (*PluginManager) GetByName

func (m *PluginManager) GetByName(name string) (*plugin.Plugin, error)

plugin name must be in format "name:version"

func (*PluginManager) GetByNameVersion

func (m *PluginManager) GetByNameVersion(name, version string) (*plugin.Plugin, error)

func (*PluginManager) Init

func (s *PluginManager) Init() error

func (*PluginManager) Update

func (m *PluginManager) Update(obj *plugin.Plugin) error

type ProjectFltr

type ProjectFltr struct {
	Owner  bson.ObjectId `fltr:"owner"`
	Member bson.ObjectId `fltr:"member" bson:"members.user"`
}

type ProjectManager

type ProjectManager struct {
	// contains filtered or unexported fields
}

func (*ProjectManager) All

func (m *ProjectManager) All() ([]*project.Project, int, error)

func (*ProjectManager) Create

func (m *ProjectManager) Create(raw *project.Project) (*project.Project, error)

func (*ProjectManager) CreateDefault

func (m *ProjectManager) CreateDefault(owner bson.ObjectId) (*project.Project, error)

func (*ProjectManager) FilterBy

func (m *ProjectManager) FilterBy(f *ProjectFltr) ([]*project.Project, int, error)

func (*ProjectManager) FilterByQuery

func (m *ProjectManager) FilterByQuery(query bson.M, opts ...Opts) ([]*project.Project, int, error)

func (*ProjectManager) GetById

func (m *ProjectManager) GetById(id bson.ObjectId) (*project.Project, error)

func (*ProjectManager) Init

func (m *ProjectManager) Init() error

func (*ProjectManager) Update

func (m *ProjectManager) Update(obj *project.Project) error

type ReportFltr

type ReportFltr struct {
	Type report.ReportType `fltr:"type,in,nin"`
}

type ReportManager

type ReportManager struct {
	// contains filtered or unexported fields
}

func (*ReportManager) All

func (m *ReportManager) All() ([]*report.Report, int, error)

func (*ReportManager) Create

func (m *ReportManager) Create(raw *report.Report) (*report.Report, error)

func (*ReportManager) FilterBy

func (m *ReportManager) FilterBy(f *ReportFltr) ([]*report.Report, int, error)

func (*ReportManager) FilterByQuery

func (m *ReportManager) FilterByQuery(query bson.M) ([]*report.Report, int, error)

func (*ReportManager) FilterBySessions

func (m *ReportManager) FilterBySessions(sessions []*scan.Session) ([]*report.Report, int, error)

func (*ReportManager) Fltr

func (m *ReportManager) Fltr() *ReportFltr

func (*ReportManager) GetById

func (m *ReportManager) GetById(id bson.ObjectId) (*report.Report, error)

func (*ReportManager) GetBySession

func (m *ReportManager) GetBySession(sessId bson.ObjectId) (*report.Report, error)

func (*ReportManager) Init

func (s *ReportManager) Init() error

func (*ReportManager) Remove

func (m *ReportManager) Remove(obj *report.Report) error

func (*ReportManager) Update

func (m *ReportManager) Update(obj *report.Report) error

type ScanFltr

type ScanFltr struct {
	Status  scan.ScanStatus `fltr:"status,in,nin"`
	Target  bson.ObjectId   `fltr:"target,in"`
	Project bson.ObjectId   `fltr:"project"`
	Plan    bson.ObjectId   `fltr:"plan,in"`
}

type ScanManager

type ScanManager struct {
	// contains filtered or unexported fields
}

func (*ScanManager) All

func (m *ScanManager) All() ([]*scan.Scan, int, error)

func (*ScanManager) Create

func (m *ScanManager) Create(raw *scan.Scan) (*scan.Scan, error)

func (*ScanManager) FilterBy

func (m *ScanManager) FilterBy(f *ScanFltr) ([]*scan.Scan, int, error)

func (*ScanManager) FilterByQuery

func (m *ScanManager) FilterByQuery(query bson.M) ([]*scan.Scan, int, error)

func (*ScanManager) Fltr

func (m *ScanManager) Fltr() *ScanFltr

func (*ScanManager) GetById

func (m *ScanManager) GetById(id bson.ObjectId) (*scan.Scan, error)

func (*ScanManager) GetByMulti

func (m *ScanManager) GetByMulti(ids []bson.ObjectId) (map[bson.ObjectId]*scan.Scan, error)

func (*ScanManager) Init

func (s *ScanManager) Init() error

func (*ScanManager) Remove

func (m *ScanManager) Remove(obj *scan.Scan) error

func (*ScanManager) Update

func (m *ScanManager) Update(obj *scan.Scan) error

func (*ScanManager) UpdateSession

func (m *ScanManager) UpdateSession(sc *scan.Scan, obj *scan.Session) error

type TargetFltr

type TargetFltr struct {
	Project bson.ObjectId     `fltr:"project,in"`
	Type    target.TargetType `fltr:"type,in"`
	Updated time.Time         `fltr:"updated,gte,lte"`
	Created time.Time         `fltr:"created,gte,lte"`
}

type TargetManager

type TargetManager struct {
	// contains filtered or unexported fields
}

func (*TargetManager) All

func (m *TargetManager) All() ([]*target.Target, int, error)

func (*TargetManager) Create

func (m *TargetManager) Create(raw *target.Target) (*target.Target, error)

func (*TargetManager) FilterBy

func (m *TargetManager) FilterBy(f *FeedItemFltr) ([]*target.Target, int, error)

func (*TargetManager) FilterByQuery

func (m *TargetManager) FilterByQuery(query bson.M, opts ...Opts) ([]*target.Target, int, error)

func (*TargetManager) GetById

func (m *TargetManager) GetById(id bson.ObjectId) (*target.Target, error)

func (*TargetManager) GetSummaryIssues

func (m *TargetManager) GetSummaryIssues(targetId bson.ObjectId) (map[issue.Severity]int, error)

func (*TargetManager) Init

func (m *TargetManager) Init() error

func (*TargetManager) Remove

func (m *TargetManager) Remove(obj *target.Target) error

func (*TargetManager) Update

func (m *TargetManager) Update(obj *target.Target) error

func (*TargetManager) UpdateSummary

func (m *TargetManager) UpdateSummary(obj *target.Target) error

func (*TargetManager) UpdateSummaryById

func (m *TargetManager) UpdateSummaryById(id bson.ObjectId) error

type TechFltr

type TechFltr struct {
	Updated time.Time       `fltr:"updated,gte,gt,lte,lt"`
	Created time.Time       `fltr:"created,gte,gt,lte,lt"`
	Target  bson.ObjectId   `fltr:"target,in"`
	Project bson.ObjectId   `fltr:"project"`
	Status  tech.StatusType `fltr:"status,in,nin"`
}

type TechManager

type TechManager struct {
	// contains filtered or unexported fields
}

func (*TechManager) Create

func (m *TechManager) Create(raw *tech.TargetTech) (*tech.TargetTech, error)

func (*TechManager) FilterBy

func (m *TechManager) FilterBy(f *TechFltr, opts ...Opts) ([]*tech.TargetTech, int, error)

func (*TechManager) FilterByQuery

func (m *TechManager) FilterByQuery(query bson.M, opts ...Opts) ([]*tech.TargetTech, int, error)

func (*TechManager) Fltr

func (m *TechManager) Fltr() *TechFltr

func (*TechManager) GetById

func (m *TechManager) GetById(id bson.ObjectId) (*tech.TargetTech, error)

func (*TechManager) GetByUniqId

func (m *TechManager) GetByUniqId(target bson.ObjectId, uniqId string) (*tech.TargetTech, error)

func (*TechManager) Init

func (s *TechManager) Init() error

func (*TechManager) Remove

func (m *TechManager) Remove(obj *tech.TargetTech) error

func (*TechManager) RemoveAll

func (m *TechManager) RemoveAll(query bson.M) (int, error)

func (*TechManager) Update

func (m *TechManager) Update(obj *tech.TargetTech) error

type TokenFltr

type TokenFltr struct {
	Updated time.Time     `fltr:"updated,gte,gt,lte,lt"`
	Created time.Time     `fltr:"created,gte,gt,lte,lt"`
	User    bson.ObjectId `fltr:"user"`
	Removed bool          `fltr:"removed"`
}

type TokenManager

type TokenManager struct {
	// contains filtered or unexported fields
}

func (*TokenManager) Create

func (m *TokenManager) Create(raw *token.Token) (*token.Token, error)

func (*TokenManager) FilterBy

func (m *TokenManager) FilterBy(f *TokenFltr, opts ...Opts) ([]*token.Token, int, error)

func (*TokenManager) FilterByQuery

func (m *TokenManager) FilterByQuery(query bson.M, opts ...Opts) ([]*token.Token, int, error)

func (*TokenManager) Fltr

func (m *TokenManager) Fltr() *TokenFltr

func (*TokenManager) GetByHash

func (m *TokenManager) GetByHash(hash string) (*token.Token, error)

func (*TokenManager) GetById

func (m *TokenManager) GetById(id bson.ObjectId) (*token.Token, error)

func (*TokenManager) GetOrCreate

func (m *TokenManager) GetOrCreate(userId bson.ObjectId) (*token.Token, error)

func (*TokenManager) Init

func (s *TokenManager) Init() error

func (*TokenManager) Remove

func (m *TokenManager) Remove(obj *token.Token) error

func (*TokenManager) RemoveAll

func (m *TokenManager) RemoveAll(query bson.M) (int, error)

func (*TokenManager) Update

func (m *TokenManager) Update(obj *token.Token) error

type UserFltr

type UserFltr struct {
	Id      bson.ObjectId `fltr:"id,in" bson:"_id"`
	Email   string        `fltr:"email"`
	Created time.Time     `fltr:"created,gte,lte"`
}

type UserManager

type UserManager struct {
	// contains filtered or unexported fields
}

func (*UserManager) All

func (m *UserManager) All() ([]*user.User, int, error)

func (*UserManager) Create

func (m *UserManager) Create(raw *user.User) (*user.User, error)

func (*UserManager) FilterBy

func (m *UserManager) FilterBy(f *UserFltr, opts ...Opts) ([]*user.User, int, error)

func (*UserManager) FilterByQuery

func (m *UserManager) FilterByQuery(query bson.M, opts ...Opts) ([]*user.User, int, error)

func (*UserManager) GetByEmail

func (m *UserManager) GetByEmail(email string) (*user.User, error)

func (*UserManager) GetById

func (m *UserManager) GetById(id bson.ObjectId) (*user.User, error)

func (*UserManager) Init

func (m *UserManager) Init() error

func (*UserManager) Update

func (m *UserManager) Update(obj *user.User) error

type VulndbManager

type VulndbManager struct {
	// contains filtered or unexported fields
}

func (*VulndbManager) Copy

func (m *VulndbManager) Copy(new *VulndbManager)

func (*VulndbManager) GetById

func (m *VulndbManager) GetById(id int) *vuln.Vuln

func (*VulndbManager) GetVulns

func (m *VulndbManager) GetVulns() []*vuln.Vuln

func (*VulndbManager) Init

func (m *VulndbManager) Init() error

Jump to

Keyboard shortcuts

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