auth

package
v0.0.0-...-aa2490a Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2025 License: GPL-3.0 Imports: 11 Imported by: 0

Documentation

Overview

Package auth is responsible for user authentication.

Index

Constants

View Source
const (
	VPNServiceID         = 1
	DedicatedIPServiceID = 11
)

Variables

This section is empty.

Functions

func Logout

func Logout(user int64, logoutPub events.Publisher[events.DataAuthorization]) config.SaveFunc

Logout the user.

Types

type Checker

type Checker interface {
	// IsLoggedIn returns true when the user is logged in.
	IsLoggedIn() bool
	// IsMFAEnabled returns true if Multifactor Authentication is enabled.
	IsMFAEnabled() (bool, error)
	// IsVPNExpired is used to check whether the user is allowed to use VPN
	IsVPNExpired() (bool, error)
	// GetDedicatedIPServices returns all available server IDs, if server is not selected by the user it will set
	// ServerID for that service to NoServerSelected
	GetDedicatedIPServices() ([]DedicatedIPService, error)
}

Checker provides information about current authentication.

type DedicatedIPService

type DedicatedIPService struct {
	ExpiresAt string
	// ServerID will be set to NoServerSelected if server was not selected by the user
	ServerIDs []int64
}

type RenewingChecker

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

RenewingChecker does both authentication checks and renewals in case of expiration.

func NewRenewingChecker

func NewRenewingChecker(cm config.Manager,
	creds core.CredentialsAPI,
	mfaPub events.Publisher[bool],
	logoutPub events.Publisher[events.DataAuthorization],
	errPub events.Publisher[error],
	accountUpdateEvents *daemonevents.AccountUpdateEvents,
) *RenewingChecker

NewRenewingChecker is a default constructor for RenewingChecker.

func (*RenewingChecker) GetDedicatedIPServices

func (r *RenewingChecker) GetDedicatedIPServices() ([]DedicatedIPService, error)

func (*RenewingChecker) IsLoggedIn

func (r *RenewingChecker) IsLoggedIn() bool

IsLoggedIn reports user login status.

Thread safe.

func (*RenewingChecker) IsMFAEnabled

func (r *RenewingChecker) IsMFAEnabled() (bool, error)

IsMFAEnabled checks if user account has MFA turned on.

Thread safe.

func (*RenewingChecker) IsVPNExpired

func (r *RenewingChecker) IsVPNExpired() (bool, error)

IsVPNExpired is used to check whether the user is allowed to use VPN

Jump to

Keyboard shortcuts

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