models

package
v0.1.4 Latest Latest
Warning

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

Go to latest
Published: Dec 24, 2024 License: GPL-3.0 Imports: 11 Imported by: 8

Documentation

Index

Constants

View Source
const (
	ROLE_ADMIN  = "admin"
	ROLE_NORMAL = "normal"
)
View Source
const (
	STATUS_UNKNOWN = iota
	STATUS_NORMAL
	STATUS_BANED
)

Variables

This section is empty.

Functions

func MustInitDBManager

func MustInitDBManager(dbs map[string]*gorm.DB, defaultDBType string)

func NewDBManager

func NewDBManager(dbs map[string]*gorm.DB, defaultDBType string) *dbManagerImpl

Types

type Cert

type Cert struct {
	gorm.Model
	Name     string `gorm:"uniqueIndex"`
	CertFile []byte
	KeyFile  []byte
	CaFile   []byte
}

func (*Cert) TableName

func (c *Cert) TableName() string

type Client

type Client struct {
	*ClientEntity
}

func BuildClientConfigFromProxyConfig added in v0.1.0

func BuildClientConfigFromProxyConfig(client *Client, proxyCfgs []*ProxyConfig) (*Client, error)

func (*Client) TableName

func (*Client) TableName() string

type ClientEntity

type ClientEntity struct {
	ClientID       string `json:"client_id" gorm:"uniqueIndex;not null;primaryKey"`
	ServerID       string `json:"server_id"`
	TenantID       int    `json:"tenant_id" gorm:"not null"`
	UserID         int    `json:"user_id" gorm:"not null"`
	ConfigContent  []byte `json:"config_content"`
	ConnectSecret  string `json:"connect_secret" gorm:"not null"`
	Stopped        bool   `json:"stopped"`
	Comment        string `json:"comment"`
	IsShadow       bool   `json:"is_shadow" gorm:"index"`
	OriginClientID string `json:"origin_client_id" gorm:"index"`
	CreatedAt      time.Time
	UpdatedAt      time.Time
	DeletedAt      gorm.DeletedAt `gorm:"index"`
}

func (*ClientEntity) GetConfigContent

func (c *ClientEntity) GetConfigContent() (*v1.ClientConfig, error)

func (*ClientEntity) MarshalJSONConfig added in v0.1.0

func (c *ClientEntity) MarshalJSONConfig() ([]byte, error)

func (*ClientEntity) SetConfigContent

func (c *ClientEntity) SetConfigContent(cfg v1.ClientConfig) error

type DBManager

type DBManager interface {
	GetDB(dbType string) *gorm.DB
	GetDefaultDB() *gorm.DB
	SetDB(dbType string, db *gorm.DB)
	RemoveDB(dbType string)
	SetDebug(bool)
	Init()
}

func GetDBManager

func GetDBManager() DBManager

type HistoryProxyStats added in v0.0.31

type HistoryProxyStats struct {
	gorm.Model
	ProxyID        int    `json:"proxy_id" gorm:"index"`
	ServerID       string `json:"server_id" gorm:"index"`
	ClientID       string `json:"client_id" gorm:"index"`
	OriginClientID string `json:"origin_client_id" gorm:"index"`
	Name           string `json:"name"`
	Type           string `json:"type"`
	UserID         int    `json:"user_id" gorm:"index"`
	TenantID       int    `json:"tenant_id" gorm:"index"`
	TrafficIn      int64  `json:"traffic_in"`
	TrafficOut     int64  `json:"traffic_out"`
}

HistoryProxyStats 历史流量统计,不保证精准,只是为了展示。精准请使用 proxies 表中的 history_traffic_in/history_traffic_out 后续看看是否要改成时序类数据 https://github.com/nakabonne/tstorage

func (*HistoryProxyStats) TableName added in v0.0.31

func (*HistoryProxyStats) TableName() string

type ProxyConfig added in v0.1.0

type ProxyConfig struct {
	*gorm.Model
	*ProxyConfigEntity
}

func (*ProxyConfig) TableName added in v0.1.0

func (*ProxyConfig) TableName() string

type ProxyConfigEntity added in v0.1.0

type ProxyConfigEntity struct {
	ServerID       string `json:"server_id" gorm:"index"`
	ClientID       string `json:"client_id" gorm:"index"`
	Name           string `json:"name" gorm:"index"`
	Type           string `json:"type" gorm:"index"`
	UserID         int    `json:"user_id" gorm:"index"`
	TenantID       int    `json:"tenant_id" gorm:"index"`
	OriginClientID string `json:"origin_client_id" gorm:"index"`
	Content        []byte `json:"content"`
}

func ParseProxyConfigFromClient added in v0.1.0

func ParseProxyConfigFromClient(client *Client) ([]*ProxyConfigEntity, error)

func (*ProxyConfigEntity) FillClientConfig added in v0.1.0

func (p *ProxyConfigEntity) FillClientConfig(cli *ClientEntity) error

func (*ProxyConfigEntity) FillTypedProxyConfig added in v0.1.0

func (p *ProxyConfigEntity) FillTypedProxyConfig(cfg v1.TypedProxyConfig) error

type ProxyStats added in v0.1.0

type ProxyStats struct {
	*ProxyStatsEntity
}

func (*ProxyStats) TableName added in v0.1.0

func (*ProxyStats) TableName() string

type ProxyStatsEntity added in v0.1.0

type ProxyStatsEntity struct {
	ProxyID           int    `json:"proxy_id" gorm:"primary_key;auto_increment"`
	ServerID          string `json:"server_id" gorm:"index"`
	ClientID          string `json:"client_id" gorm:"index"`
	OriginClientID    string `json:"origin_client_id" gorm:"index"`
	Name              string `json:"name"`
	Type              string `json:"type"`
	UserID            int    `json:"user_id" gorm:"index"`
	TenantID          int    `json:"tenant_id" gorm:"index"`
	TodayTrafficIn    int64  `json:"today_traffic_in"`
	TodayTrafficOut   int64  `json:"today_traffic_out"`
	HistoryTrafficIn  int64  `json:"history_traffic_in"`
	HistoryTrafficOut int64  `json:"history_traffic_out"`
	CreatedAt         time.Time
	UpdatedAt         time.Time
	DeletedAt         gorm.DeletedAt `gorm:"index"`
}

type Server

type Server struct {
	*ServerEntity
}

func (*Server) TableName

func (*Server) TableName() string

type ServerEntity

type ServerEntity struct {
	ServerID      string `json:"client_id" gorm:"uniqueIndex;not null;primaryKey"`
	TenantID      int    `json:"tenant_id" gorm:"not null"`
	UserID        int    `json:"user_id" gorm:"not null"`
	ServerIP      string `json:"server_ip"`
	ConfigContent []byte `json:"config_content"`
	ConnectSecret string `json:"connect_secret" gorm:"not null"`
	Comment       string `json:"comment"`
	CreatedAt     time.Time
	UpdatedAt     time.Time
	DeletedAt     gorm.DeletedAt `gorm:"index"`
}

func (*ServerEntity) ConfigEqual added in v0.0.41

func (s *ServerEntity) ConfigEqual(cfg *v1.ServerConfig) bool

func (*ServerEntity) GetConfigContent

func (s *ServerEntity) GetConfigContent() (*v1.ServerConfig, error)

func (*ServerEntity) SetConfigContent

func (s *ServerEntity) SetConfigContent(cfg *v1.ServerConfig) error

type User

type User struct {
	*UserEntity
}

func (*User) TableName

func (u *User) TableName() string

type UserEntity

type UserEntity struct {
	UserID    int    `json:"user_id" gorm:"primaryKey"`
	UserName  string `json:"user_name" gorm:"uniqueIndex;not null"`
	Password  string `json:"password"`
	Email     string `json:"email" gorm:"uniqueIndex;not null"`
	Status    int    `json:"status"`
	Role      string `json:"role"`
	TenantID  int    `json:"tenant_id"`
	Token     string `json:"token"`
	CreatedAt time.Time
	UpdatedAt time.Time
	DeletedAt gorm.DeletedAt `gorm:"index"`
}

func (*UserEntity) GetEmail

func (u *UserEntity) GetEmail() string

func (*UserEntity) GetHashedPassword

func (u *UserEntity) GetHashedPassword() string

func (*UserEntity) GetRole

func (u *UserEntity) GetRole() string

func (*UserEntity) GetSafeUserInfo

func (u *UserEntity) GetSafeUserInfo() UserEntity

func (*UserEntity) GetStatus

func (u *UserEntity) GetStatus() int

func (*UserEntity) GetTenantID

func (u *UserEntity) GetTenantID() int

func (*UserEntity) GetToken

func (u *UserEntity) GetToken() string

func (*UserEntity) GetUserID

func (u *UserEntity) GetUserID() int

func (*UserEntity) GetUserIDStr

func (u *UserEntity) GetUserIDStr() string

func (*UserEntity) GetUserName

func (u *UserEntity) GetUserName() string

func (*UserEntity) IsAdmin

func (u *UserEntity) IsAdmin() bool

func (*UserEntity) Valid

func (u *UserEntity) Valid() bool

type UserInfo

type UserInfo interface {
	GetUserID() int
	GetUserIDStr() string
	GetUserName() string
	GetEmail() string
	GetHashedPassword() string
	GetStatus() int
	GetRole() string
	GetToken() string
	GetTenantID() int
	GetSafeUserInfo() UserEntity
	IsAdmin() bool
	Valid() bool
}

Jump to

Keyboard shortcuts

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