Rails authority apparent inconsistency

53 views Asked by At

I am using the gems authority and rolify to manage user permissions on a set of subjects. Each subject can be seen by a user only if the user has the :admin role for that subject. Code in the view:

   <% if (current_user.has_role? :admin, @subject) %>
        ADMIN
    <% end %>

    <% if @subject.readable_by?(current_user)%>

    #some other code

    <% end %>

Code in the authorizer:

class SubjectAuthorizer < ApplicationAuthorizer
  # can the user view the subject?
  def self.readable_by?(user)
    user.has_role? :admin, @subject
  end

end

My problem is that the ADMIN part is displayed, but not the rest of the page. However, the two if conditions should have the same truth value. Can anyone spot a mistake?

1

There are 1 answers

0
Jiří Pospíšil On BEST ANSWER

@subject is not available in the Authorizer. You need to use resource instead.