rbac

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Oct 8, 2022 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package rbac 简单的 RBAC 权限规则实现

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Install

func Install(mod string, db *orm.DB)

Types

type RBAC

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

RBAC 权限管理类

func New

func New(mod string, db *orm.DB, reasonLogger web.Logger) (*RBAC, error)

New 声明 RBAC 对象

parent 管理此对象的模块; db 数据库对象; reasonLogger 如果不为空,则在此日志上输出是因为什么理由获得了资源的访问权限;

func (*RBAC) DeleteRole

func (rbac *RBAC) DeleteRole(idName string, ctx *web.Context) web.Responser

func (*RBAC) Filter

func (rbac *RBAC) Filter(uid int64, mod string, res string, next web.HandlerFunc) web.HandlerFunc

Filter 验证是否拥有指定的权限

func (*RBAC) GetResourcesHandle

func (rbac *RBAC) GetResourcesHandle(ctx *web.Context) web.Responser

func (*RBAC) GetRoleAllowedResourcesHandle

func (rbac *RBAC) GetRoleAllowedResourcesHandle(idName string, ctx *web.Context) web.Responser

GetRoleAllowedResourcesHandle 获得权限组允许访问的资源列表

func (*RBAC) GetRoleResourcesHandle

func (rbac *RBAC) GetRoleResourcesHandle(idName string, ctx *web.Context) web.Responser

GetRoleResourcesHandle 获得角色可访问的资源列表

func (*RBAC) GetRolesHandle

func (rbac *RBAC) GetRolesHandle(ctx *web.Context) web.Responser

func (*RBAC) IsAllow

func (rbac *RBAC) IsAllow(uid int64, resID string) (allowed bool, err error)

IsAllow 查询 uid 是否拥有访问 resID 的权限

func (*RBAC) IsAllowRoles

func (rbac *RBAC) IsAllowRoles(uid int64, rs []int64) (bool, error)

IsAllowRoles 是否允许 uid 将角色 rs 赋予其它用户

只能应用自己当前角色或是从当前角色继承的子角色赋予其它用户。

func (rbac *RBAC) Link(tx *orm.Tx, uid int64, role ...int64) error

Link 将 uid 与角色进行关联

func (*RBAC) NewRole

func (rbac *RBAC) NewRole(parent int64, name, desc string) (int64, error)

NewRole 声明新的角色

parent 表示父角色,如果从父角色继承,那么可分配的资源也只能是父角色拥有的资源;

func (*RBAC) PostRolesHandle

func (rbac *RBAC) PostRolesHandle(ctx *web.Context) web.Responser

func (*RBAC) PutRoleHandle

func (rbac *RBAC) PutRoleHandle(idName string, ctx *web.Context) web.Responser

func (*RBAC) PutRoleResourcesHandle

func (rbac *RBAC) PutRoleResourcesHandle(idName string, ctx *web.Context) web.Responser

func (*RBAC) RegisterResources

func (rbac *RBAC) RegisterResources(mod string, res map[string]web.LocaleStringer) error

RegisterResources 一次性注册多个资源

module 表示资源 ID 的统一前缀值,一般为模块的 ID,用于区分不同模块下的 ID 相同的资源。

func (*RBAC) Role

func (rbac *RBAC) Role(id int64) *Role

Role 返回角色的相关数据

如果不存在,则返回 nil。

func (rbac *RBAC) Unlink(tx *orm.Tx, uid int64, roleID ...int64) error

Unlink 取消 uid 与 role 的关联

type ResourcesType

type ResourcesType = types.SliceOf[string]

type Role

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

Role 角色信息

Jump to

Keyboard shortcuts

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