# Zwei Fehler bei Benutzernamen, die mit dem Unterordnernamen beginnen

**URL:** https://meta.discourse.org/t/two-bugs-with-usernames-starting-with-subfolder-name/169505
**Category:** Bug
**Tags:** subfolder
**Created:** [7. November 2020 um 09:28 UTC](https://meta.discourse.org/t/two-bugs-with-usernames-starting-with-subfolder-name/169505 "2020-11-07T09:28:58Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [7. November 2020 um 09:28 UTC](https://meta.discourse.org/t/two-bugs-with-usernames-starting-with-subfolder-name/169505/1 "2020-11-07T09:28:59Z")

</div>

Einrichtung:

- Installation in einem Unterordner unter `/forum`
- Kann sowohl auf `v2.5.4` als auch auf `tests-passed` reproduziert werden
- Ein Benutzer namens `forumadmin`

Das Benutzerprofil sollte unter `/forum/u/forumadmin/summary` sichtbar sein.  
Wenn jedoch diese URL angefordert wird, erfolgt eine JavaScript-Weiterleitung zu `/forum/uadmin/summary`, d. h. `/forum` wird aus der Mitte der URL entfernt.

Verwandtes, aber anderes Problem:  
Beim Bearbeiten eines Benutzers, dessen Benutzername mit `forum` beginnt, führt das Klicken auf „Speichern“ im Namensfeld zu einem 404-Fehler, da eine PUT-Anfrage an `/u/forumadmin.json` statt an `/forum/u/forumadmin.json` gesendet wird. Hier wird also der Unterordner entfernt, jedoch nur, wenn der Benutzername mit dem Namen des Unterordners beginnt.

Ich bin mit Ember-Routing völlig unbekannt, sodass weitere Untersuchungen nicht erfolgreich waren. Ich erinnere mich vage daran, vor ein paar Wochen einen ähnlichen Fehler gesehen zu haben.

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [9. November 2020 um 02:11 UTC](https://meta.discourse.org/t/two-bugs-with-usernames-starting-with-subfolder-name/169505/4 "2020-11-09T02:11:16Z")

</div>

Wir haben dies bereits zugewiesen, aber zur Sicherheit: Je nach Arbeitsanfall kann es einen Monat dauern, bis das Problem behoben ist.

Als sofortige Umgehung könnten wir `forum...` als Benutzernamen verbieten, falls der Unterordner `forum` lautet. Das wäre zumindest eine einfache Lösung im Vergleich zu den Änderungen an Ember-Routings.

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [9. November 2020 um 07:02 UTC](https://meta.discourse.org/t/two-bugs-with-usernames-starting-with-subfolder-name/169505/5 "2020-11-09T07:02:00Z")

</div>

Ich verstehe vollkommen, dass dies ein Randfall innerhalb eines Randfalls ist, also habe ich nicht erwartet, dass dies auf den Stapel mit hoher Priorität gelangt 😉

Ich bin mir nicht sicher, ob der Workaround notwendig ist; es wird ja nichts in Flammen aufgehen.

---

<div class="post-metadata">

### Author: ![kris.kotlarek](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kris.kotlarek/32/176919_2.png) [@kris.kotlarek](https://meta.discourse.org/u/kris.kotlarek)
#### Post date: [11. Februar 2021 um 04:08 UTC](https://meta.discourse.org/t/two-bugs-with-usernames-starting-with-subfolder-name/169505/6 "2021-02-11T04:08:50Z")

</div>

Mit diesem PR behoben

> <https://github.com/discourse/discourse/pull/11786>
>
> The bug was mentioned on \[meta\](https://meta.discourse.org/t/two-bugs-with-usern…ames-starting-with-subfolder-name/169505)
> 
> When discourse is installed on \`/subfolder\` and username is containing subfolder name like for example \`subfolderadmin\` - user URLs were incorrect.
> 
> Instead of having \`/subfolder/u/subfolderadmin/summary/\` we were leading to \`/subfolder/uadmin/summary\`.
> 
> The reason for that was incorrect check in \`getUrl\` helper:
> 
> \`\`\`javascript
> const found = url.indexOf(baseUri);
> if (found \>= 0 && found \< 3) {
> return url;
> }
> return baseUri + url;
> \`\`\`
> baseUri is \`/subfolder\`, url is \`/u/subfolderadmin\` and indexOf returned position which in the end returned incorrect URL.
> 
> I think that we should check if the URL starts with baseUri and not if contains baseUri.
