[FIX] auth_oauth

bzr revid: fme@openerp.com-20140128085945-r5mrypiyinxs2s3h
This commit is contained in:
Fabien Meghazi 2014-01-28 09:59:45 +01:00
parent 640028b0b1
commit 35383bdc39
3 changed files with 24 additions and 1 deletions

View File

@ -33,6 +33,7 @@ Allow users to login through OAuth2 Provider.
'website': 'http://www.openerp.com',
'depends': ['base', 'web', 'base_setup'],
'data': [
'res_users.xml',
'auth_oauth_data.xml',
'auth_oauth_data.yml',
'auth_oauth_view.xml',

View File

@ -1,3 +1,4 @@
import functools
import logging
import simplejson
@ -14,6 +15,26 @@ from openerp.tools.translate import _
_logger = logging.getLogger(__name__)
#----------------------------------------------------------
# helpers
#----------------------------------------------------------
def fragment_to_query_string(func):
@functools.wraps(func)
def wrapper(self, *a, **kw):
if not kw:
return """<html><head><script>
var l = window.location;
var q = l.hash.substring(1);
var r = '/' + l.search;
if(q.length !== 0) {
var s = l.search ? (l.search === '?' ? '' : '&') : '?';
r = l.pathname + l.search + s + q;
}
window.location = r;
</script></head><body></body></html>"""
return func(self, *a, **kw)
return wrapper
#----------------------------------------------------------
# Controller
#----------------------------------------------------------
@ -73,6 +94,7 @@ class OAuthLogin(openerp.addons.web.controllers.main.Home):
class OAuthController(http.Controller):
@http.route('/auth_oauth/signin', type='http', auth='none')
@fragment_to_query_string
def signin(self, **kw):
state = simplejson.loads(kw['state'])
dbname = state['d']

View File

@ -10,7 +10,7 @@
<xpath expr="//page[@string='Access Rights']" position="after">
<page string="Oauth">
<group>
<field name="oauth_provider"/>
<field name="oauth_provider_id"/>
<field name="oauth_uid"/>
<field name="oauth_access_token"/>
</group>