Class: Sequel::Privacy::ViewerContext

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

Overview

Represents who is viewing/accessing data. All privacy checks require a ViewerContext.

Direct Known Subclasses

ActorVC, AllPowerfulVC, AnonymousVC, OmniscientVC

Class Method Summary collapse

Class Method Details

.all_powerful(reason) ⇒ Object



26
27
28
29
# File 'lib/sequel/privacy/viewer_context.rb', line 26

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

.anonymousObject



41
42
43
# File 'lib/sequel/privacy/viewer_context.rb', line 41

def self.anonymous
  AnonymousVC.new
end

.for_actor(actor) ⇒ Object



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

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

.for_api_actor(actor) ⇒ Object



19
20
21
# File 'lib/sequel/privacy/viewer_context.rb', line 19

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

.omniscient(reason) ⇒ Object



34
35
36
37
# File 'lib/sequel/privacy/viewer_context.rb', line 34

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