backporting changeset 11388 for setting a ses cookie for Vandelay and friends
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 19 Dec 2008 18:48:17 +0000 (18:48 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 19 Dec 2008 18:48:17 +0000 (18:48 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_4@11627 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/xul/staff_client/chrome/content/main/main.js
Open-ILS/xul/staff_client/chrome/content/main/menu.js
Open-ILS/xul/staff_client/chrome/content/util/network.js

index a91f1ec..ba18315 100644 (file)
@@ -90,6 +90,18 @@ function main_init() {
                        G.data.server = url; G.data.stash('server'); 
                        G.data.session = { 'key' : G.auth.session.key, 'auth' : G.auth.session.authtime }; G.data.stash('session');
                        G.data.stash_retrieve();
+            try {
+                var ios = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
+                var cookieUri = ios.newURI("http://" + G.data.server_unadorned, null, null);
+                var cookieUriSSL = ios.newURI("https://" + G.data.server_unadorned, null, null);
+                var cookieSvc = Components.classes["@mozilla.org/cookieService;1"].getService(Components.interfaces.nsICookieService);
+
+                cookieSvc.setCookieString(cookieUri, null, "ses="+G.data.session.key, null);
+                cookieSvc.setCookieString(cookieUriSSL, null, "ses="+G.data.session.key, null);
+
+            } catch(E) {
+                alert('Error setting session cookie: ' + E);
+            }
 
                        grant_perms(url);
 
index fd8087e..f668ce5 100644 (file)
@@ -488,6 +488,19 @@ main.menu.prototype = {
                                                        network.simple_request('AUTH_DELETE', [ obj.data.session.key ] );
                                                        obj.data.session = obj.data.previous_session;
                                                        obj.data.stash('session');
+                                           try {
+                                                               var ios = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
+                                                               var cookieUri = ios.newURI("http://" + obj.data.server_unadorned, null, null);
+                                                               var cookieUriSSL = ios.newURI("https://" + obj.data.server_unadorned, null, null);
+                                                               var cookieSvc = Components.classes["@mozilla.org/cookieService;1"].getService(Components.interfaces.nsICookieService);
+
+                                                               cookieSvc.setCookieString(cookieUri, null, "ses="+obj.data.session.key, null);
+                                                               cookieSvc.setCookieString(cookieUriSSL, null, "ses="+obj.data.session.key, null);
+
+            } catch(E) {
+                alert('Error setting session cookie: ' + E);
+            }
+
                                                        removeCSSClass(document.getElementById('main_tabbox'),'operator_change');
                                                } else {
                                                        if (network.get_new_session(offlineStrings.getString('menu.cmd_chg_session.label'),{'url_prefix':obj.url_prefix})) {
index 736d680..6d425d0 100644 (file)
@@ -261,6 +261,18 @@ util.network.prototype = {
                        data.session.key = data.temporary_session.key; 
                        data.session.authtime = data.temporary_session.authtime; 
                        data.stash('session');
+            try {
+                var ios = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
+                var cookieUri = ios.newURI("http://" + data.server_unadorned, null, null);
+                var cookieUriSSL = ios.newURI("https://" + data.server_unadorned, null, null);
+                var cookieSvc = Components.classes["@mozilla.org/cookieService;1"].getService(Components.interfaces.nsICookieService);
+
+                cookieSvc.setCookieString(cookieUri, null, "ses="+data.session.key, null);
+                cookieSvc.setCookieString(cookieUriSSL, null, "ses="+data.session.key, null);
+
+            } catch(E) {
+                alert('Error setting session cookie: ' + E);
+            }
                        if (! data.list.au ) data.list.au = [];
                        data.list.au[0] = JSON2js( data.temporary_session.usr );
                        data.stash('list');