Class: Sequel::Privacy::ViewerContext

Inherits:
Object
  • Object
show all
Extended by:
T::Helpers, T::Sig
Defined in:
lib/sequel/privacy/viewer_context.rb

Overview

ViewerContext represents who is viewing/accessing data. All privacy checks require a viewer context to determine what the viewer can see.

Direct Known Subclasses

ActorVC, AllPowerfulVC, AnonymousVC, OmniscientVC

Class Method Summary collapse

Class Method Details

.all_powerful(reason) ⇒ Object



28
29
30
31
# File 'lib/sequel/privacy/viewer_context.rb', line 28

def self.all_powerful(reason)
  Sequel::Privacy.logger&.info("Creating all-powerful viewer context: #{reason}")
  AllPowerfulVC.new(reason)
end

.anonymousObject



44
45
46
# File 'lib/sequel/privacy/viewer_context.rb', line 44

def self.anonymous
  AnonymousVC.new
end

.for_actor(actor) ⇒ Object



15
16
17
# File 'lib/sequel/privacy/viewer_context.rb', line 15

def self.for_actor(actor)
  ActorVC.new(actor)
end

.for_api_actor(actor) ⇒ Object



21
22
23
# File 'lib/sequel/privacy/viewer_context.rb', line 21

def self.for_api_actor(actor)
  APIVC.new(actor)
end

.omniscient(reason) ⇒ Object



36
37
38
39
# File 'lib/sequel/privacy/viewer_context.rb', line 36

def self.omniscient(reason)
  Sequel::Privacy.logger&.debug("Creating omniscient viewer context: #{reason}")
  OmniscientVC.new(reason)
end