requarks / wiki

Wiki.js | A modern and powerful wiki app built on Node.js
https://js.wiki
GNU Affero General Public License v3.0
24.87k stars 2.75k forks source link

Two letter virtual folders mistaken for locales #1292

Open invisiblethreat opened 4 years ago

invisiblethreat commented 4 years ago

When linking to something before it exists, like db/postgres from "home" and then clicking through to the dialogue to create the new page, you end up with an unlocalized page creation dialog that you can still use. Upon clicking through and creating the page, when you attempt to save, you receive an SQL error. This is potentially due to the db section being mistaken for the locale.

To Reproduce Steps to reproduce the behavior:

  1. Go to 'home'
  2. Edit the page to add a link to a new "short" virtual folder/page that does not yet exist, like db/postgres
  3. Click through the creation dialog
  4. Attempt to save the page and capture the error

Expected behavior Throw an error for unsupported locale/action. The modal for creating a new pages does not permit short paths that would conflict with this locales, which may be good enough, but I wanted to raise this issue if folks though it would be helpful to trap it.

Screenshots image

image

image

image

Host Info (please complete the following information):

Additional context Again, this is an edge case that I'm not sure that many folks will hit, so it might not be worth the code to fix/prevent, but I wanted to let you know. Thanks for the cool project!

mielipuolinen commented 4 years ago

Can confirm this issue too, run into it few times before I realized what was happening. :)

Pages can be renamed into two-character path names which causes issues too and things start to act weird.

juliendms commented 4 years ago

There is also an issue with Assets folder with only two letters. You can add pictures in those folders, but when you add them on the page, it returns a 404 error instead of loading the images. Cf. https://requarks.slack.com/archives/C49J7AB8R/p1583228731093200

BPowell76 commented 1 week ago

I'm going to give a crack at this, but I've got to study how everything comes together. The plan is to ignore the path all together if multilingual pages is disabled as turning that setting on prepends the locale code to the path. If the locale is prepended to the path, then creating a two-letter page/path doesn't trigger the issue.