2014-10-09 15 views
6

Ich habe Benutzerrollen: user, manager, admin. Ich muss sie in Controllern (Methoden) authentifizieren. Zum Beispiel nur admin löschen können (jetzt sieht es so aus, müssen sich ändern, dass nur Admin-Berechtigung haben sollten):Play-Framework, Scala: authentifizieren Benutzer nach Rolle

def deleteBook(id: Int) = DBAction { 
    findById(id) match { 
     case Some(entity) => { 
      books.filter(_.id === id).delete 
      Ok("") 
     } 
     case None => Ok("") 
    } 
} 

ich viele Controller und Methoden haben. Ich muss mich vor der Prozessanforderung authentifizieren (z. B. das Löschen des Buchs). Meine routes Datei enthält:

... 
DELETE  /books/:id     @controllers.Book.deleteBook(id: Int) 
... 

Einige Routen sind nur mit dem Server-Betreiber und Manager. Einige sind für alle Arten von Benutzern.

Ich sehe gerade deadbolt2scala Autorisierungsmodul für das Spiel.

Können Sie den besten Weg zur Authentifizierung von mehrsprachigen Benutzern in playframe scala empfehlen?

Antwort

1

Ich habe es geschafft, dies zu tun, indem Sie StackableControllers von https://github.com/t2v/stackable-controller Grundlegend verwende ich eine grundlegende Zugriffskontrollliste von meiner application.conf zur Verfügung gestellt. Ich beginne mit der Überprüfung, ob ein Benutzer in meiner Anfrage ist. Wenn es einen gibt, kann ich überprüfen, ob er über ausreichende Zugriffsrechte verfügt, um die Aktion auszuführen.

Eine solche Funktion kann auch mit der BodyParser-Komposition implementiert werden. Ich habe das aber noch nie getan, daher könnte der Rat eines anderen für dich besser sein.

Verwandte Themen