|
@ -410,3 +410,29 @@ class Main(http.Controller): |
|
|
response=None, |
|
|
response=None, |
|
|
status=302, |
|
|
status=302, |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from odoo.http import Root, HttpRequest |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def patch_get_request(f): |
|
|
|
|
|
"""Allow ``/oauth/userinfo`` GET request to be accepted for outline |
|
|
|
|
|
|
|
|
|
|
|
Outline (and probably other services) can implement OIDC by adding a |
|
|
|
|
|
``content-type`` set to "application/json". This makes odoo 14 use |
|
|
|
|
|
JsonRequest object that will refuse the request. |
|
|
|
|
|
|
|
|
|
|
|
This is monkey-patching, and is not meant to be a final solution, but |
|
|
|
|
|
only a temporary one. |
|
|
|
|
|
|
|
|
|
|
|
""" |
|
|
|
|
|
|
|
|
|
|
|
def patched(self, httprequest): |
|
|
|
|
|
if httprequest.path == "/oauth/userinfo" and \ |
|
|
|
|
|
httprequest.method == "GET": |
|
|
|
|
|
return HttpRequest(httprequest) |
|
|
|
|
|
return f(self, httprequest) |
|
|
|
|
|
return patched |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Root.get_request = patch_get_request(Root.get_request) |