class Dbhero::RouterConstraint
Public Class Methods
matches?(request, options = {})
click to toggle source
# File lib/dbhero/router_constraint.rb, line 5 def self.matches? request, options = {} _ = new(request, options) _.match? end
new(request, options)
click to toggle source
# File lib/dbhero/router_constraint.rb, line 10 def initialize(request, options) @request = request @options = options @devise_mapping = options[:devise_mapping] || :user @devise_auth = options[:devise_auth] || false @enable_public_clip = options[:enable_public_clip] || false end
Public Instance Methods
match?()
click to toggle source
# File lib/dbhero/router_constraint.rb, line 18 def match? return ((@enable_public_clip && check_if_is_public_dataclip) || (@devise_auth && authenticate_warden && check_custom_condition)) end
Private Instance Methods
auth_condition()
click to toggle source
# File lib/dbhero/router_constraint.rb, line 39 def auth_condition @options[:custom_auth_condition] end
authenticate_warden()
click to toggle source
# File lib/dbhero/router_constraint.rb, line 31 def authenticate_warden @request.env['warden'].send(:authenticate!, scope: @devise_mapping) end
check_custom_condition()
click to toggle source
# File lib/dbhero/router_constraint.rb, line 35 def check_custom_condition auth_condition.is_a?(Proc) && auth_condition.call( @request.env['warden'].user(@devise_mapping) ) end
check_if_is_public_dataclip()
click to toggle source
# File lib/dbhero/router_constraint.rb, line 25 def check_if_is_public_dataclip if @request.path.match(/\/dataclips\/([\w\-]{36}+)(\.[\w]{1,6})?$/) return Dbhero::Dataclip.where(token: $1).exists? end end