lib/adeia/controller_resource.rb in adeia-0.8.6 vs lib/adeia/controller_resource.rb in adeia-0.9.0
- old
+ new
@@ -71,13 +71,17 @@
def check_permissions!
authorization.check_permissions!
end
def can?
- authorization.can?
+ instance_variable_get_or_set(:can?)
end
+ def rights?
+ instance_variable_get_or_set(:rights?)
+ end
+
private
def resource_class
begin
@controller.controller_path.classify.constantize
@@ -86,9 +90,19 @@
end
end
def resource_name
resource_class.model_name.element
+ end
+
+ def var_name(method)
+ [method, @controller_name, @action_name, @resource.try(:model_name).try(:human), @resource.try(:id)].map do |s|
+ s.to_s.gsub("/", "_").delete("?") if s
+ end.compact.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
# Store the current url in a cookie
#
\ No newline at end of file