summaryrefslogtreecommitdiff
path: root/addons/web
diff options
context:
space:
mode:
authorRaphael Collet <rco@openerp.com>2017-01-03 16:53:49 +0100
committerRaphael Collet <rco@openerp.com>2017-01-03 16:53:49 +0100
commit80c46ee4fc273f59823821dcdc98bcc6b7fdeeaf (patch)
tree76d10b363ff68240236249ba42756e77a2ee13d5 /addons/web
parent19fce206ac420e03465316b8d8db1bd54ea4c013 (diff)
parent172a767e5f7add9c5e806e00e0146dc5f09e806b (diff)
[MERGE] base: tighten access rights of ir.* models
Diffstat (limited to 'addons/web')
-rw-r--r--addons/web/controllers/main.py12
-rw-r--r--addons/web/static/src/js/widgets/user_menu.js16
2 files changed, 15 insertions, 13 deletions
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py
index b1d5c732a13..930a8233eb5 100644
--- a/addons/web/controllers/main.py
+++ b/addons/web/controllers/main.py
@@ -18,6 +18,7 @@ import os
import re
import sys
import time
+import werkzeug
import werkzeug.utils
import werkzeug.wrappers
import zlib
@@ -777,6 +778,17 @@ class Session(http.Controller):
request.session.check_security()
return None
+ @http.route('/web/session/account', type='json', auth="user")
+ def account(self):
+ ICP = request.env['ir.config_parameter'].sudo()
+ params = {
+ 'response_type': 'token',
+ 'client_id': ICP.get_param('database.uuid') or '',
+ 'state': json.dumps({'d': request.db, 'u': ICP.get_param('web.base.url')}),
+ 'scope': 'userinfo',
+ }
+ return 'https://accounts.odoo.com/oauth2/auth?' + werkzeug.url_encode(params)
+
@http.route('/web/session/destroy', type='json', auth="user")
def destroy(self):
request.session.logout()
diff --git a/addons/web/static/src/js/widgets/user_menu.js b/addons/web/static/src/js/widgets/user_menu.js
index 3c65ab3ac49..d1cd0eb842b 100644
--- a/addons/web/static/src/js/widgets/user_menu.js
+++ b/addons/web/static/src/js/widgets/user_menu.js
@@ -58,21 +58,11 @@ var UserMenu = Widget.extend({
});
},
on_menu_account: function() {
+ var self = this;
this.trigger_up('clear_uncommitted_changes', {
callback: function() {
- var P = new Model('ir.config_parameter');
- P.call('get_param', ['database.uuid']).then(function(dbuuid) {
- var state = {
- 'd': session.db,
- 'u': window.location.protocol + '//' + window.location.host,
- };
- var params = {
- response_type: 'token',
- client_id: dbuuid || '',
- state: JSON.stringify(state),
- scope: 'userinfo',
- };
- framework.redirect('https://accounts.odoo.com/oauth2/auth?'+$.param(params));
+ self.rpc('/web/session/account').then(function(url) {
+ framework.redirect(url);
}).fail(function(result, ev){
ev.preventDefault();
framework.redirect('https://accounts.odoo.com/account');