Frage zu Sicherheit beim Zugriff auf Seiten
Verfasst: Donnerstag 19. Januar 2023, 16:47
Die Lehrkraft (ich will nicht immer "die Lehrerinn bzw. der Lehrer" schreiben), kann die Aufgaben selbst ausprobieren und natürlich auch eine Übersicht dieser Aufgaben anzeigen lassen, sie kann auch die Arbeiten der ganzen Lerngruppe (das war mein letztes Posting) anzeigen lassen, aber auch noch die Arbeitsergebnisse jeder einzelnen Schülerin bzw. jeder/s einzelnen (S/S). Dazu gibt es verschiedene Möglichkeiten. Z.B. kann sie ein Protokoll der letzten Aufgaben aufrufen. Dazu übergebe ich bei Klick die id von S/S z.B. "... protokoll/13/". Nun darf aber natürlich nur der/die S/S sein/ihr Protokoll einsehen und niemand, der einfach ids ausprobiert. Erschwerend kommt hinzu, dass die Lehrkraft andere Berechtigungen hat, sie darf z.B. ihre eigenen Arbeitsergebnisse löschen, die der/des S/S nicht. Dazu habe ich jetzt z.B. im view vom Protokoll eine Abfrage eingebaut, die so aussieht:
Was besseres ist mir nicht eingefallen. Macht das so Sinn oder habt ihr da andere Ideen?
Code: Alles auswählen
def protokoll(req, schueler_id=0):
if req.user.is_authenticated:
if User.objects.filter(pk=req.user.id, groups__name='Lehrer').exists():
lehrer = True
else:
lehrer = False
loeschen = False
if schueler_id == 0:
user = get_object_or_404(Profil, user_id = req.user.id)
if lehrer:
loeschen = True
else:
user = get_object_or_404(Profil, id = schueler_id)
protokoll = Protokoll.objects.filter(user=user).order_by('id').reverse()
if(user.id) != (req.user.profil.id) and (user.gruppe.lehrer.id) != (req.user.id):
return HttpResponse("Zugriff verweigert")
...