models

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Jan 27, 2022 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewDB

func NewDB(conf config.Config) (*gorm.DB, error)

Types

type App

type App struct {
	gorm.Model
	Name            string `gorm:"unique"`
	Path            string
	AppSource       string
	AppDir          string
	GitSourceUrl    string
	GitSourceBranch string
	GitSourceToken  string
	Workers         int
	IsActive        bool
	RestrictAccess  int
	AllowedGroups   []Group `gorm:"many2many:app_allowed_groups;"`
}

type AppModel

type AppModel interface {
	All() ([]App, error)
	Find(name string) (App, error)
	Save(app App, oldName string) error
	Delete(name string) error
	AsMap(app App) (map[string]interface{}, error)
	AsMapSlice(apps []App) ([]map[string]interface{}, error)
}

type AppModelDB

type AppModelDB struct {
	DB *gorm.DB
	// contains filtered or unexported fields
}

func NewAppModelDB

func NewAppModelDB(db *gorm.DB, groupModel *GroupModelDB) (*AppModelDB, error)

func (*AppModelDB) All

func (m *AppModelDB) All() ([]App, error)

Get all apps

func (*AppModelDB) AsMap

func (m *AppModelDB) AsMap(app App) (map[string]interface{}, error)

Get an app as a map, directly usable in template

func (*AppModelDB) AsMapSlice

func (m *AppModelDB) AsMapSlice(apps []App) ([]map[string]interface{}, error)

Get a slice of apps as a slice of maps, directly usable in template

func (*AppModelDB) Delete

func (m *AppModelDB) Delete(name string) error

Delete an app

func (*AppModelDB) Find

func (m *AppModelDB) Find(name string) (App, error)

Find a specific app by app name

func (*AppModelDB) Save

func (m *AppModelDB) Save(app App, oldName string) error

Create or update a R app to the database

type Group

type Group struct {
	gorm.Model
	Name  string `gorm:"unique"`
	Users []User `gorm:"many2many:user_groups;"`
	// contains filtered or unexported fields
}

type GroupModel

type GroupModel interface {
	AllNames() ([]string, error)
	AsMapSlice() ([]map[string]interface{}, error)
	Find(string) (Group, error)
	Save(group Group, oldGroupName string) error
	Delete(groupName string) error
	AddMember(groupName string, username string) error
	RemoveMember(groupName string, username string) error
}

type GroupModelDB

type GroupModelDB struct {
	DB *gorm.DB
}

func NewGroupModelDB

func NewGroupModelDB(db *gorm.DB) *GroupModelDB

Provider for a group data model

func (*GroupModelDB) AddMember

func (m *GroupModelDB) AddMember(groupName string, username string) error

Add a member to a specific group

func (*GroupModelDB) AllNames

func (m *GroupModelDB) AllNames() ([]string, error)

Get all group names

func (*GroupModelDB) AsMapSlice

func (m *GroupModelDB) AsMapSlice() ([]map[string]interface{}, error)

Get all groups

func (*GroupModelDB) Delete

func (m *GroupModelDB) Delete(groupName string) error

Delete a specific group

func (*GroupModelDB) Find

func (m *GroupModelDB) Find(groupName string) (Group, error)

Get a specific group with member users

func (*GroupModelDB) RemoveMember

func (m *GroupModelDB) RemoveMember(groupName string, username string) error

Remove a member from a group

func (*GroupModelDB) Save

func (m *GroupModelDB) Save(group Group, oldGroupName string) error

Save group info to the database

type User

type User struct {
	gorm.Model
	Username      string `gorm:"unique"`
	DisplayedName string
	AuthSource    string
	Password      string
	Groups        []Group `gorm:"many2many:user_groups;"`
}

type UserModel

type UserModel interface {
	All() ([]User, error)
	Find(string) (User, error)
	Save(user User, oldUsername string) error
	AdminSave(user User, oldUsername string) error
	Delete(string) error
	AsMap(User) (map[string]interface{}, error)
	AsMapSlice([]User) ([]map[string]interface{}, error)
	Login(User) (User, error)
}

type UserModelDB

type UserModelDB struct {
	DB *gorm.DB
	// contains filtered or unexported fields
}

func NewUserModelDB

func NewUserModelDB(db *gorm.DB, groupModel *GroupModelDB) *UserModelDB

Create a new user model with db source

func (*UserModelDB) AdminSave

func (m *UserModelDB) AdminSave(user User, oldUsername string) error

Create or update a user as admin

func (*UserModelDB) All

func (m *UserModelDB) All() ([]User, error)

Get all users

func (*UserModelDB) AsMap

func (m *UserModelDB) AsMap(user User) (map[string]interface{}, error)

Function to retrieve user as a map

func (*UserModelDB) AsMapSlice

func (m *UserModelDB) AsMapSlice(users []User) ([]map[string]interface{}, error)

Function to retrieve users as a slice of maps

func (*UserModelDB) Delete

func (m *UserModelDB) Delete(username string) error

Delete user

func (*UserModelDB) Find

func (m *UserModelDB) Find(username string) (User, error)

Find a user by its username

func (*UserModelDB) Login

func (m *UserModelDB) Login(user User) (User, error)

Get an user and verify password

func (*UserModelDB) Save

func (m *UserModelDB) Save(user User, oldUsername string) error

Create or update a user and add to admin group if it is the first user

Jump to

Keyboard shortcuts

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