Documentation ¶
Index ¶
- type AccessLevel
- type AdminUser
- type EnvPermissions
- type TokenClaims
- type UserManager
- func (m *UserManager) All() ([]AdminUser, error)
- func (m *UserManager) ChangeAdmin(username string, admin bool) error
- func (m *UserManager) ChangeDefaultEnv(username, env string) error
- func (m *UserManager) ChangeEmail(username, email string) error
- func (m *UserManager) ChangeFullname(username, fullname string) error
- func (m *UserManager) ChangePassword(username, password string) error
- func (m *UserManager) ChangePermissions(username string, permissions UserPermissions) error
- func (m *UserManager) CheckLoginCredentials(username, password string) (bool, AdminUser)
- func (m *UserManager) CheckPermissions(username string, level AccessLevel, environment string) bool
- func (m *UserManager) CheckToken(jwtSecret, tokenStr string) (TokenClaims, bool)
- func (m *UserManager) ConvertPermissions(raw json.RawMessage) (UserPermissions, error)
- func (m *UserManager) Create(user AdminUser) error
- func (m *UserManager) CreateToken(username string) (string, time.Time, error)
- func (m *UserManager) Delete(username string) error
- func (m *UserManager) Exists(username string) bool
- func (m *UserManager) ExistsGet(username string) (bool, AdminUser)
- func (m *UserManager) GenPermissions(environments []string, level AccessLevel) UserPermissions
- func (m *UserManager) Get(username string) (AdminUser, error)
- func (m *UserManager) GetPermissions(username string) (UserPermissions, error)
- func (m *UserManager) HashPasswordWithSalt(password string) (string, error)
- func (m *UserManager) HashTextWithSalt(text string) (string, error)
- func (m *UserManager) IsAdmin(username string) bool
- func (m *UserManager) New(username, password, email, fullname, defaultEnv string, admin bool) (AdminUser, error)
- func (m *UserManager) UpdateMetadata(ipaddress, useragent, username, csrftoken string) error
- func (m *UserManager) UpdateToken(username, token string, exp time.Time) error
- func (m *UserManager) UpdateTokenIPAddress(ipaddress, username string) error
- type UserPermissions
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccessLevel ¶
type AccessLevel int
AccessLevel as abstraction of level of access for a user
const ( // AdminLevel for admin privileges AdminLevel AccessLevel = iota // QueryLevel for query privileges QueryLevel // CarveLevel for carve privileges CarveLevel // EnvLevel for environment privileges EnvLevel // UserLevel for regula user privileges UserLevel // NoEnvironment to be explicit when used NoEnvironment = "" )
type AdminUser ¶
type AdminUser struct { gorm.Model Username string `gorm:"index"` Email string Fullname string PassHash string APIToken string TokenExpire time.Time Admin bool DefaultEnv string CSRFToken string Permissions postgres.Jsonb LastIPAddress string LastUserAgent string LastAccess time.Time LastTokenUse time.Time }
AdminUser to hold all users
type EnvPermissions ¶
EnvPermissions to hold permissions for environments
type TokenClaims ¶
type TokenClaims struct { Username string `json:"username"` jwt.StandardClaims }
TokenClaims to hold user claims when using JWT
type UserManager ¶
type UserManager struct { DB *gorm.DB JWTConfig *types.JSONConfigurationJWT }
UserManager have all users of the system
func CreateUserManager ¶
func CreateUserManager(backend *gorm.DB, jwtconfig *types.JSONConfigurationJWT) *UserManager
CreateUserManager to initialize the users struct and tables
func (*UserManager) ChangeAdmin ¶
func (m *UserManager) ChangeAdmin(username string, admin bool) error
ChangeAdmin to modify the admin setting for a user
func (*UserManager) ChangeDefaultEnv ¶
func (m *UserManager) ChangeDefaultEnv(username, env string) error
ChangeDefaultEnv for user by username
func (*UserManager) ChangeEmail ¶
func (m *UserManager) ChangeEmail(username, email string) error
ChangeEmail for user by username
func (*UserManager) ChangeFullname ¶
func (m *UserManager) ChangeFullname(username, fullname string) error
ChangeFullname for user by username
func (*UserManager) ChangePassword ¶
func (m *UserManager) ChangePassword(username, password string) error
ChangePassword for user by username
func (*UserManager) ChangePermissions ¶
func (m *UserManager) ChangePermissions(username string, permissions UserPermissions) error
ChangePermissions for setting user permissions by username
func (*UserManager) CheckLoginCredentials ¶
func (m *UserManager) CheckLoginCredentials(username, password string) (bool, AdminUser)
CheckLoginCredentials to check provided login credentials by matching hashes
func (*UserManager) CheckPermissions ¶
func (m *UserManager) CheckPermissions(username string, level AccessLevel, environment string) bool
CheckPermissions to verify access for a username
func (*UserManager) CheckToken ¶
func (m *UserManager) CheckToken(jwtSecret, tokenStr string) (TokenClaims, bool)
CheckToken to verify if a token used is valid
func (*UserManager) ConvertPermissions ¶
func (m *UserManager) ConvertPermissions(raw json.RawMessage) (UserPermissions, error)
ConvertPermissions to convert from stored Jsonb to struct
func (*UserManager) CreateToken ¶
CreateToken to create a new JWT token for a given user
func (*UserManager) Delete ¶
func (m *UserManager) Delete(username string) error
Delete user by username
func (*UserManager) Exists ¶
func (m *UserManager) Exists(username string) bool
Exists checks if user exists
func (*UserManager) ExistsGet ¶
func (m *UserManager) ExistsGet(username string) (bool, AdminUser)
ExistsGet checks if user exists and returns the user
func (*UserManager) GenPermissions ¶
func (m *UserManager) GenPermissions(environments []string, level AccessLevel) UserPermissions
GenPermissions to generate the struct with empty permissions
func (*UserManager) Get ¶
func (m *UserManager) Get(username string) (AdminUser, error)
Get user by username
func (*UserManager) GetPermissions ¶
func (m *UserManager) GetPermissions(username string) (UserPermissions, error)
GetPermissions to extract permissions by username
func (*UserManager) HashPasswordWithSalt ¶
func (m *UserManager) HashPasswordWithSalt(password string) (string, error)
HashPasswordWithSalt to hash a password before store it
func (*UserManager) HashTextWithSalt ¶
func (m *UserManager) HashTextWithSalt(text string) (string, error)
HashTextWithSalt to hash text before store it
func (*UserManager) IsAdmin ¶
func (m *UserManager) IsAdmin(username string) bool
IsAdmin checks if user is an admin
func (*UserManager) New ¶
func (m *UserManager) New(username, password, email, fullname, defaultEnv string, admin bool) (AdminUser, error)
New empty user
func (*UserManager) UpdateMetadata ¶
func (m *UserManager) UpdateMetadata(ipaddress, useragent, username, csrftoken string) error
UpdateMetadata updates IP, User Agent and Last Access for a given user
func (*UserManager) UpdateToken ¶
func (m *UserManager) UpdateToken(username, token string, exp time.Time) error
UpdateToken for user by username
func (*UserManager) UpdateTokenIPAddress ¶
func (m *UserManager) UpdateTokenIPAddress(ipaddress, username string) error
UpdateTokenIPAddress updates IP and Last Access for a user's token
type UserPermissions ¶
type UserPermissions struct { Environments EnvPermissions `json:"environments"` Query bool `json:"query"` Carve bool `json:"carve"` }
UserPermissions to abstract the permissions for a user