Hallo zusammen,
erstmal vielen Dank für diese Software. Ich hatte gerade angefangen, etwas ähnliches zu schreiben, da bin ich hierauf gestoßen. Hat mir viel Arbeit erspart!
Die Listen würde ich mir allerdings noch etwas besser steuerbar wünschen. Ich habe folgendes Szenario, welches ich gerne abdecken würde:
+ Unsere Mitgliederdaten (Adressen, Telefonnummern, etc.) sollen nicht automatisch für alle Mitglieder sichtbar sein. Wir haben dafür auf unserem Beitrittsformular ein Kästchen zum Ankreuzen, ob wir die Daten vereinsintern veröffentlichen dürfen oder nicht.
+ Ich habe ein entsprechendes Feld in der Nutzerverwaltung von Admidio hinzugefügt (weitere Funktionen --> Profilfelder pflegen)
+ Ich habe dann im Listenkonfigurator die Listen derart geändert, dass dieses Feld in der Bedinung geprüft wird, ob es gesetzt ist und nur diejenigen in der Liste angezeigt werden, bei denen das Feld gesetzt ist.
Das funktioniert auch problemlos, allerdings bringt das nicht viel, wenn einfach jeder Benutzer seine eigene Liste anlegen kann, die diese Bedingung nicht enthält.
+ Es gibt bei uns auch Übungsleiter, die ungeachtet der gewünschten Veröffentlichung der Adressdaten die Namen aller Mitglieder jederzeit einsehen können müssen.
Auch das kann ich mit einer Liste abdecken, aber auch hier bin ich dann darauf angewiesen, dem Übungsleiter auch gleich die Rechte zu geben, die Daten von jedem Mitglied einsehen zu können.
+ Außerdem würde ich gerne unserem Kassenwart für den Einzug der Mitgliedsbeiträge eine Liste der gespeicherten Kontodaten zur Verfügung stellen.
+ Die Kontodaten sollen jedoch aus Datenschutzgründen nicht gleich von jedem anderen Mitglied abgerufen werden können, das Häkchen vor "Feld für alle Benutzer sichtbar" ist also weg.
+ Ich möchte aber andersherum nicht jeden Kassenwart, den wir irgendwann mal haben werden, automatisch zum Admin über alle Mitgliedsdaten machen müssen, nur damit er die Felder einsehen kann. Das muss ich aber tun, sonst kann er in seinen Listen die Kontodaten nicht sehen.
Ich würde mir daher für Listen folgendes wünschen:
1) Man könnte konfigurierbar machen, welche Rollen überhaupt eigene Listen erstellen können und welche nicht. Dieser Punkt sollte ja, soweit ich den Quellcode gesehen habe, relativ leicht umsetzbar sein.
2) Listen, die ich z.B. als Webmaster erstellt habe, sollten gezielt für bestimmte Rollen freigegeben werden dürfen. Im moment geht es nur für alle oder keinen (außer dem Ersteller selbst).
3a) Listen, die ich als Webmaster konfiguriert habe, sollen auch Felder enthalten dürfen, die die jeweilige Rolle eigentlich nicht sehen darf (nur in Verbindung mit 2) sinnvoll).
3b) Bessere Alternative: man könnte Profilfelder ebenfalls so konfigurierbar machen, dass sie gezielt für bestimmte Rollen sichtbar werden.
3c) Lightweight Alternative, falls 3b) zu komplex ist: Rollentrennung zwischen 'bearbeiten' und 'anzeigen' von Benutzerdaten. Im Moment kann eine Rolle entweder alle Benutzerdaten sehen und auch bearbeiten, oder beides nicht.
Gerne kann ich zu der Umsetzung auch etwas beisteuern. Ich bin Softwareentwickler und habe auch schon beruflich mit PHP gearbeitet. Wenn dafür also Interesse besteht, meldet Euch gerne. Falls ihr das Feature ablehnt, überlege ich ohnehin, ob ich die Software selbst patchen werde. Ist dann eben nur nervig, weil ich das dann bei jeder neuen Version wieder tun muss.
Listen um Berechtigungen erweitern
Re: Listen um Berechtigungen erweitern
Hallo,
ich denke, dass ich für alle aus dem Admidio Team spreche, wenn ich sage - wir freuen uns immer wenn uns jemand hilft!
wenn ich das jetzt richtig sehe, dann müsste man hierfür ein Rechte-system auf Userbasis einführen.
das dürfte ganz schön viel arbeit sein... aber wenn du dir das zutraust, dann hast du von meiner seite schon mal ein dickes Danke zu erwarten ^^
um vollen zugang zu den neuesten Source-Codes zu bekommen, nimmst du am besten Kontakt mit "fasse" auf. (am besten per PM)
dann kannst du das neue Feature gleich auf basis der Version 3.0 aufbauen, da es da schon ein paar große eingriffe ins System geben wird.
lg
Stefan
ich denke, dass ich für alle aus dem Admidio Team spreche, wenn ich sage - wir freuen uns immer wenn uns jemand hilft!
wenn ich das jetzt richtig sehe, dann müsste man hierfür ein Rechte-system auf Userbasis einführen.
das dürfte ganz schön viel arbeit sein... aber wenn du dir das zutraust, dann hast du von meiner seite schon mal ein dickes Danke zu erwarten ^^
um vollen zugang zu den neuesten Source-Codes zu bekommen, nimmst du am besten Kontakt mit "fasse" auf. (am besten per PM)
dann kannst du das neue Feature gleich auf basis der Version 3.0 aufbauen, da es da schon ein paar große eingriffe ins System geben wird.
lg
Stefan
Re: Listen um Berechtigungen erweitern
dazu auch interessant:
von 2012:
http://www.admidio.org/forum/viewtopic.php?f=7&t=5149
von 2013:
http://www.admidio.org/forum/viewtopic.php?f=2&t=5258
und ein Request in diese Richtung:
http://sourceforge.net/p/admidio/feature-requests/494/
von 2012:
http://www.admidio.org/forum/viewtopic.php?f=7&t=5149
von 2013:
http://www.admidio.org/forum/viewtopic.php?f=2&t=5258
und ein Request in diese Richtung:
http://sourceforge.net/p/admidio/feature-requests/494/
Re: Listen um Berechtigungen erweitern
Ich würde das Rechtesystem nicht auf Userbasis aufbauen, sondern auf Rollenbasis. Wenn dann tatsächlich User Hans Meier ein Sonderrecht bekommen soll, dann muss ich eben eine Rolle "Hans Meier" mit diesem Recht definieren.
Ich habe mir in der Zwischenzeit auch noch etwas Gedanken gemacht und bin dabei noch auf eine weitere Unzulänglichkeit gestoßen:
Zwar könnte man mit den von mir gemachten Vorschlägen verhindern, dass ein User in Listen auftaucht, aber wenn man die interne User ID in der Datenbank errät, was recht einfach ist, weil sie ja einfach ein Integer ist, der automatisch hochgezählt wird, dann kann man die Daten natürlich trotzdem im Profil ansehen. Um das abzurunden, müsste man also noch eine Art Condition einführen, wann ein Profil sichtbar ist und wann nicht, ähnlich der Bedinungen in den Listen. Da müsste ich mir nochmal Gedanken drüber machen.
Zutrauen würde ich mir das schon. Die Frage ist nur, wie viel Zeit ich dafür habe, wenn ich es alleine mache. Aber wie gesagt, ich wollte sowieso Zeit in eine Online-Mitgliederverwaltung investieren. Die kann ich dann auch in dieses Projekt stecken.
Ich werde mal Verbindung aufnehmen.
Ich habe mir in der Zwischenzeit auch noch etwas Gedanken gemacht und bin dabei noch auf eine weitere Unzulänglichkeit gestoßen:
Zwar könnte man mit den von mir gemachten Vorschlägen verhindern, dass ein User in Listen auftaucht, aber wenn man die interne User ID in der Datenbank errät, was recht einfach ist, weil sie ja einfach ein Integer ist, der automatisch hochgezählt wird, dann kann man die Daten natürlich trotzdem im Profil ansehen. Um das abzurunden, müsste man also noch eine Art Condition einführen, wann ein Profil sichtbar ist und wann nicht, ähnlich der Bedinungen in den Listen. Da müsste ich mir nochmal Gedanken drüber machen.
Zutrauen würde ich mir das schon. Die Frage ist nur, wie viel Zeit ich dafür habe, wenn ich es alleine mache. Aber wie gesagt, ich wollte sowieso Zeit in eine Online-Mitgliederverwaltung investieren. Die kann ich dann auch in dieses Projekt stecken.
Ich werde mal Verbindung aufnehmen.