Help us shape the future of Go! Take the 2026 Go Developer Survey

perm

package
v0.3.15 Latest Latest
Warning

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

Go to latest
Published: Apr 3, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AuthVars added in v0.1.27

func AuthVars(ctx context.Context) map[string]any

func CtxWithPerm

func CtxWithPerm(ctx context.Context, perm *RolePermissions) context.Context

Types

type Permission

type Permission struct {
	Object   string         `json:"type_name"`
	Field    string         `json:"field_name"`
	Hidden   bool           `json:"hidden"`
	Disabled bool           `json:"disabled"`
	Filter   map[string]any `json:"filter"`
	Data     map[string]any `json:"data"`
}

type PermissionFieldRule added in v0.3.0

type PermissionFieldRule struct{}

PermissionFieldRule is an InlineRule that checks field access permissions using RolePermissions from the context.

func (*PermissionFieldRule) EnterArgument added in v0.3.0

func (*PermissionFieldRule) EnterDirective added in v0.3.0

func (*PermissionFieldRule) EnterField added in v0.3.0

func (r *PermissionFieldRule) EnterField(ctx *validator.WalkContext, parentDef *ast.Definition, field *ast.Field) gqlerror.List

func (*PermissionFieldRule) EnterFragment added in v0.3.0

type RolePermissions

type RolePermissions struct {
	Name        string       `json:"name"`
	Disabled    bool         `json:"disabled"`
	Permissions []Permission `json:"permissions"`
}

func PermissionsFromCtx

func PermissionsFromCtx(ctx context.Context) *RolePermissions

func (*RolePermissions) CheckMutationInput

func (r *RolePermissions) CheckMutationInput(ctx context.Context, defs base.DefinitionsSource, inputName string, data map[string]any) error

func (*RolePermissions) CheckQuery

func (r *RolePermissions) CheckQuery(query *ast.Field) error

func (*RolePermissions) DataArgument

func (r *RolePermissions) DataArgument(ctx context.Context, object, field string) map[string]any

func (*RolePermissions) Enabled

func (r *RolePermissions) Enabled(object, field string) (*Permission, bool)

func (*RolePermissions) FilterArgument

func (r *RolePermissions) FilterArgument(ctx context.Context, object, field string) map[string]any

func (*RolePermissions) Visible

func (r *RolePermissions) Visible(object, field string) (*Permission, bool)

type Service

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

func New

func New(qe types.Querier) *Service

func (*Service) ContextWithPermissions

func (s *Service) ContextWithPermissions(ctx context.Context) (context.Context, error)

func (*Service) RolePermissions

func (s *Service) RolePermissions(ctx context.Context) (RolePermissions, error)

type Store

type Store interface {
	// ContextWithPermissions returns a new context with the permissions of the user.
	ContextWithPermissions(ctx context.Context) (context.Context, error)
	RolePermissions(ctx context.Context) (RolePermissions, error)
}

Store manager that provides methods to to retrieve Role permissions info from context.

Jump to

Keyboard shortcuts

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