hitobito_pbs
hitobito_pbs copied to clipboard
Inkonsistente Sprache oAuth
Wenn ich in der Testumgebung via oAuth die Infos von Hamza Dethloff abrufe, erhalte ich manchmal Antworten auf deutsch und manchmal Antworten auf englisch (siehe Feld role_name).
array ( 'id' => 162, 'email' => '[email protected]', 'first_name' => 'Hamza', 'last_name' => 'Dethloff', 'nickname' => 'Impedit', 'company_name' => 'admin', 'company' => true, 'address' => 'Myliusstr. 29b', 'zip_code' => '74160', 'town' => 'West Hennesstadt', 'country' => 'FR', 'gender' => 'w', 'birthday' => '1998-05-11', 'picture' => '______.png', 'primary_group_id' => 1, 'title' => 'Doktor', 'correspondence_language' => 'fr', 'additional_languages' => 'Französisch, Englisch', 'advertising' => 'none', 'roles' => array ( 0 => array ( 'group_id' => 1, 'group_name' => 'Admin neu', 'role_name' => 'administrator', ), 1 => array ( 'group_id' => 1, 'group_name' => 'Admin neu', 'role_name' => 'administrator', ), 2 => array ( 'group_id' => 2, 'group_name' => 'Vorstand', 'role_name' => 'president', ), 3 => array ( 'group_id' => 2, 'group_name' => 'Vorstand', 'role_name' => 'president', ), 4 => array ( 'group_id' => 2, 'group_name' => 'Vorstand', 'role_name' => 'Role', ), 5 => array ( 'group_id' => 5, 'group_name' => 'SJAS', 'role_name' => 'Role', ), 6 => array ( 'group_id' => 31, 'group_name' => 'Mitlieder', 'role_name' => 'address manager', ), 7 => array ( 'group_id' => 34, 'group_name' => 'Full member', 'role_name' => 'active member', ), ), )
array ( 'id' => 162, 'email' => '[email protected]', 'first_name' => 'Hamza', 'last_name' => 'Dethloff', 'nickname' => 'Impedit', 'company_name' => 'admin', 'company' => true, 'address' => 'Myliusstr. 29b', 'zip_code' => '74160', 'town' => 'West Hennesstadt', 'country' => 'FR', 'gender' => 'w', 'birthday' => '1998-05-11', 'picture' => '______.png', 'primary_group_id' => 1, 'title' => 'Doktor', 'correspondence_language' => 'fr', 'additional_languages' => 'Französisch, Englisch', 'advertising' => 'none', 'roles' => array ( 0 => array ( 'group_id' => 1, 'group_name' => 'Admin neu', 'role_name' => 'Administrator', ), 1 => array ( 'group_id' => 1, 'group_name' => 'Admin neu', 'role_name' => 'Administrator', ), 2 => array ( 'group_id' => 2, 'group_name' => 'Vorstand', 'role_name' => 'Präsident', ), 3 => array ( 'group_id' => 2, 'group_name' => 'Vorstand', 'role_name' => 'Präsident', ), 4 => array ( 'group_id' => 2, 'group_name' => 'Vorstand', 'role_name' => 'Kassier', ), 5 => array ( 'group_id' => 5, 'group_name' => 'SJAS', 'role_name' => 'Administrator', ), 6 => array ( 'group_id' => 31, 'group_name' => 'Mitlieder', 'role_name' => 'Adressverwaltung', ), 7 => array ( 'group_id' => 34, 'group_name' => 'Full member', 'role_name' => 'Aktivmitglied', ), ), )
Gibt es bereits eine Möglichkeit, die gewünschte Sprache beim Request mitzugeben?
Ich konnte das Problem leider nicht reproduzieren, bei mir kommt immer die Fallback-Sprache deutsch. Kannst du mehr Details geben unter welchen Umständen es bei dir Englisch kommt?
Der verantwortliche Controller ist momentan nicht konfiguriert, die Request-Sprache zu respektieren. Entsprechend ist es erwartungsgemäss bei mir wirkungslos, die Sprache in der URL des Profile-Endpoints (/fr/oauth/profile
) oder im HTTP-Header (Accept-Language: fr
) mitzugeben. Es nähme mich daher wunder, wie es trotzdem passieren kann, dass die Sprache vom default abweicht.
Zum reproduzieren:
curl -H "Authorization: Bearer <<TOKEN>>" -H "X-Scope: with_roles" -k https://demo.hitobito.ch/oauth/profile
Dafür habe ich einige Zugangs-Token erstellt und die Anfrage mehrfach ausgeführt. 9/10 Anfragen gaben eine deutsche Antwort. Die 10. Anfrage gab eine englische Antwort (mit dem gleichen token).
Wurde das mit https://github.com/hitobito/hitobito/pull/941 behoben?