Closed jujuna closed 7 months ago
Which version are you in? In 17.1 and up, user is no longer a service, it's just a file that you import.
I use 17.0. Which file is it?
I misread the issue. In 17.0 there is indeed a userService and it appears you're getting that service correctly but it doesn't have any data because that data is generally not needed in the frontend. The user service exposes the user-related data from the session_info, in the backend this data is generated by the session_info
method in web/models/ir_http.py, while for the frontend it's defined by the get_frontend_session_info
method on that same model. If you need more data in the user service in the frontend you'll need to override this second method and add info that's added by the first method. Keep in mind that in this context, user
can be the public user so make sure to check access rights as necessary. If you just return extra data from this method with the same keys as the other method the user service will pick it up automatically.
I got it! but didn't understand why user_id is undefined in JS? i saw get_frontend_session_info
method and it has 'user_id': user.id if session_uid else False,
. you said because that data is generally not needed in the frontend
. What do you mean exactly? Should i use it in template and then i will give access on JS?
Looks like user_id is unused, the correct field name would be uid (which will be exposed by the user service as userId) looks like a mistake in standard Odoo, it doesn't seem that any of the standard frontend code relies on the user id though.
Okay thank you very much for explanation! I will close it.
I have a public component and in this template i call another component
LibraryData
and in this component i wanna get info about current user, for that i use useService but data is undefined