Se rendre au contenu
Menu
Cette question a été signalée
1 Répondre
7422 Vues

Hello all,

I can now control the request.uid in the method _auth_method_public of the class ir_http. It works well. I can change the current user according to the url.

Now, I'm searching the place to control and modify request.website.user_id. Where does it take his value? I want to control it too please.

Could you help please?


Avatar
Ignorer
Meilleure réponse

Hello Pascal,

You have to look inside module website => models => ir_http.py, following method is available and useful for you.

    def _dispatch(self):
first_pass = not hasattr(request, 'website')
...
...
if request.website_enabled:
try:
if func:
self._authenticate(func.routing['auth'])
else:
self._auth_method_public()
except Exception as e:
return self._handle_exception(e)
request.redirect = lambda url, code=302: werkzeug.utils.redirect(url_for(url), code)
request.website = request.registry['website'].get_current_website(request.cr, request.uid, context=request.context)
langs = [lg[0] for lg in request.website.get_languages()]
path = request.httprequest.path.split('/')
            ...
            ...
return super(ir_http, self)._dispatch()


Inside above method request.website is set with the browseble object of website model. And user_id is one of the fields of "website" model. So, you can access request.website.user_id. If you want to change then you can change it from the website setting menu.

I am sure that it will help a lot.

Thanks.

Avatar
Ignorer
Publications associées Réponses Vues Activité
2
déc. 19
4337
5
oct. 18
6746
1
mars 15
4249
3
févr. 16
11788
2
janv. 24
9328