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