Documentation ¶
Index ¶
- Variables
- type ChangeSetting
- type ChangeUserSetting
- type Client
- type Clients
- type CreateServerResponse
- type CreatedClient
- type Deployment
- type GetServerResponse
- type MultiplePermissions
- type Node
- type NodeView
- type NodesView
- type PermissionView
- type Permissions
- type Server
- type ServerCreation
- type ServerSearchResponse
- type ServerUserView
- type ServerView
- type SettingResponse
- type Template
- type Templates
- type User
- type UserSearch
- type UserSearchResponse
- type UserSetting
- type UserSettingView
- type UserSettings
- type UserSettingsView
- type UserView
- type Users
Constants ¶
This section is empty.
Variables ¶
Functions ¶
This section is empty.
Types ¶
type ChangeSetting ¶ added in v2.3.0
type ChangeSetting struct {
Value interface{} `json:"value"`
}
type ChangeUserSetting ¶ added in v2.3.0
type ChangeUserSetting struct {
Value string `json:"value"`
}
type Client ¶
type Client struct { ID uint `gorm:"PRIMARY_KEY,AUTO_INCREMEMT" json:"-"` ClientId string `gorm:"NOT NULL" json:"client_id"` HashedClientSecret string `gorm:"column:client_secret;NOT NULL" json:"-"` UserId uint `gorm:"NOT NULL" json:"-"` User *User `json:"-"` ServerId sql.NullString `gorm:"" json:"-"` Server *Server `json:"-"` Scopes []pufferpanel.Scope `gorm:"-" json:"-"` RawScopes string `gorm:"column:scopes;NOT NULL;size:4000" json:"-"` Name string `gorm:"column:name;NOT NULL;size:100;default\"\"" json:"name"` Description string `gorm:"column:description;NOT NULL;size:4000;default:\"\"" json:"description"` }
func (*Client) SetClientSecret ¶
func (*Client) ValidateSecret ¶
type CreateServerResponse ¶
type CreateServerResponse struct {
Id string `json:"id"`
}
type CreatedClient ¶ added in v2.4.0
type Deployment ¶
type GetServerResponse ¶
type GetServerResponse struct { Server *ServerView `json:"server"` Perms *PermissionView `json:"permissions"` }
type MultiplePermissions ¶
type MultiplePermissions []*Permissions
type Node ¶
type Node struct { ID uint `json:"-"` Name string `gorm:"size:100;UNIQUE;NOT NULL" json:"-" validate:"required,printascii"` PublicHost string `gorm:"size:100;NOT NULL" json:"-"` PrivateHost string `gorm:"size:100;NOT NULL" json:"-"` PublicPort uint16 `gorm:"DEFAULT:8080;NOT NULL" json:"-" validate:"required,min=1,max=65535,nefield=SFTPPort"` PrivatePort uint16 `gorm:"DEFAULT:8080;NOT NULL" json:"-" validate:"required,min=1,max=65535,nefield=SFTPPort"` SFTPPort uint16 `gorm:"DEFAULT:5657;NOT NULL" json:"-" validate:"required,min=1,max=65535,nefield=PublicPort,nefield=PrivatePort"` Secret string `gorm:"size=36;NOT NULL" json:"-" validate:"required"` CreatedAt time.Time `json:"-"` UpdatedAt time.Time `json:"-"` }
type NodeView ¶
type NodeView struct { Id uint `json:"id"` Name string `json:"name,omitempty"` PublicHost string `json:"publicHost,omitempty"` PrivateHost string `json:"privateHost,omitempty"` PublicPort uint16 `json:"publicPort,omitempty"` PrivatePort uint16 `json:"privatePort,omitempty"` SFTPPort uint16 `json:"sftpPort,omitempty"` Local bool `json:"isLocal"` }
func (*NodeView) CopyToModel ¶
type PermissionView ¶
type PermissionView struct { Username string `json:"username,omitempty"` Email string `json:"email,omitempty"` ServerIdentifier string `json:"serverIdentifier,omitempty"` EditServerData bool `json:"editServerData,omitempty"` EditServerUsers bool `json:"editServerUsers,omitempty"` InstallServer bool `json:"installServer,omitempty"` UpdateServer bool `json:"-"` //this is unused currently ViewServerConsole bool `json:"viewServerConsole,omitempty"` SendServerConsole bool `json:"sendServerConsole,omitempty"` StopServer bool `json:"stopServer,omitempty"` StartServer bool `json:"startServer,omitempty"` ViewServerStats bool `json:"viewServerStats,omitempty"` ViewServerFiles bool `json:"viewServerFiles,omitempty"` SFTPServer bool `json:"sftpServer,omitempty"` PutServerFiles bool `json:"putServerFiles,omitempty"` Admin bool `json:"admin,omitempty"` ViewServer bool `json:"viewServers,omitempty"` CreateServer bool `json:"createServers,omitempty"` ViewNodes bool `json:"viewNodes,omitempty"` EditNodes bool `json:"editNodes,omitempty"` DeployNodes bool `json:"deployNodes,omitempty"` ViewTemplates bool `json:"viewTemplates,omitempty"` EditTemplates bool `json:"editTemplates,omitempty"` EditUsers bool `json:"editUsers,omitempty"` ViewUsers bool `json:"viewUsers,omitempty"` EditServerAdmin bool `json:"editServerAdmin,omitempty"` DeleteServer bool `json:"deleteServers,omitempty"` PanelSettings bool `json:"panelSettings,omitempty"` }
func FromPermission ¶
func FromPermission(p *Permissions) *PermissionView
func (*PermissionView) CopyTo ¶
func (p *PermissionView) CopyTo(model *Permissions, copyAdminFlags bool)
Copies perms from the view to the model This will only copy what it knows about the server
type Permissions ¶
type Permissions struct { ID uint `gorm:"primaryKey,autoIncrement" json:"-"` //owners of this permission set UserId *uint `json:"-"` User User `gorm:"ASSOCIATION_SAVE_REFERENCE:false" json:"-" validate:"-"` ClientId *uint `json:"-"` Client Client `gorm:"ASSOCIATION_SAVE_REFERENCE:false" json:"-" validate:"-"` //if this set is for a server, what server ServerIdentifier *string `json:"-"` Server Server `gorm:"ASSOCIATION_SAVE_REFERENCE:false" json:"-" validate:"-"` //and here are all the perms we support Admin bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` ViewServer bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` CreateServer bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` ViewNodes bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` EditNodes bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` DeployNodes bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` ViewTemplates bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` EditTemplates bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` EditUsers bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` ViewUsers bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` EditServerAdmin bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` DeleteServer bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` PanelSettings bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` //these only will exist if tied to a server, and for a user EditServerData bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` EditServerUsers bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` InstallServer bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` UpdateServer bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` //this is unused currently ViewServerConsole bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` SendServerConsole bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` StopServer bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` StartServer bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` ViewServerStats bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` ViewServerFiles bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` SFTPServer bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` PutServerFiles bool `gorm:"NOT NULL;DEFAULT:0" json:"-" oneOf:""` }
func (*Permissions) BeforeSave ¶
func (p *Permissions) BeforeSave(*gorm.DB) error
func (*Permissions) SetDefaults ¶
func (p *Permissions) SetDefaults()
func (*Permissions) ShouldDelete ¶
func (p *Permissions) ShouldDelete() bool
func (*Permissions) ToScopes ¶
func (p *Permissions) ToScopes() []pufferpanel.Scope
type Server ¶
type Server struct { Name string `gorm:"size:40;NOT NULL" json:"-" validate:"required,printascii"` Identifier string `gorm:"UNIQUE;NOT NULL;primaryKey;size:8" json:"-" validate:"required,printascii"` RawNodeID *uint `gorm:"column:node_id" json:"-"` NodeID uint `gorm:"-" json:"-" validate:"-"` Node Node `gorm:"ASSOCIATION_SAVE_REFERENCE:false;foreignKey:RawNodeID" json:"-" validate:"-"` IP string `gorm:"" json:"-" validate:"omitempty,ip|fqdn"` Port uint16 `gorm:"" json:"-" validate:"omitempty"` Type string `gorm:"NOT NULL;default='generic'" json:"-" validate:"required,printascii"` CreatedAt time.Time `json:"-"` UpdatedAt time.Time `json:"-"` }
type ServerCreation ¶
type ServerSearchResponse ¶
type ServerSearchResponse struct { Servers []*ServerView `json:"servers"` *response.Metadata }
type ServerUserView ¶
type ServerView ¶
type ServerView struct { Identifier string `json:"id,omitempty"` Name string `json:"name,omitempty"` NodeId uint `json:"nodeId,omitempty"` Node *NodeView `json:"node,omitempty"` Data interface{} `json:"data,omitempty"` Users []ServerUserView `json:"users,omitempty"` IP string `json:"ip,omitempty"` Port uint16 `json:"port,omitempty"` Type string `json:"type"` }
func FromServer ¶
func FromServer(server *Server) *ServerView
func FromServers ¶
func FromServers(servers []*Server) []*ServerView
func RemoveServerPrivateInfo ¶
func RemoveServerPrivateInfo(server *ServerView) *ServerView
func RemoveServerPrivateInfoFromAll ¶
func RemoveServerPrivateInfoFromAll(servers []*ServerView) []*ServerView
func (*ServerView) Valid ¶
func (s *ServerView) Valid(allowEmpty bool) error
type SettingResponse ¶ added in v2.3.0
type SettingResponse struct {
Value interface{} `json:"value"`
}
type Template ¶
type User ¶
type User struct { ID uint `json:"-"` Username string `gorm:"UNIQUE;NOT NULL;size:100" json:"-" validate:"required,printascii,max=100,min=5"` Email string `gorm:"UNIQUE;NOT NULL;size:255" json:"-" validate:"required,email,max=255"` HashedPassword string `gorm:"column:password;NOT NULL;size:200" json:"-" validate:"required,max=200"` OtpSecret string `gorm:"size:32" json:"-"` OtpActive bool `gorm:"NOT NULL;DEFAULT:0" json"-"` CreatedAt time.Time `json:"-"` UpdatedAt time.Time `json:"-"` }
func (*User) SetPassword ¶
type UserSearch ¶
type UserSearchResponse ¶
type UserSetting ¶ added in v2.3.0
type UserSettingView ¶ added in v2.3.0
func FromUserSetting ¶ added in v2.3.0
func FromUserSetting(setting *UserSetting) *UserSettingView
type UserSettings ¶ added in v2.3.0
type UserSettings []*UserSetting
type UserSettingsView ¶ added in v2.3.0
type UserSettingsView []*UserSettingView
func FromUserSettings ¶ added in v2.3.0
func FromUserSettings(settings *UserSettings) UserSettingsView
type UserView ¶
type UserView struct { Id uint `json:"id,omitempty"` Username string `json:"username,omitempty"` Email string `json:"email,omitempty"` //ONLY SHOW WHEN COPYING Password string `json:"password,omitempty"` NewPassword string `json:"newPassword,omitempty"` }
func (*UserView) CopyToModel ¶
func (*UserView) EmailValid ¶ added in v2.1.3
func (*UserView) UserNameValid ¶ added in v2.1.3
Click to show internal directories.
Click to hide internal directories.