class ApiValve::Middleware::PermissionCheck
Public Class Methods
new(app, options = {})
click to toggle source
# File lib/api_valve/middleware/permission_check.rb, line 3 def initialize(app, options = {}) @app = app @options = options end
Public Instance Methods
call(env)
click to toggle source
# File lib/api_valve/middleware/permission_check.rb, line 8 def call(env) env['permission_handler'] = @handler if handler(env).allowed? @app.call(env) else message = handler(env).message ApiValve.logger.debug { message } render_error ApiValve::Error::Forbidden.new message end end
Private Instance Methods
handler(env)
click to toggle source
# File lib/api_valve/middleware/permission_check.rb, line 21 def handler(env) env['permission_handler'] ||= handler_klass.new( env, @options.merge(env['api_valve.router.route'].options[:permission_handler] || {}) ) end
handler_klass()
click to toggle source
# File lib/api_valve/middleware/permission_check.rb, line 28 def handler_klass @options[:klass] || ApiValve::PermissionHandler end
render_error(error)
click to toggle source
# File lib/api_valve/middleware/permission_check.rb, line 32 def render_error(error) self.class.const_get(ApiValve.error_responder).new(error).call end