[ADD] specific url for direct login
authorChristophe Simonis <chs@openerp.com>
Tue, 20 Dec 2011 15:05:56 +0000 (16:05 +0100)
committerChristophe Simonis <chs@openerp.com>
Tue, 20 Dec 2011 15:05:56 +0000 (16:05 +0100)
bzr revid: chs@openerp.com-20111220150556-ffcaeae94w195gmt

addons/web/controllers/main.py
addons/web/static/src/js/chrome.js

index ba3e78a..6a7ab94 100644 (file)
@@ -17,6 +17,7 @@ from xml.etree import ElementTree
 from cStringIO import StringIO
 
 import babel.messages.pofile
+import werkzeug.utils
 
 import web.common
 openerpweb = web.common.http
@@ -200,6 +201,14 @@ class WebClient(openerpweb.Controller):
         }
         return r
 
+    @openerpweb.httprequest
+    def login(self, req, db, login, key):
+        req.session.authenticate(db, login, key, {})
+        redirect = werkzeug.utils.redirect('/web/webclient/home', 303)
+        cookie_val = urllib2.quote(simplejson.dumps(req.session_id))
+        redirect.set_cookie('session0|session_id', cookie_val)
+        return redirect
+
     @openerpweb.jsonrequest
     def translations(self, req, mods, lang):
         lang_model = req.session.model('res.lang')
index 11fb360..424b1e7 100644 (file)
@@ -532,15 +532,6 @@ openerp.web.Login =  openerp.web.Widget.extend(/** @lends openerp.web.Login# */{
                 this.selected_password = localStorage.getItem('last_password_login_success');
             }
         }
-        
-        var qs = jQuery.deparam(jQuery.param.querystring());
-        if (qs.db) {
-            this.selected_db = qs.db;
-        }
-        if (qs.login) {
-            this.selected_login = qs.login;
-        }
-
     },
     start: function() {
         var self = this;
@@ -580,7 +571,9 @@ openerp.web.Login =  openerp.web.Widget.extend(/** @lends openerp.web.Login# */{
         this.$element.closest(".openerp").removeClass("login-mode");
     },
     on_submit: function(ev) {
-        ev.preventDefault();
+        if(ev) {
+            ev.preventDefault();
+        }
         var $e = this.$element;
         var db = $e.find("form [name=db]").val();
         var login = $e.find("form input[name=login]").val();