teamroles

package module
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2024 License: MIT Imports: 7 Imported by: 11

README

# team-roles Package




## Features

- Creates access control settings for members, specifying the level of access they have to specific resources or functionalities within the system.
- Updates the existing control settings with new configuration of permissions.


# Installation

``` bash
go get github.com/spurtcms/team-roles
```


# Create new role 


# Getting help
If you encounter a problem with the package,please refer [Please refer [(https://www.spurtcms.com/documentation/cms-admin)] or you can create a new Issue in this repo[https://github.com/spurtcms/team-roles/issues]. 

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrorAuthentication           = errors.New("auth enabled not initialised")
	ErrorAuthorization            = errors.New("permissions enabled not initialised")
	Error500Status                = errors.New("internal server error")
	Error403                      = errors.New("unauthorized")
	Error404                      = errors.New("not found")
	ErrorModuleNotFound           = errors.New("modulename not found")
	ErrorModulePermissionNotFound = errors.New("module permission not found")
	ErrorRoleNameEmpty            = errors.New("role name is empty")
	ErrorInvalidroleid            = errors.New("invalid roleid cannot delete")
)

Functions

func AuthandPermission

func AuthandPermission(permission *PermissionConfig) error

func Difference

func Difference(a, b []int) (diff []int)

Set Difference: A - B

Types

type Action

type Action string
const (
	Create Action = "Create"

	Read Action = "View"

	Update Action = "Update"

	Delete Action = "Delete"

	CRUD Action = "CRUD"
)

type Config

type Config struct {
	AuthEnable       bool
	PermissionEnable bool
	Authenticate     *auth.Auth
	DataBaseType     Type
	DB               *gorm.DB
}

In Default superadmin or roleid 1 have all permissions

type CreatePermissions

type CreatePermissions struct {
	RoleId     int
	ModuleName string
	Permission Action
	CreatedBy  int
}

type Filter

type Filter struct {
	Keyword  string
	Category string
	Status   string
	FromDate string
	ToDate   string
}

type LoginCheck

type LoginCheck struct {
	Username string
	Password string
}
type MenuMod struct {
	Id         int
	ModuleName string
	IconPath   string
	Routes     []URL // this is for single menu multiple permissions arr
	HrefRoute  URL
	Route      string      //this is for a tag href route
	SubModule  []SubModule // this is for submodules
	// FullAccessPermission bool
	EmptyCheck bool //this is flg for mainmenu hide if submodule is empty
}

type ModelStruct

type ModelStruct struct{} //Just Group the all model using this struct
var AS ModelStruct

func (ModelStruct) CheckModuleExists

func (as ModelStruct) CheckModuleExists(modulename string, DB *gorm.DB) (tblmod Tblmodule, err error)

func (ModelStruct) CheckModulePemissionExists

func (as ModelStruct) CheckModulePemissionExists(moduleid int, permissions Action, DB *gorm.DB) (tblmod TblModulePermission, err error)

func (ModelStruct) CheckPermissionIdExist

func (as ModelStruct) CheckPermissionIdExist(roleid int, permissionid []int, DB *gorm.DB) (roleperm []TblRolePermission, err error)

func (ModelStruct) CheckPermissionIdNotExist

func (as ModelStruct) CheckPermissionIdNotExist(roleid int, permissionid []int, DB *gorm.DB) (roleperm []TblRolePermission, err error)

func (ModelStruct) CheckRoleExists

func (as ModelStruct) CheckRoleExists(role *TblRole, id int, name string, DB *gorm.DB) error

Check role

func (ModelStruct) CreateModulePermission

func (as ModelStruct) CreateModulePermission(modpermission *TblModulePermission, DB *gorm.DB) (modper *TblModulePermission, err error)

create json module permission

func (ModelStruct) CreateRolePermission

func (as ModelStruct) CreateRolePermission(roleper *[]TblRolePermission, DB *gorm.DB) error

bulk creation

func (ModelStruct) DeleteModulePermissioninEntries

func (as ModelStruct) DeleteModulePermissioninEntries(id string, DB *gorm.DB) (tblmodper TblModulePermission, err error)

func (ModelStruct) DeleteRolePermissionById

func (as ModelStruct) DeleteRolePermissionById(roleid int, DB *gorm.DB) (roleper []TblRolePermission, err error)

func (ModelStruct) Deleterolepermission

func (as ModelStruct) Deleterolepermission(id int, DB *gorm.DB) (TblRolePermission TblRolePermission, err error)

Delete Role Permission by id

func (ModelStruct) GetAllModules

func (as ModelStruct) GetAllModules(limit, offset, id int, filter Filter, DB *gorm.DB) (mod []Tblmodule, count int64)

This is for assign permission

func (ModelStruct) GetAllParentModule

func (as ModelStruct) GetAllParentModule(DB *gorm.DB) (modules []TblModule, err error)

func (ModelStruct) GetAllParentModules1

func (as ModelStruct) GetAllParentModules1(DB *gorm.DB) (mod []Tblmodule, err error)

func (ModelStruct) GetAllRoles

func (as ModelStruct) GetAllRoles(limit, offset int, filter Filter, getalldata bool, DB *gorm.DB) (role []Tblrole, rolecount int64, err error)

Get all roles list with limit and offset

func (ModelStruct) GetAllSubModule

func (as ModelStruct) GetAllSubModule(moduleid int, DB *gorm.DB) (modules []TblModule, err error)

func (ModelStruct) GetAllSubModules

func (as ModelStruct) GetAllSubModules(ids []int, DB *gorm.DB) (mod []Tblmodule, err error)

func (ModelStruct) GetIdByRouteName

func (as ModelStruct) GetIdByRouteName(id string, DB *gorm.DB) (tblmodper TblModulePermission, err error)

Get Id by RouteName

func (ModelStruct) GetModulePermissions

func (as ModelStruct) GetModulePermissions(modid int, ids []int, DB *gorm.DB) (permission []TblModulePermission, err error)

func (ModelStruct) GetPermissionId

func (as ModelStruct) GetPermissionId(roleid int, DB *gorm.DB) (perm []TblRolePermission, err error)

Get PermissionId By RoleId

func (ModelStruct) GetRoleById

func (as ModelStruct) GetRoleById(id int, DB *gorm.DB) (role Tblrole, err error)

Get role by id

func (ModelStruct) GetRolesData

func (as ModelStruct) GetRolesData(roles *[]Tblrole, DB *gorm.DB) error

func (ModelStruct) MultiSelectDeleteRolePermissionById

func (as ModelStruct) MultiSelectDeleteRolePermissionById(roleper *[]TblRolePermission, roleids []int, roleid int, DB *gorm.DB) error

delete multiple permission

func (ModelStruct) MultiSelectRoleDelete

func (as ModelStruct) MultiSelectRoleDelete(role *TblRole, ids []int, id int, DB *gorm.DB) error

delete multiple roles

func (ModelStruct) MultiSelectRoleIsActive

func (as ModelStruct) MultiSelectRoleIsActive(role *TblRole, id []int, val int, DB *gorm.DB) error

update selected role status

func (ModelStruct) RoleCreate

func (as ModelStruct) RoleCreate(role *Tblrole, DB *gorm.DB) error

Roels Insert

func (ModelStruct) RoleDelete

func (as ModelStruct) RoleDelete(id int, DB *gorm.DB) error

Delete the role data

func (ModelStruct) RoleIsActive

func (as ModelStruct) RoleIsActive(role *TblRole, id, val int, DB *gorm.DB) error

update role status

func (ModelStruct) RoleUpdate

func (as ModelStruct) RoleUpdate(role *Tblrole, DB *gorm.DB) error

type MultiPermissin

type MultiPermissin struct {
	RoleId    int
	Ids       []int
	CreatedBy int
}

type Permission

type Permission struct {
	ModuleName string
	Action     []string //create,View,update,delete

}

type PermissionConfig

type PermissionConfig struct {
	AuthEnable       bool
	PermissionEnable bool
	Authenticate     *auth.Auth
	DB               *gorm.DB
	DataBaseType     Type
	AuthFlg          bool
	PermissionFlg    bool
}

func RoleSetup

func RoleSetup(config Config) *PermissionConfig

role&permission setup config

func (*PermissionConfig) CheckRoleAlreadyExists

func (RoleConf *PermissionConfig) CheckRoleAlreadyExists(roleid int, rolename string) (bool, error)

Check Role Already Exists

func (*PermissionConfig) CreatePermission

func (permission *PermissionConfig) CreatePermission(Perm MultiPermissin) error

create permission

func (*PermissionConfig) CreatePermission1

func (permission *PermissionConfig) CreatePermission1(permissions CreatePermissions) error

create permission

func (*PermissionConfig) CreateRole

func (RoleConf *PermissionConfig) CreateRole(rolec RoleCreation) (Tblrole, error)

create role

func (*PermissionConfig) CreateUpdatePermission

func (permission *PermissionConfig) CreateUpdatePermission(Perm MultiPermissin) error

update permission

func (*PermissionConfig) DeleteRole

func (RoleConf *PermissionConfig) DeleteRole(roleids []int, roleid int) (bool, error)

delete seleted role

func (*PermissionConfig) GetPermissionDetailsById

func (permission *PermissionConfig) GetPermissionDetailsById(roleid int) (rolepermissionid []int, err error)

permission List

func (*PermissionConfig) GetRoleById

func (RoleConf *PermissionConfig) GetRoleById(roleid int) (tblrol Tblrole, err error)

get role by id

func (*PermissionConfig) MultiSelectRoleStatus

func (RoleConf *PermissionConfig) MultiSelectRoleStatus(roleid []int, status int, userid int) (err error)

update selected role status

func (*PermissionConfig) PermissionList

func (permission *PermissionConfig) PermissionList() (menu []MenuMod, err error)

func (*PermissionConfig) PermissionListRoleId

func (permission *PermissionConfig) PermissionListRoleId(limit, offset, roleid int, filter Filter) (Module []Tblmodule, count int64, err error)

permission List

func (*PermissionConfig) RoleList

func (RoleConf *PermissionConfig) RoleList(rolelist Rolelist) (roles []Tblrole, rolecount int64, err error)

create role

func (*PermissionConfig) RoleStatus

func (RoleConf *PermissionConfig) RoleStatus(roleid int, status int, userid int) (err error)

change role status 0-inactive, 1-active

func (*PermissionConfig) UpdateRole

func (RoleConf *PermissionConfig) UpdateRole(rolec RoleCreation, roleid int) (updaterole Tblrole, err error)

update role

type RoleCreation

type RoleCreation struct {
	Name        string
	Description string
	CreatedBy   int
}

type Rolelist

type Rolelist struct {
	Limit      int
	Offset     int
	Filter     Filter
	GetAllData bool
}

type SubModule

type SubModule struct {
	Id         int
	ModuleName string
	IconPath   string
	Routes     []URL
	// FullAccessPermission bool
	Action bool
}

type TblModule

type TblModule struct {
	Id               int       `gorm:"column:id"`
	ModuleName       string    `gorm:"column:module_name"`
	IsActive         int       `gorm:"column:is_active"`
	DefaultModule    int       `gorm:"column:default_module"`
	ParentId         int       `gorm:"column:parent_id"`
	IconPath         string    `gorm:"column:icon_path"`
	AssignPermission int       `gorm:"column:assign_permission"`
	Description      string    `gorm:"column:description"`
	OrderIndex       int       `gorm:"column:order_index"`
	CreatedBy        int       `gorm:"column:created_by"`
	CreatedOn        time.Time `gorm:"column:created_on"`
	MenuType         string    `gorm:"column:menu_type"`
	GroupFlg         int       `gorm:"column:group_flg"`
}

type TblModulePermission

type TblModulePermission struct {
	Id                   int                 `gorm:"column:id"`
	RouteName            string              `gorm:"column:route_name"`
	DisplayName          string              `gorm:"column:display_name"`
	SlugName             string              `gorm:"column:slug_name"`
	Description          string              `gorm:"column:description"`
	ModuleId             int                 `gorm:"column:module_id"`
	CreatedBy            int                 `gorm:"column:created_by"`
	CreatedOn            time.Time           `gorm:"column:created_on;DEFAULT:NULL"`
	CreatedDate          string              `gorm:"-:all"`
	ModifiedBy           int                 `gorm:"DEFAULT:NULL"`
	ModifiedOn           time.Time           `gorm:"column:modified_by;DEFAULT:NULL"`
	ModuleName           string              `gorm:"-:migration;<-:false"`
	FullAccessPermission int                 `gorm:"column:full_access_permission"`
	ParentId             int                 `gorm:"column:parent_id"`
	AssignPermission     int                 `gorm:"column:assign_permission"`
	BreadcrumbName       string              `gorm:"column:breadcrumb_name"`
	TblRolePermission    []TblRolePermission `gorm:"-:migration;<-:false; foreignKey:PermissionId"`
	OrderIndex           int                 `gorm:"column:order_index"`
}

type TblRole

type TblRole struct {
	Id          int       `gorm:"column:id"`
	Name        string    `gorm:"column:name"`
	Description string    `gorm:"column:description"`
	Slug        string    `gorm:"column:slug"`
	IsActive    int       `gorm:"column:is_active"`
	IsDeleted   int       `gorm:"column:is_deleted"`
	CreatedOn   time.Time `gorm:"column:created_on"`
	CreatedBy   int       `gorm:"column:created_by"`
	ModifiedOn  time.Time `gorm:"column:modified_on"`
	ModifiedBy  int       `gorm:"column:modified_by"`
}

type TblRolePermission

type TblRolePermission struct {
	Id           int       `gorm:"column:id"`
	RoleId       int       `gorm:"column:role_id"`
	PermissionId int       `gorm:"column:permission_id"`
	CreatedBy    int       `gorm:"column:created_by"`
	CreatedOn    time.Time `gorm:"column:created_on;DEFAULT:NULL"`
	CreatedDate  string    `gorm:"-:migration;<-:false"`
}

type Tblmodule

type Tblmodule struct {
	Id                  int                   `gorm:"column:id"`
	ModuleName          string                `gorm:"column:module_name"`
	IsActive            int                   `gorm:"column:is_active"`
	CreatedBy           int                   `gorm:"column:created_by"`
	CreatedOn           time.Time             `gorm:"column:created_on;DEFAULT:NULL"`
	CreatedDate         string                `gorm:"-:migration;<-:false"`
	DefaultModule       int                   `gorm:"column:default_module"`
	ParentId            int                   `gorm:"column:parent_id"`
	IconPath            string                `gorm:"column:icon_path"`
	TblModulePermission []TblModulePermission `gorm:"-:migration;<-:false; foreignKey:ModuleId"`
	Description         string                `gorm:"column:description"`
	OrderIndex          int                   `gorm:"column:order_index"`
}

type Tblrole

type Tblrole struct {
	Id          int       `gorm:"column:id"`
	Name        string    `gorm:"column:name"`
	Description string    `gorm:"column:description"`
	Slug        string    `gorm:"column:slug"`
	IsActive    int       `gorm:"column:is_active"`
	IsDeleted   int       `gorm:"column:is_deleted"`
	CreatedOn   time.Time `gorm:"column:created_on"`
	CreatedBy   int       `gorm:"column:created_by"`
	ModifiedOn  time.Time `gorm:"column:modified_on;DEFAULT:NULL"`
	ModifiedBy  int       `gorm:"column:modified_by;DEFAULT:NULL"`
	CreatedDate string    `gorm:"-:migration;<-:false"`
	User        []tbluser `gorm:"-"`
}

type Type

type Type string
const (
	Postgres Type = "postgres"
	Mysql    Type = "mysql"
)

type URL

type URL struct {
	Id          int
	DisplayName string
	RouteName   string
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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