Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
3 Odpowiedzi
11907 Widoki

Problem:

I wrote a new web controller in a new odoo addon - something like that:

@http.route('/web/somefunction', type='http', auth="none")
def somefunction(self, redirect='/web', **kw):
# render domething

Now if I open the URL with the parameter session_id odoo throws me 404. I also set the database with the parameter db but I think there should be no problem with the database because I use auth in the route definition.

The url:

http://localhost:8069/web/somefunction?db=somedb&session_id=61dd713f86c71c42fd72b92849deba77f451c15c

If I remove the session_id parameter the controller function is found and called.


Further information:

I need to set the session_id because I want to change the id. Here I use the functionality of openerp/http.py (class: Root, function: setup_session).

Also I created the session first (in another function which redirects to the "somefunction" controller function:

new_session = http.root.session_store.new()
new_session.db = request.session.db # just a test

So I use the session id of new_session. In my opinion this should work.


Do you have any ideas?

Awatar
Odrzuć
Najlepsza odpowiedź

Fix the line of route tha contains auth=''none

You put none outside of ''

It should be auth='none'

Awatar
Odrzuć
Autor

Thanks for the answer. But this was a copy-past-error. This is correct in my code.

Najlepsza odpowiedź

I think this is default behaviour of http://werkzeug.pocoo.org/ tool -- it gets session_id from cookie or from get parameters.


As for redefining sessions, try to check this file: https://github.com/yelizariev/addons-yelizariev/blob/8.0/web_sessions_management/http.py

Awatar
Odrzuć
Powiązane posty Odpowiedzi Widoki Czynność
18
sie 20
22679
4
paź 20
5658
2
mar 16
4350
1
lip 25
2144
1
maj 25
914