Skip to content

[CMSUI] - User preferences route #47

Description

@sneridagh

Important

If you are not a member of the Volto Team or Developers Team in the Plone GitHub organization, then do not work on or comment on this issue.

Decide if we need to keep this, if so, implement it.
Could be the place to locate the change password lik?

Activity

  1. added theissue type on Feb 5, 2025
  2. davisagli commented on Feb 5, 2025

    @davisagli
    Member

    I would call it Settings which I see more commonly these days.

    I agree it's a good place for accessing Change Password.

    It should include at least:

    • language (and we should use this to render the CMSUI labels, even if the content language is different)
    • timezone
  3. moved this to Todo in Auroraon Oct 18, 2025
  4. transferred this issue fromplone/voltoon Jun 4, 2026
  5. moved this from Backlog to In progress in Pole Position Sprint 2026on Jun 9, 2026
  6. self-assigned this
    on Jun 9, 2026
  7. szakitibi commented on Jun 10, 2026

    @szakitibi

    I have looked into things a bit, and the current state of things are:

    • Classic UI @@user-prefernces has the language, timezone fields based on IPersonalPreferences.
    • IPersonalPreferences (language, timezone, wysiwyg_editor) is member-property data, but
      restapi never references it, thus its invisible.
    • @userschema and GET @users/{id} expose only member-fields, but no language or timezone.
    • ⚠️ PATCH @users/{id} on the other hand writes any member property blindly, the setMemberProperties has no schema check), thus language, timezone write fine but can't be read back - see plone.restapi PATCH @user

    So technically it is possible to implement a write-only form, but it is not readable until plone.restapi has an extended version. I would create the matching ticket and PR in plone.restapi first to expose language, timezone user preferences.

    @pnicolli

    However there is a decision to be made on the how. Do we extend the current GET @userschema with language and timezone?

  8. pnicolli commented on Jun 10, 2026

    @pnicolli
    Collaborator

    @davisagli @sneridagh What do you think about this that @szakitibi mentioned? This is not blocking user preferences development for now, but it makes sense to make a decision about this issue. I think language selection might not even be working in volto right now (?)

  9. szakitibi commented on Jun 10, 2026

    @szakitibi

    I think language selection might not even be working in volto right now (?)

    It doesn't send anything to the backend, and it doesn't seem to store it in a cookie either.

  10. sneridagh commented on Jun 10, 2026

    @sneridagh
    MemberAuthor

    @pnicolli @szakitibi I've been talking about this with @davisagli these last days, due to an issue we found in Volto.
    We mentioned that we need to update or at least revisit Volto's (and I think Blicca is doing it also) choice to maintain in sync the language "frame" with the content language. However it's still to be seen the underlying implications and the whole workflow (defaults, overrides, etc).

    As far as I've been told, the user preferences work (at least in a multilingual site). Until you find a content that is not your preferred lang, then it changes. The I18N_LANGUAGE cookie is all over the place, controlling the behavior.

    So, I would for now, when coming to the language in settings handling, just change the current language, and probably, set the cookie if we want to maintain that persistent somewhere. Then when whe tackle the multilingual handling, we decide about the whole flow.

  11. szakitibi commented on Jun 12, 2026

    @szakitibi

    The @@personal-information route has been added with #117. The "Personal Information" form is based @userschema similar to Volto personal-information page.

    The schema generated form is missing some features, widgets, error handling, but as far as I have seen, they are all know issues - see #93.

    The "Personal Information" page has the "Change password" link append to it. It is currently a placeholder and pointed at reset-password route of #109 (#48).

    The #117 changes do not include language and timezone fields for now. Technically they can be persisted by hacking, but cannot be read back, without being exposed in REST API. From my point of view cleanest path is to extend the @userschema and @user to include them. It would automatically extend the personal information form too, although some tests might have to be extended and fixed afterwards.

    Regarding the exact usage of the persisted language setting, is something which could be decided later.

  12. pnicolli commented on Jun 21, 2026

    @pnicolli
    Collaborator

    I've been talking about this with @davisagli these last days, due to an issue we found in Volto.
    We mentioned that we need to update or at least revisit Volto's (and I think Blicca is doing it also) choice to maintain in sync the language "frame" with the content language.

    @sneridagh @davisagli
    Ah, yes, p l e a s e. I always hated it when I had to assist a client on a content that is neither italian nor english and I had to work with a translated cmsui. I would really want the cmsui to be in my language instead of the content language.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions