The res.users model functions a bit uniquely since it should allow a user to modify their own parameters but turns off model edition priviledges by default. See "SELF_WRITEABLE_FIELDS". This implies that ir_ui_view#_postprocess_access_rights method will by default turn off record edition, by automatically adding a 'edit="false"' attribute on the form node when the frontend calls 'get_views'. This will in turn prevent the user from modifying its preferences as it will set the form view in readonly mode. (It was apparently ignored pre-OWL, hence why we only have this issue now). To fix the issue, we force the edition by manually setting 'edit="1"' on our "view_users_form_simple_modif" form. Allowing the end-user to modify their own settings again. A tour was added to ensure this behavior. Note that tour steps need to be adapted in the 'hr' module, as this module changes the flow of modifying user preferences. Task-3067001 closes odoo/odoo#106440 X-original-commit: 490d480458590c205962c3f9b95a63790a59f4d3 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com> Signed-off-by: Warnon Aurélien (awa) <awa@odoo.com>
16 lines
620 B
Python
16 lines
620 B
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo.tests import HttpCase, tagged
|
|
|
|
|
|
@tagged('-at_install', 'post_install')
|
|
class TestUserModifyOwnProfile(HttpCase):
|
|
|
|
def test_user_modify_own_profile(self):
|
|
"""" A user should be able to modify their own profile.
|
|
Even if that user does not have access rights to write on the res.users model. """
|
|
|
|
self.start_tour("/web", "mail/static/tests/tours/user_modify_own_profile_tour.js", login="demo")
|
|
self.assertEqual(self.env.ref('base.user_demo').email, "updatedemail@example.com")
|