utils

package
v0.9.8 Latest Latest
Warning

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

Go to latest
Published: May 18, 2025 License: GPL-3.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNoToken      = errors.New("token not found")
	ErrInvalidToken = errors.New("invalid token")
)

Functions

func NewCDN added in v0.7.0

func NewCDN(config CDNConfig) (*s3.S3, error)

NewCDN Initialise connection to CDN

func NewDB added in v0.7.0

func NewDB(config DatabaseConfig) (*sqlx.DB, error)

NewDB Initialises the connection to the database

func NewMQ added in v0.7.0

func NewMQ(conf MQConfig) (*amqp.Connection, error)

NewMQ initialising the AMQP broker

func NonNil added in v0.9.5

func NonNil[T any](k T) T

func PSQL added in v0.9.5

func PSQL() sq.StatementBuilderType

func Transact

func Transact(db *sqlx.DB, txFunc func(*sqlx.Tx) error) (err error)

Transact wraps transactions

Types

type AccessClaims added in v0.8.0

type AccessClaims struct {
	UserID      int      `json:"id"`
	Permissions []string `json:"perms"`
	jwt.RegisteredClaims
}

AccessClaims represents an identifiable JWT

type Accesser added in v0.8.0

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

func (*Accesser) AddUserAuthMiddleware added in v0.9.5

func (a *Accesser) AddUserAuthMiddleware(next echo.HandlerFunc) echo.HandlerFunc

AddUserAuthMiddleware checks an HTTP request for a valid token either in the header or cookie, and if the user can add a user

func (*Accesser) AuthMiddleware added in v0.8.0

func (a *Accesser) AuthMiddleware(next echo.HandlerFunc) echo.HandlerFunc

AuthMiddleware checks an HTTP request for a valid token either in the header or cookie

func (*Accesser) GetToken added in v0.8.0

func (a *Accesser) GetToken(r *http.Request) (*AccessClaims, int, error)

GetToken will return the claims from an access token JWT

First will check the Authorization header, if unset will check the access cookie

func (*Accesser) GroupAuthMiddleware added in v0.9.6

func (a *Accesser) GroupAuthMiddleware(next echo.HandlerFunc) echo.HandlerFunc

GroupAuthMiddleware checks an HTTP request for a valid token either in the header or cookie and if the user can modify groups

func (*Accesser) ListUserAuthMiddleware added in v0.9.5

func (a *Accesser) ListUserAuthMiddleware(next echo.HandlerFunc) echo.HandlerFunc

ListUserAuthMiddleware checks an HTTP request for a valid token either in the header or cookie and if the user can list users

func (*Accesser) ManageStreamAuthMiddleware added in v0.9.5

func (a *Accesser) ManageStreamAuthMiddleware(next echo.HandlerFunc) echo.HandlerFunc

ManageStreamAuthMiddleware checks an HTTP request for a valid token either in the header or cookie and if the user can manage streams

func (*Accesser) ModifyUserAuthMiddleware added in v0.9.5

func (a *Accesser) ModifyUserAuthMiddleware(next echo.HandlerFunc) echo.HandlerFunc

ModifyUserAuthMiddleware checks an HTTP request for a valid token either in the header or cookie and if the user can list users

func (*Accesser) OfficershipAuthMiddleware added in v0.9.6

func (a *Accesser) OfficershipAuthMiddleware(next echo.HandlerFunc) echo.HandlerFunc

OfficershipAuthMiddleware checks an HTTP request for a valid token either in the header or cookie and if the user can modify permissions

func (*Accesser) PermissionsAuthMiddleware added in v0.9.6

func (a *Accesser) PermissionsAuthMiddleware(next echo.HandlerFunc) echo.HandlerFunc

PermissionsAuthMiddleware checks an HTTP request for a valid token either in the header or cookie and if the user can modify permissions

func (*Accesser) SuperUserAuthMiddleware added in v0.9.8

func (a *Accesser) SuperUserAuthMiddleware(next echo.HandlerFunc) echo.HandlerFunc

SuperUserAuthMiddleware checks an HTTP request for a valid token either in the header or cookie and if the user is SuperUser

type CDNConfig added in v0.7.0

type CDNConfig struct {
	Endpoint        string
	Region          string
	AccessKeyID     string
	SecretAccessKey string
}

CDNConfig represents a configuration to connect to a CDN / S3 instance

type Config added in v0.8.0

type Config struct {
	AccessCookieName string
	SigningKey       []byte
}

type DatabaseConfig added in v0.7.0

type DatabaseConfig struct {
	Host     string
	Port     string
	SSLMode  string
	Name     string
	Username string
	Password string
}

DatabaseConfig represents a configuration to connect to an SQL database

type HTTPError added in v0.9.6

type HTTPError struct {
	Status  int    `json:"status"`
	Message string `json:"message"`
}

type MQConfig added in v0.7.0

type MQConfig struct {
	Host     string
	Port     string
	Username string
	Password string
}

MQConfig configuration required to create a MQ connection

type Mail added in v0.7.0

type Mail struct {
	Subject string
	To      string
	Cc      []string
	Bcc     []string
	From    string
	// contains filtered or unexported fields
}

Mail represents an email to be sent

type MailConfig added in v0.7.0

type MailConfig struct {
	Host     string
	Port     int
	Username string
	Password string
}

MailConfig represents a configuration to connect to an SMTP server

type Mailer added in v0.7.0

type Mailer struct {
	*mail.SMTPClient
	Enabled bool
}

Mailer encapsulates the dependency

func NewMailer added in v0.7.0

func NewMailer(config MailConfig) (*Mailer, error)

NewMailer creates a new SMTP client

func (*Mailer) SendMail added in v0.7.0

func (m *Mailer) SendMail(item Mail) error

SendMail sends a template email

type NotInExpr added in v0.9.6

type NotInExpr inExpr

NotInExpr helps to use NOT IN in SQL query

func NotIn added in v0.9.6

func NotIn(column string, e any) NotInExpr

NotIn allows to use NOT IN in SQL query Ex: SelectBuilder.Where(NotIn("id", 1, 2, 3))

func (NotInExpr) ToSql added in v0.9.6

func (e NotInExpr) ToSql() (sql string, args []interface{}, err error)

type Permission added in v0.7.0

type Permission struct {
	Name string `json:"name"`
}

Permission represents the permissions that a user has

type Repo added in v0.9.6

type Repo interface {
	GetToken(r *http.Request) (*AccessClaims, int, error)
	AuthMiddleware(next echo.HandlerFunc) echo.HandlerFunc
	AddUserAuthMiddleware(next echo.HandlerFunc) echo.HandlerFunc
	ListUserAuthMiddleware(next echo.HandlerFunc) echo.HandlerFunc
	GroupAuthMiddleware(next echo.HandlerFunc) echo.HandlerFunc
	PermissionsAuthMiddleware(next echo.HandlerFunc) echo.HandlerFunc
	OfficershipAuthMiddleware(next echo.HandlerFunc) echo.HandlerFunc
	SuperUserAuthMiddleware(next echo.HandlerFunc) echo.HandlerFunc
	ModifyUserAuthMiddleware(next echo.HandlerFunc) echo.HandlerFunc
	ManageStreamAuthMiddleware(next echo.HandlerFunc) echo.HandlerFunc
}

func NewAccesser added in v0.8.0

func NewAccesser(conf Config) Repo

NewAccesser allows the validation of web-auth JWT tokens both as headers and as cookies

type StringSQL added in v0.9.6

type StringSQL string

func (StringSQL) ToSql added in v0.9.6

func (s StringSQL) ToSql() (sql string, args []interface{}, err error)

Directories

Path Synopsis
permissions

Jump to

Keyboard shortcuts

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