module Adeia::ControllerMethods
Public Class Methods
included(base)
click to toggle source
# File lib/adeia/controller_methods.rb, line 20 def self.included(base) base.extend ClassMethods base.helper_method :can?, :rights? end
Public Instance Methods
can?(action, element, resource=nil)
click to toggle source
# File lib/adeia/controller_methods.rb, line 54 def can?(action, element, resource=nil) controller, resource = ControllerResource.get_controller_and_resource(element, resource) ControllerResource.new(self, action: action, controller: controller, resource: resource).authorized?(:can?) end
load_records(**args)
click to toggle source
# File lib/adeia/controller_methods.rb, line 38 def load_records(**args) controller_resource = ControllerResource.new(self, **args) return controller_resource.load_records end
redirect_back_or(default, **args)
click to toggle source
Redirect the user to the stored url or the default one provided
-
Args :
-
default path to redirect to
-
-
Returns :
# File lib/adeia/controller_methods.rb, line 71 def redirect_back_or(default, **args) redirect_to(cookies[:return_to] || default, **args) cookies.delete(:return_to) end
require_login!()
click to toggle source
# File lib/adeia/controller_methods.rb, line 47 def require_login! unless signed_in? store_location raise LoginRequired end end
rights?(action, element, resource=nil)
click to toggle source
# File lib/adeia/controller_methods.rb, line 59 def rights?(action, element, resource=nil) controller, resource = ControllerResource.get_controller_and_resource(element, resource) ControllerResource.new(self, action: action, controller: controller, resource: resource).authorized?(:rights?) end
store_location()
click to toggle source
Store the current url in a cookie
-
Args :
-
Returns :
# File lib/adeia/controller_methods.rb, line 82 def store_location if request.get? && Adeia.api_patterns.all? { |pattern| /^#{pattern}$/.match(request.path).nil? } cookies[:return_to] = { value: request.fullpath, expires: 2.minutes.from_now } end end