[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 = []
|
||||
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):
|
||||
|
|
|
@ -20,3 +20,4 @@
|
|||
##############################################################################
|
||||
|
||||
import res_users
|
||||
import controllers
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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