Class: AdminConstraint
- Inherits:
-
Object
- Object
- AdminConstraint
- Defined in:
- lib/admin_constraint.rb
Instance Method Summary collapse
-
#custom_admin_check(request) ⇒ Object
Extensibility point: plugins can overwrite this to add additional checks if they require.
-
#initialize(options = {}) ⇒ AdminConstraint
constructor
A new instance of AdminConstraint.
- #matches?(request) ⇒ Boolean
Constructor Details
#initialize(options = {}) ⇒ AdminConstraint
Returns a new instance of AdminConstraint.
4 5 6 |
# File 'lib/admin_constraint.rb', line 4 def initialize( = {}) @require_master = [:require_master] end |
Instance Method Details
#custom_admin_check(request) ⇒ Object
Extensibility point: plugins can overwrite this to add additional checks if they require.
18 19 20 |
# File 'lib/admin_constraint.rb', line 18 def custom_admin_check(request) true end |
#matches?(request) ⇒ Boolean
8 9 10 11 12 13 14 |
# File 'lib/admin_constraint.rb', line 8 def matches?(request) return false if @require_master && RailsMultisite::ConnectionManagement.current_db != "default" current_user = CurrentUser.lookup_from_env(request.env) current_user&.admin? && custom_admin_check(request) rescue Discourse::InvalidAccess, Discourse::ReadOnly false end |