rbac

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Feb 24, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CacheAdapter

type CacheAdapter interface {
	Get(key string) (interface{}, error)
	Set(key string, value interface{}, ttl int64) error
	Delete(key string) error
}

CacheAdapter 缓存适配器接口

type Permission

type Permission struct {
	RoleCode  string    `json:"role_code"`
	Domain    string    `json:"domain"`
	Resource  string    `json:"resource"`
	Action    string    `json:"action"`
	CreatedAt time.Time `json:"created_at"`
}

Permission 权限

type Policy

type Policy struct {
	Subject string `json:"subject"`
	Domain  string `json:"domain"`
	Object  string `json:"object"`
	Action  string `json:"action"`
}

Policy 策略

type RBACManager

type RBACManager struct {
	// contains filtered or unexported fields
}

RBACManager RBAC 管理器

func NewRBACManager

func NewRBACManager(adapter *casbinadapter.EntAdapter, cache CacheAdapter) (*RBACManager, error)

NewRBACManager 创建 RBAC 管理器

func (*RBACManager) AddPermission

func (m *RBACManager) AddPermission(ctx context.Context, roleCode, domain, resource, action string) error

AddPermission 添加域内权限

func (*RBACManager) AddPolicies

func (m *RBACManager) AddPolicies(ctx context.Context, policies [][]string) error

AddPolicies 批量添加策略

func (*RBACManager) AddPolicy

func (m *RBACManager) AddPolicy(ctx context.Context, subject, domain, object, action string) error

AddPolicy 添加域内策略

func (*RBACManager) AddRoleInheritance

func (m *RBACManager) AddRoleInheritance(ctx context.Context, childRoleCode, parentRoleCode, domain string) error

AddRoleInheritance 在域内添加角色继承关系(子角色继承父角色)

func (*RBACManager) AssignRole

func (m *RBACManager) AssignRole(ctx context.Context, userUUID, roleCode, domain string) error

AssignRole 在域内分配角色给用户

func (*RBACManager) BatchCheckPermission

func (m *RBACManager) BatchCheckPermission(ctx context.Context, userUUID string, permissions []Permission) (map[string]bool, error)

BatchCheckPermission 批量权限检查

func (*RBACManager) CheckPermission

func (m *RBACManager) CheckPermission(ctx context.Context, userUUID, domain, resource, action string) (bool, error)

CheckPermission 域内权限检查

func (*RBACManager) ClearPolicy

func (m *RBACManager) ClearPolicy(ctx context.Context) error

ClearPolicy 清空所有策略

func (*RBACManager) CreateRole

func (m *RBACManager) CreateRole(ctx context.Context, code, name string) error

CreateRole 创建角色

func (*RBACManager) DeleteRole

func (m *RBACManager) DeleteRole(ctx context.Context, code string) error

DeleteRole 删除角色

func (*RBACManager) Enforcer

func (m *RBACManager) Enforcer() *casbinlib.Enforcer

Enforcer returns the underlying Casbin enforcer for advanced domain-aware use cases.

func (*RBACManager) GetPermissions

func (m *RBACManager) GetPermissions(ctx context.Context, roleCode, domain string) ([]*Permission, error)

GetPermissions 获取角色域内权限

func (*RBACManager) GetPolicy

func (m *RBACManager) GetPolicy(ctx context.Context) ([]*Policy, error)

GetPolicy 获取所有策略

func (*RBACManager) GetRoleInheritance

func (m *RBACManager) GetRoleInheritance(ctx context.Context, roleCode, domain string) ([]string, error)

GetRoleInheritance 获取角色的域内父角色

func (*RBACManager) GetRoles

func (m *RBACManager) GetRoles(ctx context.Context) ([]*Role, error)

GetRoles 获取所有角色

func (*RBACManager) GetUserRoles

func (m *RBACManager) GetUserRoles(ctx context.Context, userUUID, domain string) ([]*Role, error)

GetUserRoles 获取用户域内角色

func (*RBACManager) LoadPolicy

func (m *RBACManager) LoadPolicy() error

LoadPolicy 加载策略

func (*RBACManager) RemovePermission

func (m *RBACManager) RemovePermission(ctx context.Context, roleCode, domain, resource, action string) error

RemovePermission 移除域内权限

func (*RBACManager) RemovePolicies

func (m *RBACManager) RemovePolicies(ctx context.Context, policies [][]string) error

RemovePolicies 批量移除策略

func (*RBACManager) RemovePolicy

func (m *RBACManager) RemovePolicy(ctx context.Context, subject, domain, object, action string) error

RemovePolicy 移除域内策略

func (*RBACManager) RemoveRoleInheritance

func (m *RBACManager) RemoveRoleInheritance(ctx context.Context, roleCode, domain string) error

RemoveRoleInheritance 移除角色的域内继承关系

func (*RBACManager) RevokeRole

func (m *RBACManager) RevokeRole(ctx context.Context, userUUID, roleCode, domain string) error

RevokeRole 在域内撤销角色

func (*RBACManager) SavePolicy

func (m *RBACManager) SavePolicy() error

SavePolicy 保存策略

type Role

type Role struct {
	Code        string    `json:"code"`
	Name        string    `json:"name"`
	Description string    `json:"description"`
	CreatedAt   time.Time `json:"created_at"`
}

Role 角色

Jump to

Keyboard shortcuts

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