[IMP] auth_oauth_singup converted to server side controllers
bzr revid: fme@openerp.com-20140128104559-fafi73deyiplw7tx
This commit is contained in:
parent
d588e44d34
commit
f959685bc7
|
@ -47,10 +47,7 @@ class OAuthLogin(openerp.addons.web.controllers.main.Home):
|
||||||
providers = []
|
providers = []
|
||||||
for provider in providers:
|
for provider in providers:
|
||||||
return_url = request.httprequest.url_root + 'auth_oauth/signin'
|
return_url = request.httprequest.url_root + 'auth_oauth/signin'
|
||||||
state = dict(
|
state = self.get_state(provider)
|
||||||
d=request.session.db,
|
|
||||||
p=provider['id']
|
|
||||||
)
|
|
||||||
params = dict(
|
params = dict(
|
||||||
debug=request.debug,
|
debug=request.debug,
|
||||||
response_type='token',
|
response_type='token',
|
||||||
|
@ -63,10 +60,17 @@ class OAuthLogin(openerp.addons.web.controllers.main.Home):
|
||||||
|
|
||||||
return providers
|
return providers
|
||||||
|
|
||||||
|
def get_state(self, provider):
|
||||||
|
return dict(
|
||||||
|
d=request.session.db,
|
||||||
|
p=provider['id']
|
||||||
|
)
|
||||||
|
|
||||||
@http.route()
|
@http.route()
|
||||||
def web_login(self, *args, **kw):
|
def web_login(self, *args, **kw):
|
||||||
# TODO: ensure_db()
|
# TODO: ensure_db()
|
||||||
request.disable_db = False
|
request.disable_db = False
|
||||||
|
providers = self.list_providers()
|
||||||
|
|
||||||
response = super(OAuthLogin, self).web_login(*args, **kw)
|
response = super(OAuthLogin, self).web_login(*args, **kw)
|
||||||
if isinstance(response, LazyResponse):
|
if isinstance(response, LazyResponse):
|
||||||
|
@ -80,15 +84,10 @@ class OAuthLogin(openerp.addons.web.controllers.main.Home):
|
||||||
else:
|
else:
|
||||||
error = None
|
error = None
|
||||||
response.params['values'].update(
|
response.params['values'].update(
|
||||||
providers=self.list_providers(),
|
providers=providers,
|
||||||
error=error,
|
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
|
return response
|
||||||
|
|
||||||
class OAuthController(http.Controller):
|
class OAuthController(http.Controller):
|
||||||
|
|
|
@ -20,3 +20,4 @@
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
import res_users
|
import res_users
|
||||||
|
import controllers
|
||||||
|
|
|
@ -31,7 +31,7 @@ Allow users to sign up through OAuth2 Provider.
|
||||||
'website': 'http://www.openerp.com',
|
'website': 'http://www.openerp.com',
|
||||||
'depends': ['auth_oauth', 'auth_signup'],
|
'depends': ['auth_oauth', 'auth_signup'],
|
||||||
'data': [],
|
'data': [],
|
||||||
'js': ['static/src/js/auth_oauth_signup.js'],
|
'js': [],
|
||||||
'css': [],
|
'css': [],
|
||||||
'qweb': [],
|
'qweb': [],
|
||||||
'installable': True,
|
'installable': True,
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
import main
|
||||||
|
|
||||||
|
# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -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:
|
|
@ -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;
|
|
||||||
},
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
|
|
||||||
};
|
|
Loading…
Reference in New Issue