Class: Sequel::Privacy::ViewerContext
- Inherits:
-
Object
- Object
- Sequel::Privacy::ViewerContext
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.
Class Method Summary
collapse
Instance 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
|
.anonymous ⇒ Object
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
|
Instance Method Details
#assert_usable! ⇒ Object
52
53
54
55
56
57
|
# File 'lib/sequel/privacy/viewer_context.rb', line 52
def assert_usable!
return unless invalidated?
Kernel.raise InvalidatedViewerContext,
"#{self.class.name.to_s.split('::').last} was invalidated and cannot be used again"
end
|
#invalidated? ⇒ Boolean
46
47
48
49
|
# File 'lib/sequel/privacy/viewer_context.rb', line 46
def invalidated?
@invalidated = T.let(@invalidated, T.nilable(T::Boolean))
@invalidated || false
end
|