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