rbac

package
v1.0.0-rc.2 Latest Latest
Warning

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

Go to latest
Published: Feb 28, 2019 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 GormStore

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

GormStore rbac.OverrideStoreインターフェイスの実装

func (*GormStore) DeleteOverride

func (s *GormStore) DeleteOverride(userID uuid.UUID, p gorbac.Permission) error

DeleteOverride オーバライドルールを削除します

func (*GormStore) GetAllOverrides

func (s *GormStore) GetAllOverrides() ([]OverrideData, error)

GetAllOverrides オーバライドルールを全て取得します

func (*GormStore) SaveOverride

func (s *GormStore) SaveOverride(userID uuid.UUID, p gorbac.Permission, validity bool) error

SaveOverride オーバライドルール保存します

type Override

type Override struct {
	UserID     uuid.UUID `gorm:"type:char(36);primary_key"`
	Permission string    `gorm:"type:varchar(50);primary_key"`
	Validity   bool
	CreatedAt  time.Time `gorm:"precision:6"`
	UpdatedAt  time.Time `gorm:"precision:6"`
}

Override rbac.OverrideDataインターフェイスの実装

func (*Override) GetPermission

func (o *Override) GetPermission() gorbac.Permission

GetPermission パーミッションを取得

func (*Override) GetUserID

func (o *Override) GetUserID() uuid.UUID

GetUserID ユーザーIDを取得

func (*Override) GetValidity

func (o *Override) GetValidity() bool

GetValidity 有効性を取得

func (*Override) TableName

func (*Override) TableName() string

TableName RBACのオーバライドルールのテーブル名

type OverrideData

type OverrideData interface {
	GetUserID() uuid.UUID
	GetPermission() gorbac.Permission
	GetValidity() bool
}

OverrideData : RBACのオーバライドルールのインターフェイス

type OverrideStore

type OverrideStore interface {
	GetAllOverrides() ([]OverrideData, error)
	SaveOverride(userID uuid.UUID, p gorbac.Permission, validity bool) error
	DeleteOverride(userID uuid.UUID, p gorbac.Permission) error
}

OverrideStore : RBACのオーバーライドルールの永続化用ストアインターフェイス

type RBAC

type RBAC struct {
	*gorbac.RBAC
	// contains filtered or unexported fields
}

RBAC : Role-Based Access Controller extending gorbac

func New

func New(store Store) (*RBAC, error)

New : 空のRBACを生成します

func (*RBAC) DeleteOverride

func (rbac *RBAC) DeleteOverride(userID uuid.UUID, p gorbac.Permission) (err error)

DeleteOverride : 指定したユーザーの指定したパーミッションのオーバーライドルールを削除します

func (*RBAC) GetOverride

func (rbac *RBAC) GetOverride(userID uuid.UUID) (result map[gorbac.Permission]bool)

GetOverride : 指定したユーザーに付与されているオーバライドルールを取得します

func (*RBAC) IsGranted

func (rbac *RBAC) IsGranted(userID uuid.UUID, roleID string, p gorbac.Permission) bool

IsGranted tests if the role `ID` has Permission `p`. it may be overridden according to userID.

func (*RBAC) SetOverride

func (rbac *RBAC) SetOverride(userID uuid.UUID, p gorbac.Permission, validity bool) (err error)

SetOverride : 指定したユーザーにオーバーライドルールを付与します

type Store

type Store interface {
	OverrideStore
}

Store : RBACのルール永続化用ストアインターフェイス

func NewDefaultStore

func NewDefaultStore(db *gorm.DB) (Store, error)

NewDefaultStore RBACのルール永続化用ストアを生成します

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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