httpd

package
v0.0.0-...-503ec33 Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2024 License: GPL-3.0 Imports: 34 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PING    = "PING"
	PONG    = "PONG"
	CONNECT = "CONNECT"
	CLOSE   = "CLOSE"
	ERROR   = "ERROR"

	TerminalInit    = "TERMINAL_INIT"
	TerminalData    = "TERMINAL_DATA"
	TerminalResize  = "TERMINAL_RESIZE"
	TerminalBinary  = "TERMINAL_BINARY"
	TerminalAction  = "TERMINAL_ACTION"
	TerminalSession = "TERMINAL_SESSION"

	TerminalSessionPause  = "TERMINAL_SESSION_PAUSE"
	TerminalSessionResume = "TERMINAL_SESSION_RESUME"

	TerminalShare        = "TERMINAL_SHARE"
	TerminalShareJoin    = "TERMINAL_SHARE_JOIN"
	TerminalShareLeave   = "TERMINAL_SHARE_LEAVE"
	TerminalShareUsers   = "TERMINAL_SHARE_USERS"
	TerminalGetShareUser = "TERMINAL_GET_SHARE_USER"

	TerminalShareUserRemove = "TERMINAL_SHARE_USER_REMOVE"

	TerminalSyncUserPreference = "TERMINAL_SYNC_USER_PREFERENCE"

	TerminalError = "TERMINAL_ERROR"

	MessageNotify = "MESSAGE_NOTIFY"
)
View Source
const (
	TargetTypeMonitor = "monitor"

	TargetTypeShare = "share"
)
View Source
const (
	TTYName       = "terminal"
	WebFolderName = "web_folder"
)
View Source
const MaxMessageLen = 1024

Variables

View Source
var (
	ErrAssetIdInvalid   = errors.New("asset id invalid")
	ErrDisableShare     = errors.New("disable share")
	ErrPermissionDenied = errors.New("permission denied")
)

Functions

func NewBroadcaster

func NewBroadcaster() *broadcaster

func NewElfinderFileInfo

func NewElfinderFileInfo(id, dirPath string, originFileInfo os.FileInfo) elfinder.FileDir

func ParseAcceptLanguageCode

func ParseAcceptLanguageCode(language string) string

func TrimPrefix

func TrimPrefix(path string) string

Types

type Client

type Client struct {
	WinChan   chan ssh.Window
	UserRead  io.ReadCloser
	UserWrite io.WriteCloser
	Conn      *UserWebsocket

	sync.Mutex
	// contains filtered or unexported fields
}

func (*Client) Close

func (c *Client) Close() (err error)

func (*Client) Context

func (c *Client) Context() context.Context

func (*Client) HandleRoomEvent

func (c *Client) HandleRoomEvent(event string, roomMsg *exchange.RoomMessage)

func (*Client) ID

func (c *Client) ID() string

func (*Client) LoginFrom

func (c *Client) LoginFrom() string

func (*Client) Pty

func (c *Client) Pty() ssh.Pty

func (*Client) Read

func (c *Client) Read(p []byte) (n int, err error)

func (*Client) RemoteAddr

func (c *Client) RemoteAddr() string

func (*Client) SetWinSize

func (c *Client) SetWinSize(size ssh.Window)

func (*Client) WinCh

func (c *Client) WinCh() <-chan ssh.Window

func (*Client) Write

func (c *Client) Write(p []byte) (n int, err error)

func (*Client) WriteData

func (c *Client) WriteData(p []byte)

type GetUserParams

type GetUserParams struct {
	Query string `json:"query"`
}

type Handler

type Handler interface {
	Name() string
	CheckValidation() error
	HandleMessage(*Message)
	CleanUp()
}

type Message

type Message struct {
	Id   string `json:"id"`
	Type string `json:"type"`
	Data string `json:"data"`
	Raw  []byte `json:"-"`
	Err  string `json:"err"`
}

type RemoveSharingUserParams

type RemoveSharingUserParams struct {
	SessionId string               `json:"session"`
	UserMeta  exchange.MetaMessage `json:"user_meta"`
}

type Server

type Server struct {
	Srv *http.Server
	// contains filtered or unexported fields
}

func NewServer

func NewServer(jmsService *service.JMService) *Server

func (*Server) GenerateViewMeta

func (s *Server) GenerateViewMeta(targetId string) (meta ViewPageMata)

func (*Server) HealthStatusHandler

func (s *Server) HealthStatusHandler(ctx *gin.Context)

func (*Server) ProcessElfinderWebsocket

func (s *Server) ProcessElfinderWebsocket(ctx *gin.Context)

func (*Server) ProcessTerminalWebsocket

func (s *Server) ProcessTerminalWebsocket(ctx *gin.Context)

func (*Server) SftpHostConnectorView

func (s *Server) SftpHostConnectorView(ctx *gin.Context)

func (*Server) Start

func (s *Server) Start()

func (*Server) Stop

func (s *Server) Stop()

func (*Server) UpgradeUserWsConn

func (s *Server) UpgradeUserWsConn(ctx *gin.Context) (*UserWebsocket, error)

type ShareInfo

type ShareInfo struct {
	Record model.ShareRecord
}

type ShareRequestMeta

type ShareRequestMeta struct {
	Users []string `json:"users"`
}

type ShareRequestParams

type ShareRequestParams struct {
	model.SharingSessionRequest
}

type ShareResponse

type ShareResponse struct {
	ShareId string `json:"share_id"`
	Code    string `json:"code"`
}

type StaticFSWrapper

type StaticFSWrapper struct {
	http.FileSystem
	FixedModTime time.Time
}

func (*StaticFSWrapper) Open

func (f *StaticFSWrapper) Open(name string) (http.File, error)

type StaticFileInfoWrapper

type StaticFileInfoWrapper struct {
	os.FileInfo
	// contains filtered or unexported fields
}

func (*StaticFileInfoWrapper) ModTime

func (f *StaticFileInfoWrapper) ModTime() time.Time

type StaticFileWrapper

type StaticFileWrapper struct {
	http.File
	// contains filtered or unexported fields
}

func (*StaticFileWrapper) Stat

func (f *StaticFileWrapper) Stat() (os.FileInfo, error)

type TerminalConnectData

type TerminalConnectData struct {
	Cols int    `json:"cols"`
	Rows int    `json:"rows"`
	Code string `json:"code"`
}

type UserKoKoPreferenceParam

type UserKoKoPreferenceParam struct {
	ThemeName string `json:"terminal_theme_name"`
}

type UserVolume

type UserVolume struct {
	Uuid     string
	UserSftp *srvconn.UserSftpConn
	HomeName string
	// contains filtered or unexported fields
}

func NewUserVolume

func NewUserVolume(jmsService *service.JMService, opts ...VolumeOption) *UserVolume

func (*UserVolume) Close

func (u *UserVolume) Close()

func (*UserVolume) GetFile

func (u *UserVolume) GetFile(path string) (reader io.ReadCloser, err error)

func (*UserVolume) ID

func (u *UserVolume) ID() string

func (*UserVolume) Info

func (u *UserVolume) Info(path string) (elfinder.FileDir, error)

func (*UserVolume) List

func (u *UserVolume) List(path string) []elfinder.FileDir

func (*UserVolume) MakeDir

func (u *UserVolume) MakeDir(dir, newDirname string) (elfinder.FileDir, error)

func (*UserVolume) MakeFile

func (u *UserVolume) MakeFile(dir, newFilename string) (elfinder.FileDir, error)

func (*UserVolume) MergeChunk

func (u *UserVolume) MergeChunk(cid, total int, dirPath, uploadPath, filename string) (elfinder.FileDir, error)

func (*UserVolume) Parents

func (u *UserVolume) Parents(path string, dep int) []elfinder.FileDir

func (*UserVolume) Paste

func (u *UserVolume) Paste(dir, filename, suffix string, reader io.ReadCloser) (elfinder.FileDir, error)

func (*UserVolume) Remove

func (u *UserVolume) Remove(path string) error

func (*UserVolume) Rename

func (u *UserVolume) Rename(oldNamePath, newName string) (elfinder.FileDir, error)

func (*UserVolume) RootFileDir

func (u *UserVolume) RootFileDir() elfinder.FileDir

func (*UserVolume) Search

func (u *UserVolume) Search(path, key string, mimes ...string) (res []elfinder.FileDir, err error)

func (*UserVolume) UploadChunk

func (u *UserVolume) UploadChunk(cid int, dirPath, uploadPath, filename string, rangeData elfinder.ChunkRange, reader io.Reader) error

func (*UserVolume) UploadFile

func (u *UserVolume) UploadFile(dirPath, uploadPath, filename string, reader io.Reader) (elfinder.FileDir, error)

type UserWebsocket

type UserWebsocket struct {
	Uuid string

	ConnectToken *model.ConnectToken
	// contains filtered or unexported fields
}

func (*UserWebsocket) ClientIP

func (userCon *UserWebsocket) ClientIP() string

func (*UserWebsocket) CurrentUser

func (userCon *UserWebsocket) CurrentUser() *model.User

func (*UserWebsocket) GetHandler

func (userCon *UserWebsocket) GetHandler() Handler

func (*UserWebsocket) RecordLifecycleLog

func (userCon *UserWebsocket) RecordLifecycleLog(sid string, event model.LifecycleEvent,
	logObj model.SessionLifecycleLog)

func (*UserWebsocket) Run

func (userCon *UserWebsocket) Run()

func (*UserWebsocket) SendErrMessage

func (userCon *UserWebsocket) SendErrMessage(errMsg string)

func (*UserWebsocket) SendMessage

func (userCon *UserWebsocket) SendMessage(msg *Message)

type ViewPageMata

type ViewPageMata struct {
	ID      string
	IconURL string
}

type VolumeOption

type VolumeOption func(*volumeOption)

func WithAddr

func WithAddr(addr string) VolumeOption

func WithAsset

func WithAsset(asset *model.PermAsset) VolumeOption

func WithConnectToken

func WithConnectToken(connectToken *model.ConnectToken) VolumeOption

func WithUser

func WithUser(user *model.User) VolumeOption

type WindowSize

type WindowSize struct {
	Cols int `json:"cols"`
	Rows int `json:"rows"`
}

type WsRequestParams

type WsRequestParams struct {
	TargetType string `form:"type"`
	TargetId   string `form:"target_id"`
	Token      string `form:"token"`

	AssetId string `form:"asset"`

	// k8s container
	Pod       string `form:"pod"`
	Namespace string `form:"namespace"`
	Container string `form:"container"`

	// mysql database
	DisableAutoHash string `form:"disableautohash"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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