lib/adeia/controller_resource.rb in adeia-0.11.9 vs lib/adeia/controller_resource.rb in adeia-0.11.10

- old
+ new

@@ -24,10 +24,21 @@ def self.require_login(controller) controller.require_login! end + def self.get_controller_and_resource(element, resource) + if element.is_a? String + return element, resource + elsif element.is_a? ActiveRecord::Base + return controller_name(element), element + elsif element.is_a? Array + resource = element.second + return "#{element.first}/#{controller_name(resource)}", resource + end + end + def initialize(controller, **args) @controller = controller @action_name = args.fetch(:action, @controller.action_name) @controller_name = args.fetch(:controller, @controller.controller_path) @token = args.fetch(:token, @controller.request.GET[:token]) @@ -72,13 +83,12 @@ def check_permissions! authorization.check_permissions! end - def authorized?(method, element, resource) - @controller_name, @resource = get_controller_and_resource(element, resource) - instance_variable_get_or_set(method) + def authorized?(method) + @controller.instance_variable_get(var_name(method)) || @controller.instance_variable_set(var_name(method), authorization.send(method)) end private def resource_class @@ -95,32 +105,17 @@ def resource_name @model.model_name.element end - def controller_name(resource) - resource.model_name.collection - end - def var_name(method) [method, @controller_name, @action_name, @resource.try(:model_name).try(:human), @resource.try(:id)].compact.map do |s| s.to_s.gsub("/", "_").delete("?") end.join("_").prepend("@") end - def instance_variable_get_or_set(method) - @controller.instance_variable_get(var_name(method)) || @controller.instance_variable_set(var_name(method), authorization.send(method)) - end - - def get_controller_and_resource(element, resource) - if element.is_a? String - return element, resource - elsif element.is_a? ActiveRecord::Base - return controller_name(element), element - elsif element.is_a? Array - resource = element.second - return "#{element.first}/#{controller_name(resource)}", resource - end + def self.controller_name(resource) + resource.model_name.collection end end end