lib/canner/policy.rb in canner-0.3.0 vs lib/canner/policy.rb in canner-0.4.0
- old
+ new
@@ -26,11 +26,11 @@
# else
# User.none
# end
end
- # implment in your policy class.
+ # implement in your policy class.
# return true when the user can access the action or resource and false when they can't
def can?
raise ArgumentError.new("NOT IMPLEMENTED")
# ex:
# case @method
@@ -47,12 +47,15 @@
prepare(methods).include?(@method)
end
def has_role?(roles)
begin
- @roles.any?{|r| Util.prepare(roles).include?(r.name.to_sym) }
+ @roles.any? do |r|
+ name = r.respond_to?(:name) ? r.name : r.to_s
+ Util.prepare(roles).include?(name.to_sym)
+ end
rescue Exception => e
- raise ArgumentError.new "Canner: Problem fetching user roles. If current_user.roles isn't how you do it see wiki for overriding fetch_roles."
+ raise ArgumentError.new "Canner: Problem fetching user roles. If current_user.roles isn't how you do it see wiki for overriding fetch_roles. #{e}"
end
end
end