Fehler beim der Rollenzuweisung beim Anlegen eines neuen Mitglieds (4.1.3)

Hast du einen Fehler in der aktuellen Version gefunden ? Diesen kannst du uns hier mitteilen und uns bei der Fehlersuche helfen.
Antworten
McGreen82
Beiträge: 7
Registriert: 20. Jan 2022, 08:03

Fehler beim der Rollenzuweisung beim Anlegen eines neuen Mitglieds (4.1.3)

Beitrag von McGreen82 »

Hallo zusammen,

ich bin auf ein Problem bei der Mitgliederanlage gestoßen.
Wenn ich versuche ein Mitglied anzulegen und er wechselt nach Eingabe der Mitgliedsdaten zur Rollenzuordnung, ist in der URL (/adm_program/modules/profile/roles.php?user_uuid=&new_user=1) der Parameter user_uuid nicht gefüllt. Auch die Standardrolle "Mitglied" wird nicht vorbelegt.
Wenn ich dennoch Rollen auswähle und versuche dann zu Speichern, dann bekomme ich einen Fehler 500 angezeigt.
Dieser dürfte aber ein Folgefehler aufgrund der nicht übergeben user_uuid sein.
Wenn ich in der Datenbank die uuid manuell raussuche, und diese dann in der URL (/adm_program/modules/profile/roles.php?user_uuid=************&new_user=1) ergänze, findet er die Standardrolle und die Useranlage läuft sauber durch.

Soweit ich das nachgelesen habe, wurde von einer id in der Version 4.0 zu uuid in Version 4.1 gewechselt.
Ich denke es könnte damit zusammenhängen.

Installiert habe ich direkt die Version 4.1.3. Kein Update aus einer vorherigen Version.

Meine Umgebung:

Code: Alles auswählen

PHP-Version: 7.4.9
max. POST-Größe: 64 MiB
Arbeitsspeicher: 512 MiB
Dateiuploads: an
max. Uploadgröße: 32 MiB
Pseudo-Zufallszahlen Generator: Sicher[
Betriebssystem: Linux (Linux cloud 4.4.59+ #25426 SMP PREEMPT Tue May 12 04:54:55 CST 2020 x86_64)
64bit: Ja
UNIX: Ja
Verzeichnis Trenner: "/"
Pfad Trenner: ":"
Max Pfadlänge: 4096
MySQL-Version: 10.3.29-MariaDB
Verzeichnisschutz: an
max. bearbeitbare Bildgröße: 71.58 Megapixel
Debug-Ausgabe: an
Import Modus: aus
Folgendes spuckt der Debugger aus:

Code: Alles auswählen

S Q L - E R R O R

CODE: 00000

B A C K T R A C E

FILE: adm_program/system/classes/Database.php
LINE: 689
CALL: Database->showError()

FILE: adm_program/system/classes/TableAccess.php
LINE: 531
CALL: Database->queryPrepared()

FILE: adm_program/system/classes/TableMembers.php
LINE: 181
CALL: TableAccess->save()

FILE: adm_program/system/classes/User.php
LINE: 293
CALL: TableMembers->save()

FILE: adm_program/system/classes/User.php
LINE: 1800
CALL: User->changeRoleMembership()

FILE: adm_program/modules/profile/roles_save.php
LINE: 186
CALL: User->setRoleMembership()
Und hier noch ein Auszug aus dem Logfile:

Code: Alles auswählen

[2022-01-22 08:17:35.725854] Admidio.INFO: SQL: SELECT * FROM adm_members WHERE mem_rol_id = ? AND mem_usr_id = ? AND mem_begin <= ? AND mem_end >= ? ORDER BY mem_begin ASC [2,0,"9999-12-31","2022-01-21"] {"file":"/volume1/web/admidio/adm_program/system/classes/Database.php","line":666,"class":"Database","function":"queryPrepared"}
[2022-01-22 08:17:35.726706] Admidio.INFO: SQL: Found rows: 0  {"file":"/volume1/web/admidio/adm_program/system/classes/Database.php","line":677,"class":"Database","function":"queryPrepared"}
[2022-01-22 08:17:35.726792] Admidio.DEBUG: SQL: Execution time 0.846863 ms  {"file":"/volume1/web/admidio/adm_program/system/classes/Database.php","line":681,"class":"Database","function":"queryPrepared"}
[2022-01-22 08:17:35.729118] Admidio.INFO: SQL: INSERT INTO adm_members (mem_rol_id,mem_uuid,mem_begin,mem_end,mem_usr_id_create,mem_timestamp_create) VALUES (?,?,?,?,?,?) [2,"bedc652c-44e9-4fe5-80fd-cfea42765b22","2022-01-22","9999-12-31",2,"2022-01-22 08:17:35"] {"file":"/volume1/web/admidio/adm_program/system/classes/Database.php","line":666,"class":"Database","function":"queryPrepared"}
[2022-01-22 08:17:35.730259] Admidio.DEBUG: SQL: Execution time 0.946999 ms  {"file":"/volume1/web/admidio/adm_program/system/classes/Database.php","line":685,"class":"Database","function":"queryPrepared"}
[2022-01-22 08:17:35.730343] Admidio.CRITICAL: PDOException: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails ("admidio"."adm_members", CONSTRAINT "adm_fk_mem_usr" FOREIGN KEY ("mem_usr_id") REFERENCES "adm_users" ("usr_id"))  {"file":"/volume1/web/admidio/adm_program/system/classes/Database.php","line":688,"class":"Database","function":"queryPrepared"}
[2022-01-22 08:17:35.731780] Admidio.CRITICAL: 00000:  |   {"file":"/volume1/web/admidio/adm_program/system/classes/Database.php","line":838,"class":"Database","function":"showError"}
[2022-01-22 08:17:35.738466] Admidio.INFO: SHUTDOWN {"execution_time":"115.520954 ms","memory_usage":"3.511 MiB"} {"file":"/volume1/web/admidio/adm_program/system/bootstrap/shutdown.php","line":21,"class":null,"function":"admShutdown"}
[2022-01-22 08:17:35.738926] Admidio.DEBUG: DATABASE: sleep/serialize!  {"file":"/volume1/web/admidio/adm_program/system/classes/Database.php","line":185,"class":"Database","function":"__sleep"}
Freue mich auf Feedback.
Grüße Stephan.

PS: Ist in eurer Demoumgebung auch so. Gerade nochmal gegengeprüft ;-)
Benutzeravatar
fasse
Administrator
Beiträge: 6041
Registriert: 12. Nov 2005, 16:06

Re: Fehler beim der Rollenzuweisung beim Anlegen eines neuen Mitglieds (4.1.3)

Beitrag von fasse »

Hallo Stephan,

vielen Dank für die gute Analyse des Problems. Damit konnte ich den Fehler schnell finden und behoben. Hab noch zwei weitere Fehler gefunden und aus diesem Grund schnell eine neue Version 4.1.4 herausgebracht.

Dort funktioniert dann auch die Rollenzuweisung.

Viele Grüße
Fasse
McGreen82
Beiträge: 7
Registriert: 20. Jan 2022, 08:03

Re: Fehler beim der Rollenzuweisung beim Anlegen eines neuen Mitglieds (4.1.3)

Beitrag von McGreen82 »

Hallo Fasse,

wenn ein Fehler dadurch so schnell behoben ist, dann habe ich mich für die tolle Arbeit zu bedanken.
Ich finde das Projekt super und beschäftige mich für unseren Karnevalsverein seit ein paar Tagen näher damit.

Vielen Dank dafür!

Grüße Stephan.
Antworten