Class: Rbacan::RouteConstraint
- Inherits:
-
Object
- Object
- Rbacan::RouteConstraint
- Defined in:
- lib/rbacan/route_constraint.rb
Instance Method Summary collapse
-
#initialize(role: nil, permission: nil, user_resolver: nil, context_resolver: nil) ⇒ RouteConstraint
constructor
A new instance of RouteConstraint.
- #matches?(request) ⇒ Boolean
Constructor Details
#initialize(role: nil, permission: nil, user_resolver: nil, context_resolver: nil) ⇒ RouteConstraint
Returns a new instance of RouteConstraint.
3 4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/rbacan/route_constraint.rb', line 3 def initialize(role: nil, permission: nil, user_resolver: nil, context_resolver: nil) if role.nil? && .nil? raise ArgumentError, 'Provide exactly one role: or permission:' end if role && raise ArgumentError, 'Provide exactly one role: or permission:, not both' end @role = role&.to_s = &.to_s @user_resolver = user_resolver @context_resolver = context_resolver end |
Instance Method Details
#matches?(request) ⇒ Boolean
17 18 19 20 21 22 23 24 |
# File 'lib/rbacan/route_constraint.rb', line 17 def matches?(request) return hardened_match?(request) unless Rbacan.legacy_mode user = current_user_from(request) return false unless user @role ? user.has_role?(@role) : user.can?() end |