Documentation
¶
Overview ¶
Package domain contains role, permission, and menu business rules.
Index ¶
Constants ¶
const ( // RoleCodeSuperAdmin is the seeded root role with every platform grant. RoleCodeSuperAdmin = "super_admin" // DefaultRolePath is used when a role has not chosen a more specific home page. DefaultRolePath = "/dashboard" )
const ( PermissionAdminRead = "admin:read" PermissionAdminCreate = "admin:create" PermissionAdminUpdate = "admin:update" PermissionAdminDelete = "admin:delete" PermissionRoleRead = "role:read" PermissionRoleCreate = "role:create" PermissionRoleUpdate = "role:update" PermissionRoleDelete = "role:delete" PermissionMenuRead = "menu:read" PermissionMenuCreate = "menu:create" PermissionMenuUpdate = "menu:update" PermissionMenuDelete = "menu:delete" PermissionAPIRead = "api:read" PermissionAPICreate = "api:create" PermissionAPIUpdate = "api:update" PermissionAPIDelete = "api:delete" PermissionAPITokenRead = "api_token:read" PermissionAPITokenCreate = "api_token:create" PermissionAPITokenUpdate = "api_token:update" PermissionAPITokenDelete = "api_token:delete" PermissionConfigRead = "config:read" PermissionConfigUpdate = "config:update" PermissionConfigDelete = "config:delete" PermissionParamRead = "param:read" PermissionParamCreate = "param:create" PermissionParamUpdate = "param:update" PermissionParamDelete = "param:delete" PermissionVersionRead = "version:read" PermissionVersionCreate = "version:create" PermissionVersionUpdate = "version:update" PermissionVersionDelete = "version:delete" PermissionDictRead = "dict:read" PermissionDictCreate = "dict:create" PermissionDictUpdate = "dict:update" PermissionDictDelete = "dict:delete" PermissionFileRead = "file:read" PermissionFileUpload = "file:upload" PermissionFileUpdate = "file:update" PermissionFileDelete = "file:delete" PermissionFileCategoryCreate = "file_category:create" PermissionFileCategoryUpdate = "file_category:update" PermissionFileCategoryDelete = "file_category:delete" PermissionLogRead = "log:read" PermissionLogDelete = "log:delete" PermissionLogResolve = "log:resolve" )
Permission names used by the back-office foundation modules.
Variables ¶
var ( ErrInvalidRoleID = errors.New("invalid role id") ErrInvalidRoleParent = errors.New("invalid role parent") ErrInvalidRoleCode = errors.New("invalid role code") ErrInvalidRoleName = errors.New("invalid role name") ErrRoleNeedsPerms = errors.New("role needs at least one permission") ErrInvalidDefaultPath = errors.New("invalid default path") ErrInvalidMenuID = errors.New("invalid menu id") ErrInvalidMenuName = errors.New("invalid menu name") ErrInvalidMenuPath = errors.New("invalid menu path") ErrInvalidComponent = errors.New("invalid menu component") ErrInvalidMenuMeta = errors.New("invalid menu meta") ErrInvalidPermission = errors.New("invalid permission") ErrInvalidButtonID = errors.New("invalid menu button id") ErrInvalidButtonName = errors.New("invalid menu button name") ErrInvalidButtonDesc = errors.New("invalid menu button description") ErrInvalidAPIID = errors.New("invalid api id") ErrInvalidAPIPath = errors.New("invalid api path") ErrInvalidAPIMethod = errors.New("invalid api method") ErrInvalidAPIGroup = errors.New("invalid api group") ErrInvalidAPIDesc = errors.New("invalid api description") )
Access validation errors.
Functions ¶
This section is empty.
Types ¶
type API ¶
type API struct {
ID int64
Method string
Path string
Description string
Group string
Permission string
Public bool
CreatedAt time.Time
UpdatedAt time.Time
}
API represents one backend route that can be assigned to a role.
type Menu ¶
type Menu struct {
ID int64
ParentID int64
Name string
Path string
Icon string
Hidden bool
Component string
Meta MenuMeta
Permission string
Sort int
Active bool
Buttons []MenuButton
CreatedAt time.Time
UpdatedAt time.Time
}
Menu represents one visible navigation entry in the back-office UI.
func RestoreMenu ¶
func RestoreMenu(id, parentID int64, name, path, icon string, hidden bool, component string, meta MenuMeta, permission string, sort int, active bool, buttons []MenuButton, createdAt, updatedAt time.Time) (Menu, error)
RestoreMenu rebuilds a menu from a trusted store representation.
type MenuButton ¶
type MenuButton struct {
ID int64
MenuID int64
Name string
Description string
CreatedAt time.Time
UpdatedAt time.Time
}
MenuButton is a page-level operation key attached to one menu.
func RestoreMenuButton ¶
func RestoreMenuButton(id, menuID int64, name, description string, createdAt, updatedAt time.Time) (MenuButton, error)
RestoreMenuButton rebuilds a page button from a trusted store representation.
type MenuMeta ¶
type MenuMeta struct {
ActiveName string
KeepAlive bool
DefaultMenu bool
CloseTab bool
TransitionType string
}
MenuMeta stores the router metadata gin-vue-admin keeps beside each menu.
type PermissionDefinition ¶
PermissionDefinition describes one grantable action exposed to role managers.
func PermissionCatalog ¶
func PermissionCatalog() []PermissionDefinition
PermissionCatalog returns the canonical grant list used by seed and UI metadata.
type Role ¶
type Role struct {
ID int64
ParentID int64
Code string
Name string
Permissions []string
MenuIDs []int64
APIIDs []int64
ButtonIDs []int64
DataRoleIDs []int64
DefaultPath string
Active bool
CreatedAt time.Time
UpdatedAt time.Time
}
Role groups permissions, menu visibility, and delegation hierarchy for administrators.
func RestoreRole ¶
func RestoreRole(id, parentID int64, code, name string, permissions []string, menuIDs, apiIDs, buttonIDs, dataRoleIDs []int64, defaultPath string, active bool, createdAt, updatedAt time.Time) (Role, error)
RestoreRole rebuilds a role from a trusted store representation.
func (Role) IsSuperAdmin ¶
IsSuperAdmin reports whether the role is the seeded root administrator role.