Ja, das sind etwas lange Namen, die die bestehende Nomenklatur intern und in Nextcloud spiegeln. Reduziert die notwendige Transferleistung, wenn die Namen gleich sind war die Idee. Hier können wir sehr gerne die Kurzform nehmen 🙂
In der group_folder Beziehung gibt es in der Tat noch Daten, die schon von dir vermutete write/share/delete-Rechte, die Relation wird also gebraucht.
Bei user_group werden keine zusätzlichen Daten gepflegt. Diese Beziehung stattdessen als zwei 1:n zu modellieren, das muss ich mal ausprobieren und sehen, was da in die Datenbank geschrieben wird. Ich stehe da gerade auf dem Schlauch, wie das funktionieren kann, ohne dass es dann zu jedem User und jeder Gruppe mehrere Datensätze in den jeweiligen Tabellen gibt 🤔 Hat eine eurer Apps so eine Struktur? Dann schaue ich da auch mal rein.
Also so?
![](https://community.rei3.de/assets/files/2024-06-10/1718038620-694719-grafik.png)
![](https://community.rei3.de/assets/files/2024-06-10/1718038647-999201-grafik.png)
Real dann mit mehr Attributen natürlich.
Scheint mir nicht der Weg zu sein.
![](https://community.rei3.de/assets/files/2024-06-10/1718042055-399484-grafik.png)
Die Gruppenauswahl ist dann eine Einzelauswahl und nicht eine Mehrfachauswahl.
![](https://community.rei3.de/assets/files/2024-06-10/1718042196-656390-grafik.png)
App exportieren kann ich gerne machen, wenn es hilft. Ich weiß aber gerade nicht, ob wir das selbe Verständnis von Problem und Ziel haben. Ich versuche es noch mal mit den Kurzbezeichnungen 🙂
Letztlich geht es um stinknormale Berechtigungsstrukturen. Ein User ist Mitglied in 0..n Groups. Jede Group gibt Berechtigung auf 0..m Folder, wobei jede dieser Berechtigungen individuell ist (Kombination aus write/delete/share).
Der Zielworkflow ist:
Ein Bearbeiter ruft die Liste der Folder auf. Klickt auf einen Folder und sieht die Details. Klickt auf einen Button "Benutzer hinzufügen" und hat dann zwei Auswahlfelder:
- Auswahlliste möglicher User
- Auswahlliste Groups, die eine bestehende Group <> Folder Beziehung haben zu dem Folder, aus dem der Dialog heraus geöffnet wurde.
Der Aufrufkontext (Folder) soll der Filter sein für die in der Auswahlliste verfügbaren Groups.
(Für Phase 2: ein User kann nur einmal Mitglied einer bestimmten Gruppe sein, die Auswahl einer Gruppe ändert damit die Liste der möglichen User und umgekehrt, d.h. schon bestehende User+Group-Kombinationen sollen nicht auswählbar sein.)
Ich hoffe du kannst damit etwas anfangen und mich in die richtige Richtung lenken 🙂