跳至内容
菜单
此问题已终结
1 回复
7427 查看

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?


形象
丢弃
最佳答案

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.

形象
丢弃
相关帖文 回复 查看 活动
2
12月 19
4352
5
10月 18
6784
1
3月 15
4265
3
2月 16
11803
2
1月 24
9349