Module: ReadOnlyMixin
- Included in:
- ApplicationController, ForumsController
- Defined in:
- lib/read_only_mixin.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #add_readonly_header ⇒ Object
- #allowed_in_staff_writes_only_mode? ⇒ Boolean
- #block_if_readonly_mode ⇒ Object
- #check_readonly_mode ⇒ Object
- #staff_writes_only_mode? ⇒ Boolean
Class Method Details
.included(base) ⇒ Object
54 55 56 |
# File 'lib/read_only_mixin.rb', line 54 def self.included(base) base.extend(ClassMethods) end |
Instance Method Details
#add_readonly_header ⇒ Object
35 36 37 |
# File 'lib/read_only_mixin.rb', line 35 def add_readonly_header response.headers["Discourse-Readonly"] = "true" if @readonly_mode end |
#allowed_in_staff_writes_only_mode? ⇒ Boolean
39 40 41 |
# File 'lib/read_only_mixin.rb', line 39 def allowed_in_staff_writes_only_mode? self.class.allowed_in_staff_writes_only_mode?(action_name) end |
#block_if_readonly_mode ⇒ Object
43 44 45 46 47 48 49 50 51 52 |
# File 'lib/read_only_mixin.rb', line 43 def block_if_readonly_mode return if request.fullpath.start_with?(path "/admin/backups") return if request.get? || request.head? if @staff_writes_only_mode raise Discourse::ReadOnly.new if !current_user&.staff? && !allowed_in_staff_writes_only_mode? elsif @readonly_mode raise Discourse::ReadOnly.new end end |
#check_readonly_mode ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/read_only_mixin.rb', line 22 def check_readonly_mode if Discourse.readonly_mode? @readonly_mode = true @staff_writes_only_mode = false elsif Discourse.staff_writes_only_mode? @readonly_mode = true @staff_writes_only_mode = true else @readonly_mode = false @staff_writes_only_mode = false end end |
#staff_writes_only_mode? ⇒ Boolean
18 19 20 |
# File 'lib/read_only_mixin.rb', line 18 def staff_writes_only_mode? @staff_writes_only_mode end |