domain

package
v0.0.0-...-1f1dc5f Latest Latest
Warning

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

Go to latest
Published: Jun 30, 2026 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Package domain contains role, permission, and menu business rules.

Index

Constants

View Source
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"
)
View Source
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

View Source
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.

func RestoreAPI

func RestoreAPI(id int64, method, path, description, group, permission string, public bool, createdAt, updatedAt time.Time) (API, error)

RestoreAPI rebuilds an API route from a trusted store representation.

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 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 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

type PermissionDefinition struct {
	Token    string
	Resource string
	Action   string
	Name     string
}

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

func (r Role) IsSuperAdmin() bool

IsSuperAdmin reports whether the role is the seeded root administrator role.

Jump to

Keyboard shortcuts

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