Fehler beim Speichern von Werten

Hast du einen Fehler in der aktuellen Version gefunden ? Diesen kannst du uns hier mitteilen und uns bei der Fehlersuche helfen.
Antworten
Figaro
Beiträge: 6
Registriert: 21. Sep 2014, 12:14

Fehler beim Speichern von Werten

Beitrag von Figaro »

Ich habe in der neusten Version 2.4.7 ein ziemlich ärgerliches Phänomen.

Ausgangslage:
  • Neues Feld bei welchem die Einstellung "Feld für alle Benutzer sichtbar" NICHT gesetzt ist (das Feld ist also nicht für alle Benutzer sichtbar, was auch wunderbar funktioniert)
    Neuer Benutzer erstellt, welcher Leiter einer Liste ist und dort das Recht hat, Mitglieder zu bearbeiten.
Verhalten:
Log ich mich mit dem neuen Benutzer ein und rufe via Liste eines der Listemitglieder auf, sehe ich - wie gewollt - auch das Feld, welches nicht für alle Benutzer sichtbar ist. Ich kann dort einen neuen Wert eintragen und via Speichernbutton bestätigen. Es erfolgt die gewohnte Meldung "Eintrag gespeichert". Nur wird der neue Wert aber NICHT gespeichert!!!!

Konnte jemand dieses Verhalten auch schon beobachten bzw. hat eine entsprechende Lösung bereit?
Benutzeravatar
fasse
Administrator
Beiträge: 6170
Registriert: 12. Nov 2005, 16:06

Re: Fehler beim Speichern von Werten

Beitrag von fasse »

Hallo Figaro,

kannst du das Verhalten bei uns im Demo-Bereich evtl. nachstellen?
Das wäre eine große Hilfe. Wenn es ein Fehler in Admidio ist, hätten wir in dann schnell gefunden.

Viele Grüße
Fasse
Figaro
Beiträge: 6
Registriert: 21. Sep 2014, 12:14

Re: Fehler beim Speichern von Werten

Beitrag von Figaro »

Ja, ich konnte das beschriebene Verhalten auch in der Demoumgebung nachvollziehen. Inzwischen habe ich den Programmcode gefunden, welcher meiner Erachtens im erwähnten Fall zu Problemen führt. Und zwar handelt es sich hierbei um die Funktion setValue in der Datei user.php. Dort gibt es folgenden Codeteil, welcher prüft, dass versteckte Felder nur von Usern mit dem Rollenrecht "alle Benutzerdaten bearbeiten" geändert werden dürfen:

// Daten fuer User-Fields-Tabelle

// gesperrte Felder duerfen nur von Usern mit dem Rollenrecht 'alle Benutzerdaten bearbeiten' geaendert werden
// bei Registrierung muss die Eingabe auch erlaubt sein
if(( $this->mProfileFieldsData->getProperty($columnName, 'usf_disabled') == 1
&& $gCurrentUser->editUsers() == true)
|| $this->mProfileFieldsData->getProperty($columnName, 'usf_disabled') == 0
|| ($gCurrentUser->getValue('usr_id') == 0 && $this->getValue('usr_id') == 0))
{
// versteckte Felder duerfen nur von Usern mit dem Rollenrecht 'alle Benutzerdaten bearbeiten' geaendert werden
// oder im eigenen Profil
if(( $this->mProfileFieldsData->getProperty($columnName, 'usf_hidden') == 1
&& $gCurrentUser->editUsers() == true)
|| $this->mProfileFieldsData->getProperty($columnName, 'usf_hidden') == 0
|| $gCurrentUser->getValue('usr_id') == $this->getValue('usr_id'))
{
$updateField = true;
}
}

Ist ein Benutzer nun auf einer Liste als Leiter mit erweiterter Berechtigung "Profildaten bearbeiten" definiert, sieht er die versteckten Felder zwar und kann auch reinschreiben, es wird aber nix gespeichert da er ja nicht über die globale Berechtigung "alle Benutzerdaten bearbeiten" verfügt. Für meine Bedürfnisse habe ich das Problem gelöst, in dem ich den entsprechenden Codeteil auskommentiert habe, da er meines Erachtens nicht notwendig ist: bei allen Feldern, welche für mich bearbeitbar sind, will ich auch die Werte speichern können!!!
Benutzeravatar
fasse
Administrator
Beiträge: 6170
Registriert: 12. Nov 2005, 16:06

Re: Fehler beim Speichern von Werten

Beitrag von fasse »

Hallo Figaro,
Vielen Dank für deine Recherche, ich werde mir das mal anschauen und für die nächste Version dann beheben.

Viele Grüße
Fasse
Antworten