JosefCevik / JWManagement

GNU Affero General Public License v3.0
57 stars 30 forks source link

Error caused by invalid language #398

Open JasonRaveling opened 5 years ago

JasonRaveling commented 5 years ago

Describe the bug When you try to enter publisher availability, you receive a server error message when you try to save the changes.

To Reproduce Steps to reproduce the behavior:

  1. Login and click on a project
  2. Click on "Publishers"
  3. Click on a publisher who's language value is set to publisher.entity.profile.languageValues.en
  4. Under availability, click on a day.
  5. Click the "Add new timeslot" button
  6. Click "Save"
  7. An error message pops up saying "SERVER ERROR".

Additional context When a user's language is set to a valid value, the error does not occur.

Suggested fix?

Sorry I'm not familiar enough with the code yet to know where to look or how exactly other things will be effected. I was experimenting with imports/framework/Constants/Languages.js but that didn't seem to make any difference. I haven't been able to track down the bug :angry:

Any new users will have their language set to English (US) by default. But older users still have a DB value of en set in their profile. Would it be worth adding en back as an option? Or is there a safe way that we can check their profile setting and change it from en to en-US? That actually happens automatically when I start meteor in my test environment. Would that happen on the staging server?

geimist commented 5 years ago

I have a similar problem. A sister can't change her profile language from english to german. When I do this in adminpanel, I get the error: "There was an error with another field: undefined" When I try to modify another field (congregation), I get the error: "There was an error with another field: en is not an allowed value"

JasonRaveling commented 5 years ago

By the way, it seems that the language is already trying to be reset from en to en-US in the develop branch. I don't know if this is active in production right now. See: https://github.com/JWDeveloper/JWManagement/blob/develop/client/views/pages/publisherActions/publisherActions.coffee#L110-L112

MarvinZeising commented 5 years ago

Thanks for creating the issue for this. I just added a little quickfix for this in 1ab7263. It's being deployed right now. Hope it helps with the problems.

JasonRaveling commented 5 years ago

Yes! I see it was just deployed. Looks like 1ab7263 fixes both issues mentioned here.

geimist commented 5 years ago

Unfortunately, the problem persists here. In the admin panel, the profile of the sister is set to "English (US)" by your change, but still cannot be changed ("There was an error with another field: undefined").

In the profile of the sister the language is "language.entity.languageValues.en". Nothing is checked in the language selection list. Changes are discarded without error message.

Bildschirmfoto 2019-07-04 um 12 06 08
MarvinZeising commented 5 years ago

Oh right, we could add the language GUI fix here, as well. But I think that wouldn't fix your problem. Can you try to change the congregation field again, please?

geimist commented 5 years ago

Hallo Marvin, ich schreibe dir gleich mal auf deutsch ;-)

Seit deinem Fix kann die Schwester ihren Versammlungsnamen selbst ändern; der Admin erhält weiterhin die obige Fehlermeldung.

Nach einigen Versuchen wird die Website für die Schwester zeitweise in deutsch ausgegeben, als Sprache steht aber bei ihr immer noch "language.entity.languageValues.en" und im Adminpanel steht "English (US)" (Die Schwester hatte mir gesagt, dass die Umstellung schon manchmal nach mehreren Versuchen temporär funktionierte, aber dann immer wieder auf Englisch zurückfällt - wäre aus meiner Sicht auch logisch, da ich als Admin in ihrem Profil noch "English (US)" stehen sehe).

JasonRaveling commented 5 years ago

Was this fixed with 1ab7263?

Ist ihr Sprache auch weiterhin Englisch zurückfällt? (Is her language still falling back to English?)

geimist commented 5 years ago

The error still exists

MarvinZeising commented 5 years ago

Also die Schwester hat über den Link Sprache

image

ihre Sprache auf Deutsch

image

geändert? Und wenn sie dann zurück geht, bleibt das System auch auf Deutsch, aber springt dann irgendwann wieder zurück auf Englisch? Verstehe ich das richtig?

geimist commented 5 years ago

Ja, genau. Ein Reload der Seite bewirkt wieder das Zurückfallen der Spracheinstellung. Interessanterweise steht auch nach der Umstellung der Wert "language.entity.languageValues.en" in der Sprachauswahl (siehe Screenshot). In der Sprachliste ist kein Haken bei irgendeiner Sprache gesetzt. Als Admin kann ich ihre Spracheinstellung auch nicht überschreiben.

Hilft es dir, wenn du die Zugangsdaten mit einem temporären PW zu ihrem Account bekommst?

JasonRaveling commented 5 years ago

Das habe ich beobachtet...

@geimist Hilft das? Entschuldigung, wenn ich nicht richtig verstehe. (Does that help? Sorry if I do not understand correctly). Wenn meine Deutsche ist sehr schrecklich... Sehen :point_down:

In case that is unreadable. Here it is auf Englisch:

Here is my observation....

@MarvinZeising, I've noticed that when I have been testing languages, I must manually refresh the page in my browser for the language to actually take effect. Maybe this has something to do with it? Sorry, if I'm missunderstanding geimist. My german is not great and I am using Google Translate to understand some of it.

geimist commented 5 years ago

Here is my observation....

  • I click a new language.
  • I click the back button at the top left.
  • The language for JWManagement has not changed.

no - everything is good!

  • I click the refresh button.

now, the language falls back to english

And: Admin can't change the language in usersettings for this user and get the error: "There was an error with another field: undefined"

JasonRaveling commented 5 years ago

Thanks for the info @geimist. Sorry you are having this trouble. Hopefully we can find the bug very soon.

geimist commented 5 years ago

no trouble 😊 Thank you for your hard work!

MarvinZeising commented 5 years ago

Ja, genau. Ein Reload der Seite bewirkt wieder das Zurückfallen der Spracheinstellung. Interessanterweise steht auch nach der Umstellung der Wert "language.entity.languageValues.en" in der Sprachauswahl (siehe Screenshot). In der Sprachliste ist kein Haken bei irgendeiner Sprache gesetzt. Als Admin kann ich ihre Spracheinstellung auch nicht überschreiben.

Hilft es dir, wenn du die Zugangsdaten mit einem temporären PW zu ihrem Account bekommst?

Das hört sich verrückt an. Kann ich eigentlich kaum glauben... Temporäre Zugangsdaten wären da wirklich sehr praktisch. Die kannst du mir ja an support@jwmanagement.org schicken.

MarvinZeising commented 5 years ago

Okay, so the problem really is the username. When updating the language, the user's profile data is validated and in this case, fails the validation because of a duplicate username. However, the username is not a duplicate, it just contains a dot. Since the username is put into a regular expression, and dot is a meta character there, the search also finds similar usernames without the dot. I'll fix this by escaping the username before putting it into the regex. Thanks for the sign-in data for that account.

geimist commented 5 years ago

Oh, da muss man erst einmal darauf kommen … Ich hoffe, du musstest nicht zu viel Zeit in die Suche investieren!

Vielen Dank, dass du an einem Bugfix arbeitest. Das Kenntwort kann ich ja nun wieder für die Schwester zurücksetzen, oder brauchst du den Zugang noch?

MarvinZeising commented 5 years ago

Klar, gerne. Ja das Kennwort kannst du wieder zurücksetzen.

JasonRaveling commented 5 years ago

:clap: Gut gemacth. Ich hätte nie gedacht, dorthin zu suche.

geimist commented 5 years ago

Hallo Marvin, darf ich mal nachfragen, ob du den Bugfix schon implementiert hast? Bitte meine Nachfrage nicht falsch verstehen, aber ich nehme an, dass du es damals gleich in den Dev-Zweig aufgenommen hast, es aber immer noch nicht funktioniert … 🙈 Falls es einfach noch in der Pipeline ist, beachte bitte meine Nachfrage nicht.

Danke Stephan

MarvinZeising commented 5 years ago

Hallo Stephan, doch, müsste eigentlich schon längst drin sein. Wenn es immer noch nicht geht, könntest du bitte repro steps anlegen, mit denen es nicht fehlschlägt? Danke dir

geimist commented 5 years ago

… bitte repro steps anlegen

Sorry, ich verstehe deine Bitte nicht …

MarvinZeising commented 5 years ago

Oh, sorry. Repro steps (oder Steps to Reproduce) ist eine Schritt für Schritt Liste, die vorgibt, was man nacheinander machen muss um einen Fehler zu verursachen. Wenn der Fehler also noch einmal auftritt, würde mir so eine Schritt für Schritt Liste helfen den Fehler selbst zu bekommen und ihn dadurch zu verstehen.

geimist commented 5 years ago

Ach so, ok. Danke. Der Fehler besteht ja nach wie vor permanent. Ich schicke dir einfach nochmal Zugangsdaten zu ihrem Account per Mail.

geimist commented 1 year ago

Hello, the error still exists. We have some publisher in the project, which have a dot in the username. In some cases no changes can be made in the profile. Has this bugfix been included in the meantime?

Thanks a lot