getkirby / kirby

Kirby's core application folder
https://getkirby.com
Other
1.27k stars 167 forks source link

User blueprint: `home` option does not work with frontend URL #4054

Closed sebastiangreger closed 2 years ago

sebastiangreger commented 2 years ago

Description

When using home: "{{ site.find('notes').children.first.url }}" in a user blueprint (as per the example in the docs), the browser does not redirect to the frontend page, but instead shows a "The JSON response could not be parsed" modal.

Calling the URL /panel/login via the address bar after this error, the browser forwards correctly to that page.

Expected behavior
Based on the documentation, this home option setup should redirect the browser to the indicated URL.

Screenshots
Screenshot 2021-12-19 at 11-19-02 Login Mægazine

To reproduce

  1. Install a fresh 3.6.1 Starterkit and create the admin user; then log out
  2. Add home: "{{ site.find('notes').children.first.url }}" to the user/default.yml blueprint
  3. Log in from the form at /panel/login
  4. See error

(Also tested this with a existing site, so this should be reproducible by adding that home option to any user blueprint; no fresh Starterkit needed.)

Your setup

Kirby Version
3.6.1

Console output

The JSON response could not be parsed index.js:1:12350
    fatal http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/index.js:1
    s http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    dispatch http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:12
    dispatch http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    request http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/index.js:1
    go http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/index.js:1
    reload http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/index.js:1
    $reload http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/index.js:1
    login http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/index.js:1
    submit http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/index.js:1
    Vt http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    n http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    _wrapper http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    (Async: EventListener.handleEvent)
    to http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    ae http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    no http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    g http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    f http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    Ho http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    _update http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    r http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    get http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    vn http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    mount http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    $mount http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    $mount http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    init http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    f http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    f http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    v http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    f http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    Ho http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    _update http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    r http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    get http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    vn http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    mount http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    $mount http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    $mount http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    init http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    f http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    f http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6
    v http://starterkit.test/media/panel/b3a806218f035122e3a0d6319430a39f/js/vendor.js:6

Your system (please complete the following information)

pReya commented 2 years ago

Sidenote: From the documentation it's unclear whether the home: property in a blueprint also works with frontend routes (not using the template syntax, just plain old routes/URLs). E.g. can I use home: myFrontendPage/myChildFrontendPage ? Would be nice to add that to the doc – if it's supported.

lukasbestle commented 2 years ago

As a user I'd expect that the value of the home option is run through Kirby's url() helper. So absolute URLs should be left as they are and relative URLs should be relative to the site, not the Panel.

sebastiangreger commented 2 years ago

Thank you all, @pReya in particular for the detective work leading up to those PRs, for the swift and effective resolution of this bug and #4056.

I just re-tested my code that initially revealed these two bugs with the develop branch and am happy to confirm that the home option now works with frontend URLs, and for users without panel access as well. Documented here: https://forum.getkirby.com/t/remember-requested-path-in-session-via-controller/24382/18

As far as I can tell, this bug has been resolved with PR #4085