Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aktuelle Fächer: Beim Studiengang auf Anlassleitung einschränken - 0.5PT #723

Open
fbufbi opened this issue Jul 30, 2024 · 5 comments
Open
Labels
module-Anlassliste Feature für das Modul "Liste der Anlässe"

Comments

@fbufbi
Copy link
Collaborator

fbufbi commented Jul 30, 2024

Ausgangslage: Mit bestimmten Rechten (NG-Rechte) sehen Personen alle unter "Unterricht > Aktuelle Fächer" alle Studiengänge (EventTypeId==1), da wir keine X-Role-Restriction anwenden können.
Lösung: Die Anzeige von Studiengängen soll auf jene eingeschränkt werden, auf denen die eingeloggte Person als Leitung hinterlegt ist.

Workaround:

  • Für EventType=1 ist der fullname im Token mit /Events, Feld Leadership zu vergleichen.
  • Es handelt sich um das Textfeld Leitung (Publikation) in Evento NG
  • Wenn mehrere Leitungen zu einem Studiengang gehören, müssen sie kommagetrennt erfasst werden, z.B. Muster Anna, Beispiel Maximilian.

Mit dem folgenden Request kann auf dem EventType=1 geprüft werden, ob die angemeldete Person AnlassLeitung auf dem Studiengang ist: EventLeaderships/?filter.PersonId=={token.PersonId}&fileds=EventId,PersonId
=> Es sollen nur jene Studiengänge angezeigt werden, auf denen die Person Anlassleitung ist.

Gestrichen: /EventLeaderships ist über den Tutoring-Scope nicht erreichbar.

Beispiel: GymBivo, [email protected]

@fbufbi fbufbi added the module-Anlassliste Feature für das Modul "Liste der Anlässe" label Jul 30, 2024
@github-project-automation github-project-automation bot moved this to Sprint-Backlog in Gravatscha Jul 30, 2024
@Amasit Amasit changed the title Aktuelle Fächer: Beim Studiengang auf Anlassleitung einschränken Aktuelle Fächer: Beim Studiengang auf Anlassleitung einschränken - 0.5PT Sep 5, 2024
@hupf
Copy link
Collaborator

hupf commented Nov 26, 2024

@fbufbi Gemäss meinem Verständnis der Spezifikation, sollten nur alle Events angezeigt werden, deren Id in der Response von EventLeaderships/?filter.PersonId=={token.PersonId}&fileds=EventId,PersonId ist. Doch dieser Request ist mit unserem Token (welches ja Scope Tutoring hat) nicht möglich, ich erhalte ein 403 mit folgendem Body:

"Application scope Tutoring does not allow access to GET http:\/\/evento-test.apps.be.ch:17003\/ApiProtect\/EventLeaderships\/?filter.PersonId==1679&fields=EventId,PersonId"

Ich verstehe auch das Problem noch nicht ganz:

  • Wie können Personen NG-Rechte haben, wenn unser Token ja immer den Scope Tutoring hat und man also mit Tutoring-Rechten unterwegs ist?
  • Was bedeutet «kann auf dem EventType=1 geprüft werden, ob die angemeldete Person AnlassLeitung auf dem Studiengang ist»? Werden diese EventLeaderships schon nach EventType=1 gefiltered? Oder müssen wir das noch irgendwie machen?

@fbufbi
Copy link
Collaborator Author

fbufbi commented Nov 26, 2024

@hupf Ich versuche, das Problem anders zu formulieren:
Neben der korrekten Anzeige der eigenen Klassen (aktive StudyClasses, z.B. 28aG) und Fächer (Courses, z.B. Bildnerisches Gestalten-KU, 28aG) werden zurzeit alle Studiengänge (EventType = 1, z.B. BME, ECG, GYM, Gymnasialer Bildungsgang) aufgeführt, die in der DB vorhanden sind. Studiengänge (EventType = 1) dürfen aber nur angezeigt werden, wenn ich als eingeloggte Person selber effektiv die Anlassleitung inne habe - wie dies bereits bei den Klassen & Fächern der Fall ist.

IST:
image

Es geht also darum herauszufinden, bei welchen Studiengängen die eingeloggte Person Anlassleitung ist. EventLeaderships wird nicht bereits nach EventType=1 gefiltert. In diesem Endpunkt gibt es die EventId (ID des Anlasses, in diesem Fall des Studiengangs) und die PersonId, die der ID der Anlassleitung entspricht. Nur wenn diese PersonId mit der eingeloggten Person übereinstimmt, soll der Studiengang angezeigt werden.

Ergibt dies so mehr Sinn?

@hupf
Copy link
Collaborator

hupf commented Nov 26, 2024

@fbufbi Okay, das macht Sinn. D.h. es geht wirklich nur draum nachzuschauen ob die Person Leader ist, mit EventType=1 wird nur das IST-Verhalten beschrieben.

Der Blocker ist in diesem Fall dass wir mit dem Tutoring Token diese Information nicht abrufen können. Gibt es hier eine Alternative Möglichkeit? Oder bracht es einen Change im Backend?

@fbufbi fbufbi added the on hold Dieser Task ist momentan zurückgestellt label Nov 27, 2024
@fbufbi
Copy link
Collaborator Author

fbufbi commented Dec 3, 2024

@hupf Workaround, weil /EventLeaderships nicht erreichbar ist: Das Token kann abgefragt werden. Der Name darin ist mit /Events, Feld Leadership zu vergleichen. leider ist Leadership ein Textfeld, aber die beste (einzige) Lösung momentan, um dieses Problem zu beheben. Im Textfeld können ev. mehrere Namen stehen => contains.

@fbufbi fbufbi removed their assignment Dec 3, 2024
@fbufbi fbufbi removed the on hold Dieser Task ist momentan zurückgestellt label Dec 3, 2024
@hupf hupf moved this from To do to In progress in Gravatscha Dec 4, 2024
@hupf hupf moved this from In progress to Review in Gravatscha Dec 4, 2024
@hupf hupf moved this from Review to To test in Gravatscha Dec 10, 2024
@hupf hupf assigned fbufbi and unassigned hupf Dec 10, 2024
@fbufbi
Copy link
Collaborator Author

fbufbi commented Dec 11, 2024

Test OK

@fbufbi fbufbi moved this from To test to To document in Gravatscha Dec 11, 2024
@fbufbi fbufbi removed their assignment Dec 27, 2024
@fbufbi fbufbi moved this from To document to Done in Gravatscha Dec 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
module-Anlassliste Feature für das Modul "Liste der Anlässe"
Projects
Status: Done
Development

No branches or pull requests

2 participants