Nicht sicher, ob Sie noch daran arbeiten oder was Sie gerade erreichen möchten, aber eine gute Möglichkeit, mit pandit zu arbeiten, besteht darin, mit Benutzeroberflächen zu arbeiten und Benutzerkonten zu erstellen. Der Administrator kann die Rolle eines bestimmten Benutzers in die Rolle ändern, die Sie als Option haben (z. B. Benutzer, vip, Moderator, Editor, Administrator usw.). Der Himmel ist die Grenze dafür, wie komplex Ihre App mit mehreren Rollen sein soll. Die Verwendung von „Enum“ in Ihrem Benutzermodell wird dazu beitragen, Ihre Rolle Optionen führen:
class User < ActiveRecord::Base
enum role: [:user, :vip, :admin]
after_initialize :set_default_role, :if => :new_record?
def set_default_role
self.role ||= :user
end
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
diese Weise können Sie die Standardrolle eines neuen Benutzers einstellen kann ein normaler Benutzer sein, und dann kann der Administrator den Benutzer aktualisieren, um welche Rolle der neue Benutzer auch spielen sollte. Dies sollte in mehrere Anwendungen integriert werden können, wenn Sie eine komplexere App mit mehreren Firmen/Gruppen wünschen. Pundit-Richtlinien und Bereiche werden dann ins Spiel kommen, um zu bestimmen, wer die Berechtigung hat, bestimmte Aktionen in Ihrer App auszuführen. Zum Beispiel:
- ein Admin eine Liste von Benutzern
- ein Admin
- ein Admin und Redakteur kann, aktualisieren Post Rolle eines Benutzers sehen
- einen gewöhnlichen ein Blog, löschen erstellen, bearbeiten kann sich ändern Benutzer können eine Liste der Benutzer
- ein normaler Benutzer nicht ändern kann ihre Rolle sehen
- einen gewöhnlichen Benutzer nicht (oder bearbeiten) eines anderen Benutzers Profil
- ein ordinar sehen y Benutzer können sehen (und bearbeitet) ihr eigenes Benutzerprofil
- ein normaler Benutzer kann nicht bearbeiten, löschen oder aktualisieren, eine Blog-Post
- ein normaler Benutzer kann veröffentlichten Blog-Beiträge sieht
Eine große Ressource zu beginnen ist in der Rails-devise-pundit Beispielanwendung zu folgen, die Sie durch die Einrichtung von Dingen ziemlich gut mit Benutzerrollen gehen wird. Wenn Sie visuell sind, können Sie diesem YouTube-Video folgen: Rails Authorization with Pundit. Dieses Video ist großartig, wenn Sie mit rspec testen möchten, während Sie Ihre Benutzerrollen erstellen.
Hoffentlich steuert dies Sie in die richtige Richtung dessen, was Sie erreichen möchten.