Ich versuche, bestimmte Zugriffsbeschränkungen für meine Website einzurichten, was bedeutet, dass ich die Admin, um andere Seiten als der normale Benutzer zu sehen. Ich habe Gerät für die Benutzerauthentifizierung verwendet und kann die Zugriffsbeschränkung einsehen. Leider bin ich nicht ganz sicher, wie man es mit cancancan umsetzt.Ruby on Rails5/cancancan/devise - Implementieren von Zugriffsbeschränkungen für verschiedene Benutzer (dh Benutzer A sieht andere Seiten als Benutzer B)
Ich markierte die Benutzer, indem Sie ihnen 2 verschiedene Rollen (booleans) - admin und Wohltätigkeitsorganisation zuweisen. Grundsätzlich möchte ich, dass der Administrator auf Seite A landet, wenn er sich anmeldet, und er sollte auch Zugang zu Seite B und C (und dem rails_admin) haben. Der Charity-Benutzer sollte auf Seite D landen und Zugang zu Seite E und F. hat
ich das Hinzufügen versuchte den folgenden Code app/Modell/ability.rb aber leider ohne Erfolg:
user ||= User.new # guest user (not logged in)
if user.admin_role?
can :manage, :page A
can :manage, :page B
can :manage, :page C
can :access, :rails_admin # only allow admin users to access Rails Admin
end
if user.charity_role?
can :manage, page D
can :manage, page E
can :manage, page F
end
Weiß jemand, was ich ändern soll? Und wie stelle ich sicher, dass der Administrator auf Seite A landet und die Charity auf der Seite D landet, nachdem er sich eingeloggt hat?
Ich wäre dankbar für jede Hilfe!
Wo Sie 'Seite X' haben in der Regel ein Objekt der Klasse sein soll, dass Sie den Zugriff auf (Fähigkeit) geben, so dass ich bin ein bisschen verwirrt über das, was Sie erwarten. Vielleicht sehen Sie hier [link] (https://github.com/CanCanCommunity/cancancan/wiki/defining-abilities). Die Seiten, die dem Benutzer angezeigt werden, werden dann von den Controllern und Ansichten gesteuert. – brod
Oh okay, also ist dies nicht der richtige Ort, um festzulegen, auf welche Seiten der Administrator Zugriff hat und auf welche der Benutzer Zugriff hat? – Christina
Danke für den Link übrigens. Es war hilfreich zu lesen, obwohl es meine Frage nicht vollständig geklärt hat – Christina