Zugriff auf /news/edit für Lehrkraft verboten
Nach der Umstellung auf die SiteMap-DSL mit vereinheitlichten Zugriffsbedingungen wie
wird einer Lehrkraft in der Ansicht http://localhost:8080/news/viewOwn der Zugriff verweigert mit der
Meldung Error: Sie sind kein Administrator! , obwohl der Menüpunkt in Boot.MenuInfo.dslMenuList
korrekt wie folgt für Lehrkräfte definiert ist.
Das gleiche Fehlverhalten tritt beim Löschen eigener Nachrichten mit URI /news/delete auf.
Ich habe schon ausführlich getestet, kann aber die Ursache nicht finden.
Dieses Ticket bezieht sich auf die heutige Revision revision:4bd41b76dc717d9aadef84cce2de537bd477f77d
val IfIsTeacher = If(() => User.loggedInAs(User.Teacher), "Sie sind keine Lehrkraft!")
wird einer Lehrkraft in der Ansicht http://localhost:8080/news/viewOwn der Zugriff verweigert mit der
Meldung Error: Sie sind kein Administrator! , obwohl der Menüpunkt in Boot.MenuInfo.dslMenuList
korrekt wie folgt für Lehrkräfte definiert ist.
Menu("newsEditLoc", "Bearbeiten") / "news" / "edit" >>IfIsTeacher
Das gleiche Fehlverhalten tritt beim Löschen eigener Nachrichten mit URI /news/delete auf.
Ich habe schon ausführlich getestet, kann aber die Ursache nicht finden.
Dieses Ticket bezieht sich auf die heutige Revision revision:4bd41b76dc717d9aadef84cce2de537bd477f77d
Leave a comment
Ansicht "Eigene Nachrichten" mit Link für "Bearbeiten"
Falsche Fehlermeldung nach Klick auf "Bearbeiten"-Link
Eine Ergänzung.
Die Ansicht /news/viewOwn ist zugreifbar.
Jedoch wenn man als knabe@beuth... in dieser Ansicht auf den Link "Bearbeiten" klickt, erscheint die angegebene Fehlermeldung.
Das fehlerhafte Verhalten tritt auch bei völlig neuem Klonen auf:
Die Ansicht /news/viewOwn ist zugreifbar.
Jedoch wenn man als knabe@beuth... in dieser Ansicht auf den Link "Bearbeiten" klickt, erscheint die angegebene Fehlermeldung.
Das fehlerhafte Verhalten tritt auch bei völlig neuem Klonen auf:
git clone git@git.assembla.com:liftbuchcode.git cd liftbuchcode git checkout 4bd41b76dc717d9aadef84cce2de537bd477f77d mvn test mvn jetty:run
Ich habe den Fehler rausgekriegt. Er war durch folgende Zeilen in model.News entstanden:
Diese hatte ich eingebaut, weil ich das deutsche Wort nachricht in der URL http://localhost:8080/nachricht/edit/1 für falsch gehalten hatte. Diese wird in der Admin-Ansicht Nachrichten benutzt.
In der Benutzer-Ansicht Eigene Nachrichten wird die URL http://localhost:8080/news/edit?F929985275148YS4=_ zum Bearbeiten einer eigenen Nachricht verwendet. Durch meine obige Verschlimmbesserung wurden beide mit verschiedenen Rechten behaftete Operationen auf denselben Pfad abgebildet.
Die dadurch doppelte Berechtigungsforderung wirkte sich so aus, dass der erste Eintrag in der SiteMap, der den Pfad /news/edit matcht, Admin-Rechte verlangte. Der zweite mit Teacher-Rechten kam dann gar nicht mehr zum Zuge.
/**Lokaler URI-Präfix dennoch auf Englisch, z.B. in: /news/edit/1 */ override def calcPrefix = List("news")
Diese hatte ich eingebaut, weil ich das deutsche Wort nachricht in der URL http://localhost:8080/nachricht/edit/1 für falsch gehalten hatte. Diese wird in der Admin-Ansicht Nachrichten benutzt.
In der Benutzer-Ansicht Eigene Nachrichten wird die URL http://localhost:8080/news/edit?F929985275148YS4=_ zum Bearbeiten einer eigenen Nachricht verwendet. Durch meine obige Verschlimmbesserung wurden beide mit verschiedenen Rechten behaftete Operationen auf denselben Pfad abgebildet.
Die dadurch doppelte Berechtigungsforderung wirkte sich so aus, dass der erste Eintrag in der SiteMap, der den Pfad /news/edit matcht, Admin-Rechte verlangte. Der zweite mit Teacher-Rechten kam dann gar nicht mehr zum Zuge.
on 2010-09-24 10:58 *
By Christoph Knabe
Assigned to set to knabe
Status changed from New to Fixed
Work remaining changed from 2.0 to 0.0
(In revision:d9db9647a6b4f58ac6574fb51c5d0e61699122e8) Closes #1
Edit/Delete eigener Nachrichten wieder erlaubt.
Branch:master
Edit/Delete eigener Nachrichten wieder erlaubt.
Branch:master