models

package
v0.0.0-...-2d88729 Latest Latest
Warning

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

Go to latest
Published: Sep 21, 2018 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddOrUpdateTenantRole

func AddOrUpdateTenantRole(userID uint, tenantID int, role string, includedPermissions string, excludedPermissions string)

AddOrUpdateTenantRole - update user role in a tenant

func AddOrUpdateUserMeta

func AddOrUpdateUserMeta(userID uint, metaKey string, metaValue string, isUnique bool) error

AddOrUpdateUserMeta - add/update user meta

func CreateUser

func CreateUser(user *User) (uint, error)

CreateUser - create new user

func DeleteTenant

func DeleteTenant(tenantID uint)

DeleteTenant - delete a tenant

func DeleteUser

func DeleteUser(userID uint)

DeleteUser - permanently delete user data

func DeleteUserMeta

func DeleteUserMeta(userID uint, metaKey string)

DeleteUserMeta - permanently delete a meta

func DeleteUserTenantRole

func DeleteUserTenantRole(userID uint, tenantID uint)

DeleteUserTenantRole - permanently delete a user role in a tenant

func FormatUserMeta

func FormatUserMeta(userMeta []UserMeta) map[string]string

FormatUserMeta - formats user data

func GetTenants

func GetTenants() map[uint]string

GetTenants - get all tenants

func GetUserMetaValue

func GetUserMetaValue(userID uint, metaKey string, tenantID int) (string, error)

GetUserMetaValue - get user meta

func GetUserTenants

func GetUserTenants(userID uint) map[uint]string

GetUserTenants - get tenants thst user has role in

func GetUserTenantsPermissions

func GetUserTenantsPermissions(roles []UserTenantRole) map[int][]string

GetUserTenantsPermissions - get user permissions in tenants

func Init

func Init()

Init - initials connection to db and do migrations and seeds admin and tenant data

func UpdateTenant

func UpdateTenant(tenantID uint, updatedTenant *Tenant)

UpdateTenant - update single tenant

func UpdateUser

func UpdateUser(userID uint, updateUser *User)

UpdateUser - update a user

func UserExists

func UserExists(userId uint, tenantId int) bool

UserExists - check if user has any role in a tenant

Types

type Permission

type Permission struct {
	Id    string
	Title string
}

Permission - permission structure

type Role

type Role struct {
	Name        string
	Permissions []string
}

Role - role structure

type RolesResponse

type RolesResponse struct {
	Roles       []Role
	Permissions []Permission
}

RolesResponse - response type of a role

func Roles

func Roles() RolesResponse

Roles - returns roles that are declared hardcoded and added in config

type Tenant

type Tenant struct {
	ID     uint   `gorm:"primary_key"`
	Name   string `gorm:"type:varchar(32);not null"`
	Status int    `gorm:"type:int(1);not null;index"`
}

Tenant - tenant structure

func CreateTenant

func CreateTenant(name string, status int) Tenant

CreateTenant - create a new tenant

type User

type User struct {
	gorm.Model
	Username        string `gorm:"type:varchar(32);unique_index;not null"`
	Password        string `gorm:"type:varchar(64);not null"`
	Email           string `gorm:"type:varchar(32);unique"`
	DisplayName     string `gorm:"type:varchar(32)"`
	Status          int    `gorm:"type:int(3);not null;index;default:1"`
	UserMetas       []UserMeta
	UserTenantRoles []UserTenantRole
}

User - user structure

func GetUserByID

func GetUserByID(id uint) (*User, error)

GetUserByID - get user data by user ID

func GetUserByUsername

func GetUserByUsername(username string) (*User, error)

GetUserByUsername - get user data by username

func (*User) Safe

func (user *User) Safe() map[string]interface{}

Safe - return user data in a safe way

type UserMeta

type UserMeta struct {
	ID        uint   `gorm:"primary_key"`
	UserID    uint   `gorm:"index;not null"`
	MetaKey   string `gorm:"type:varchar(255);not null;index"`
	MetaValue string `gorm:"type:longtext;not null"`
}

UserMeta - user meta structure

type UserTenantRole

type UserTenantRole struct {
	gorm.Model
	UserID              uint   `gorm:"index;not null"`
	TenantID            uint   `gorm:"index;not null"`
	Role                string `gorm:"type:varchar(32);not null;index"`
	IncludedPermissions string `gorm:"type:varchar(512)"`
	ExcludedPermissions string `gorm:"type:varchar(512)"`
}

UserTenantRole - user tenant role structure

type UserWithRole

type UserWithRole struct {
	ID          uint
	CreatedAt   time.Time
	UpdatedAt   time.Time
	Username    string
	Email       string
	DisplayName string
	Status      int
	Role        string
}

UserWithRole - user data + role data

func GetUsers

func GetUsers(args UsersFilterFields, tenantID int) []UserWithRole

GetUsers - get users by filters

type UsersFilterFields

type UsersFilterFields struct {
	Username    string
	Email       string
	DisplayName string
	Role        string
	MetaKey     string
	MetaValue   string
	Page        int
	Status      int
	OrderBy     string
	Order       string
	IDs         string
}

UsersFilterFields - fields for filtering a user

Jump to

Keyboard shortcuts

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