Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewContext

func NewContext(parent context.Context, v Viewer) context.Context

    NewContext returns a copy of parent context with the given Viewer attached with it.

    Types

    type AppViewer

    type AppViewer struct {
    	Role Role // Attached roles.
    }

      AppViewer describes an app-viewer.

      func (AppViewer) Admin

      func (v AppViewer) Admin() bool

      func (AppViewer) Can

      func (v AppViewer) Can(r Role) bool

      func (AppViewer) Teams

      func (v AppViewer) Teams(context.Context) ([]string, error)

      type Role

      type Role int

        Role for viewer actions.

        const (
        	Admin Role
        	Edit
        	View
        )

          List of roles.

          type UserViewer

          type UserViewer struct {
          	User *ent.User // Actual user.
          	Role Role      // Attached roles.
          }

            UserViewer describes a user-viewer.

            func (UserViewer) Admin

            func (v UserViewer) Admin() bool

            func (UserViewer) Can

            func (v UserViewer) Can(r Role) bool

            func (UserViewer) Teams

            func (v UserViewer) Teams(ctx context.Context) ([]string, error)

            type Viewer

            type Viewer interface {
            	Teams(context.Context) ([]string, error) // Team to query (tenant == team).
            	Admin() bool                             // If viewer is admin.
            	Can(Role) bool                           // If viewer is able to apply role action.
            }

              Viewer describes the query/mutation viewer-context.

              func FromContext

              func FromContext(ctx context.Context) Viewer

                FromContext returns the Viewer stored in a context.

                Source Files