rbac

package
v0.0.0-...-6b90055 Latest Latest
Warning

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

Go to latest
Published: Mar 19, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const SubjectDomainObjectAction = `` /* 263-byte string literal not displayed */

访问实体 (Subject),领域(Domain),访问资源 (Object) 和访问方法 (Action)

View Source
const SubjectObjectAction = `` /* 232-byte string literal not displayed */

访问实体 (Subject),访问资源 (Object) 和访问方法 (Action)

Variables

This section is empty.

Functions

This section is empty.

Types

type ApiPermission

type ApiPermission struct {
	entity.Api
	Group string
	Roles []*entity.Role
}

判断资源需要哪些角色(Resource-Based Access Control,RBAC)

type CacheStrategy

type CacheStrategy interface {
	GetUserPermission(uid string) (*UserPermission, error)
	GetApiPermission(api string) (*ApiPermission, error)
	GetRolePermission(role string) (*RolePermission, error)
	SetUserPermission(uid string, permission *UserPermission) error
	SetApiPermission(api string, permission *ApiPermission) error
	SetRolePermission(role string, permission *RolePermission) error
}

func NewCacheStrategy

func NewCacheStrategy() CacheStrategy

type CachedEnforcer

type CachedEnforcer struct {
	*casbin.SyncedCachedEnforcer
	DB *gorm.DB
	// contains filtered or unexported fields
}

func NewCachedEnforcer

func NewCachedEnforcer(db *gorm.DB) *CachedEnforcer

func (*CachedEnforcer) AddRolePolicy

func (s *CachedEnforcer) AddRolePolicy(roleName string, domain string, apis []*entity.Api) (result interface{}, err error)

添加CasbinRule记录

func (*CachedEnforcer) DeleteRolePolicy

func (s *CachedEnforcer) DeleteRolePolicy(roleName string, domain string) (result interface{}, err error)

删除CasbinRule记录

func (*CachedEnforcer) IsWhileList

func (s *CachedEnforcer) IsWhileList(path string, method string) bool

func (*CachedEnforcer) LoadWhileList

func (s *CachedEnforcer) LoadWhileList(apis []*entity.Api) error

type PermissionHolder

type PermissionHolder struct {
	DbEngin    *gorm.DB
	CacheEngin CacheStrategy
	// contains filtered or unexported fields
}

func (*PermissionHolder) CheckUserAccessApi

func (s *PermissionHolder) CheckUserAccessApi(uid string, path string, method string) error

func (*PermissionHolder) FindApiPermission

func (s *PermissionHolder) FindApiPermission(path string, method string) (*ApiPermission, error)

func (*PermissionHolder) FindUserPermission

func (s *PermissionHolder) FindUserPermission(uid string) (*UserPermission, error)

func (*PermissionHolder) LoadApi

func (s *PermissionHolder) LoadApi(path string, method string) (*ApiPermission, error)

加载api

func (*PermissionHolder) LoadRole

func (s *PermissionHolder) LoadRole(rid string) (*RolePermission, error)

加载角色

func (*PermissionHolder) LoadUser

func (s *PermissionHolder) LoadUser(uid string) (*UserPermission, error)

加载用户

type RbacHolder

type RbacHolder interface {
	// 检查用户是否拥有访问接口权限
	CheckUserAccessApi(uid string, path string, method string) error
	// 查询接口权限信息
	FindApiPermission(path string, method string) (*ApiPermission, error)
	// 查询用户权限信息
	FindUserPermission(uid string) (*UserPermission, error)
}

func NewPermissionHolder

func NewPermissionHolder(db *gorm.DB, logger glog.Logger) RbacHolder

type RolePermission

type RolePermission struct {
	entity.Role
	Apis  []*entity.Api
	Menus []*entity.Menu
}

判断角色拥有哪些资源(Role-Based Access Control,RBAC)

type RuntimeStrategy

type RuntimeStrategy struct {
	UserPermissions map[string]*UserPermission
	ApiPermissions  map[string]*ApiPermission
	RolePermissions map[string]*RolePermission
}

func (*RuntimeStrategy) GetApiPermission

func (s *RuntimeStrategy) GetApiPermission(api string) (*ApiPermission, error)

func (*RuntimeStrategy) GetRolePermission

func (s *RuntimeStrategy) GetRolePermission(role string) (*RolePermission, error)

func (*RuntimeStrategy) GetUserPermission

func (s *RuntimeStrategy) GetUserPermission(uid string) (*UserPermission, error)

func (*RuntimeStrategy) SetApiPermission

func (s *RuntimeStrategy) SetApiPermission(api string, permission *ApiPermission) error

func (*RuntimeStrategy) SetRolePermission

func (s *RuntimeStrategy) SetRolePermission(role string, permission *RolePermission) error

func (*RuntimeStrategy) SetUserPermission

func (s *RuntimeStrategy) SetUserPermission(uid string, permission *UserPermission) error

type UserPermission

type UserPermission struct {
	Roles []*entity.Role
	// contains filtered or unexported fields
}

Jump to

Keyboard shortcuts

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