summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorFabien Meghazi <fme@openerp.com>2014-01-28 11:45:59 +0100
committerFabien Meghazi <fme@openerp.com>2014-01-28 11:45:59 +0100
commitf959685bc7435d477f00f7ea62110dbd9f2ea050 (patch)
tree9e8efcea34e1e22190a3fc56fc1e8ed1b6059a6c /addons
parentd588e44d34a11303aa1a73c4811cd93819d53d04 (diff)
[IMP] auth_oauth_singup converted to server side controllers
bzr revid: fme@openerp.com-20140128104559-fafi73deyiplw7tx
Diffstat (limited to 'addons')
-rw-r--r--addons/auth_oauth/controllers/main.py19
-rw-r--r--addons/auth_oauth_signup/__init__.py1
-rw-r--r--addons/auth_oauth_signup/__openerp__.py2
-rw-r--r--addons/auth_oauth_signup/controllers/__init__.py3
-rw-r--r--addons/auth_oauth_signup/controllers/main.py20
-rw-r--r--addons/auth_oauth_signup/static/src/js/auth_oauth_signup.js16
6 files changed, 34 insertions, 27 deletions
diff --git a/addons/auth_oauth/controllers/main.py b/addons/auth_oauth/controllers/main.py
index 415d75685af..0e4d5572c52 100644
--- a/addons/auth_oauth/controllers/main.py
+++ b/addons/auth_oauth/controllers/main.py
@@ -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):
diff --git a/addons/auth_oauth_signup/__init__.py b/addons/auth_oauth_signup/__init__.py
index bc40c87d118..7c73af367bd 100644
--- a/addons/auth_oauth_signup/__init__.py
+++ b/addons/auth_oauth_signup/__init__.py
@@ -20,3 +20,4 @@
##############################################################################
import res_users
+import controllers
diff --git a/addons/auth_oauth_signup/__openerp__.py b/addons/auth_oauth_signup/__openerp__.py
index 1e5767065a4..8fc93f6c920 100644
--- a/addons/auth_oauth_signup/__openerp__.py
+++ b/addons/auth_oauth_signup/__openerp__.py
@@ -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,
diff --git a/addons/auth_oauth_signup/controllers/__init__.py b/addons/auth_oauth_signup/controllers/__init__.py
new file mode 100644
index 00000000000..e11f9ba81bb
--- /dev/null
+++ b/addons/auth_oauth_signup/controllers/__init__.py
@@ -0,0 +1,3 @@
+import main
+
+# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/auth_oauth_signup/controllers/main.py b/addons/auth_oauth_signup/controllers/main.py
new file mode 100644
index 00000000000..0b8ab22cdaa
--- /dev/null
+++ b/addons/auth_oauth_signup/controllers/main.py
@@ -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:
diff --git a/addons/auth_oauth_signup/static/src/js/auth_oauth_signup.js b/addons/auth_oauth_signup/static/src/js/auth_oauth_signup.js
deleted file mode 100644
index 926fb607358..00000000000
--- a/addons/auth_oauth_signup/static/src/js/auth_oauth_signup.js
+++ /dev/null
@@ -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;
- },
- });
- */
-
-};