2016-08-07 24 views
0

Ich versuche, Rollen in meiner Rails-App mit Rolify einzurichten.Rails 4 - Rolify mit Erneuerungsdatum für Rolle

Ich habe ein CRUD-Modell-Setup für Rollen. Ich bin dabei, zu erkunden, wie bestimmte Benutzer anderen Benutzern Benutzerbereiche zuweisen können.

Gibt es eine Möglichkeit, dass ich Benutzern, die Rollen zuweisen dürfen, erlauben kann, ein Verlängerungsdatum anzugeben, mit dem sie bestätigen müssen, dass der Benutzer in dieser Rolle fortfährt?

Momentan hat meine Rollentabelle nur Verknüpfungen zu Ressource und Benutzer und ein Zeichenfolgenattribut namens name (für den Namen der Rolle).

Kann ich einen booleschen Wert für "true/false" hinzufügen, wenn die Rolle ein Ablaufdatum hat, und wenn dies der Fall ist, wenn eine Verlängerungsbenachrichtigung ausgegeben werden soll?

Gibt es einen besseren Weg, dies zu tun?

Antwort

0

Dies kann eine gute Idee sein:

  1. eine Tabelle für Rollen und Berechtigung zum Erstellen.
  2. fügen Sie ein Feld has_expired in dieser Tabelle hinzu.
  3. Wenn Sie das Ablaufdatum der Berechtigungsgruppe speichern.
  4. Wenn Benutzer Logins Test Ablaufdatum.
  5. dann auf true
  6. has_expired setzen, wenn Sie cancancan gem dann in ability.rb Modell verwenden:

    if user.role.has_expired? cannot :manage, Role end

Hoffnung hilft es

+0

@Pradeep_Sapkota - danke. Ich benutze Pandit für Berechtigungen. Meinst du ich füge das has_expired Feld der Rollentabelle hinzu? Ich könnte dann mit Pundit jeden ausschließen, dessen Rolle abgelaufen ist. In diesem Fall sollte ich der Rollentabelle ein Datumsfeld hinzufügen, um ein Ablaufdatum zu setzen – Mel

+0

Entschuldigung, ich benutze Devise mit Cancan und ich weiß nichts über Pandit. –