[IMP] auth_oauth_singup converted to server side controllers

bzr revid: fme@openerp.com-20140128104559-fafi73deyiplw7tx
This commit is contained in:
Fabien Meghazi 2014-01-28 11:45:59 +01:00
parent d588e44d34
commit f959685bc7
6 changed files with 34 additions and 27 deletions

View File

@ -47,10 +47,7 @@ class OAuthLogin(openerp.addons.web.controllers.main.Home):
providers = []
for provider in providers:
return_url = request.httprequest.url_root + 'auth_oauth/signin'
state = dict(
d=request.session.db,
p=provider['id']
)
state = self.get_state(provider)
params = dict(
debug=request.debug,
response_type='token',
@ -63,10 +60,17 @@ class OAuthLogin(openerp.addons.web.controllers.main.Home):
return providers
def get_state(self, provider):
return dict(
d=request.session.db,
p=provider['id']
)
@http.route()
def web_login(self, *args, **kw):
# TODO: ensure_db()
request.disable_db = False
providers = self.list_providers()
response = super(OAuthLogin, self).web_login(*args, **kw)
if isinstance(response, LazyResponse):
@ -80,15 +84,10 @@ class OAuthLogin(openerp.addons.web.controllers.main.Home):
else:
error = None
response.params['values'].update(
providers=self.list_providers(),
providers=providers,
error=error,
)
# TODO: code in old js controller that should be converted in auth_oauth_signup
# if (this.oauth_providers.length === 1 && params.type === 'signup') {
# this.do_oauth_sign_in(this.oauth_providers[0]);
# }
return response
class OAuthController(http.Controller):

View File

@ -20,3 +20,4 @@
##############################################################################
import res_users
import controllers

View File

@ -31,7 +31,7 @@ Allow users to sign up through OAuth2 Provider.
'website': 'http://www.openerp.com',
'depends': ['auth_oauth', 'auth_signup'],
'data': [],
'js': ['static/src/js/auth_oauth_signup.js'],
'js': [],
'css': [],
'qweb': [],
'installable': True,

View File

@ -0,0 +1,3 @@
import main
# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,20 @@
import openerp
import werkzeug
from openerp.http import request
class OAuthSignupLogin(openerp.addons.web.controllers.main.Home):
def list_providers(self):
providers = super(OAuthSignupLogin, self).list_providers()
if len(providers) == 1 and request.params.get('mode') == 'signup':
werkzeug.exceptions.abort(werkzeug.utils.redirect(providers[0]['auth_link'], 303))
return providers
def get_state(self, provider):
state = super(OAuthSignupLogin, self).get_state(provider)
token = request.params.get('token')
if token:
state['t'] = token
return state
# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,16 +0,0 @@
openerp.auth_oauth_signup = function(instance) {
/* TODO: make this a server side controller
// override Login._oauth_state to add the signup token in the state
instance.web.Login.include({
_oauth_state: function(provider) {
var state = this._super.apply(this, arguments);
if (this.params.token) {
state.t = this.params.token;
}
return state;
},
});
*/
};