Fix overzealous prompting for auth credentials, and some debug lines
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 29 Sep 2010 20:49:05 +0000 (20:49 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 29 Sep 2010 20:49:05 +0000 (20:49 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@18106 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/js/dojo/openils/XUL.js
Open-ILS/web/js/ui/base.js
Open-ILS/web/opac/common/js/opac_utils.js

index 692097e..00dfdc5 100644 (file)
@@ -16,15 +16,17 @@ if(!dojo._hasResource["openils.XUL"]) {
         if(openils.XUL.isXUL()) {
             try {
                 if(openils.XUL.enableXPConnect()) {
-                               var CacheClass = new Components.Constructor("@mozilla.org/openils_data_cache;1", "nsIOpenILS");
-                               return new CacheClass().wrappedJSObject.OpenILS.prototype.data;
+                    netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
+                    var CacheClass = new Components.Constructor("@mozilla.org/openils_data_cache;1", "nsIOpenILS");
+                    return new CacheClass().wrappedJSObject.OpenILS.prototype.data;
                 }
             } catch(e) {
                 console.log("Error loading XUL stash: " + e);
+                return { 'error' : e };
             }
         }
 
-        return {};
+        return { 'error' : 'openils.XUL.isXUL() == false' };
     }
 
     openils.XUL.newTab = function(path, tabInfo, options) {
index b49b1e3..75cafe7 100644 (file)
@@ -19,6 +19,11 @@ function oilsSetupUser() {
     openils.User.authtoken = null;
     openils.User.workstation = null;
 
+    if(!authtoken && openils.XUL.isXUL()) {
+               stash = openils.XUL.getStash();
+               authtoken = stash.session.key
+       }
+
     if(authtoken) {
         user = new openils.User();
         delete user.sessionCache[authtoken];
@@ -38,6 +43,7 @@ function oilsSetupUser() {
             dojo.addOnLoad(function(){
                 if(openils.XUL.isXUL()) {
                     // let XUL handle the login dialog
+                    dump('getNewSession in base.js\n');
                     openils.XUL.getNewSession( function() { location.href = location.href } );
                 } else {
                     // in web-only mode, use the dojo login dialog
index 038983e..9ed6260 100644 (file)
@@ -536,6 +536,7 @@ function setSessionCookie(ses) {
        if ses != G.user.session, we also force a grab */
 function grabUser(ses, force) {
 
+    _debug("grabUser auth token = " + ses);
        if(!ses && isXUL()) {
                stash = fetchXULStash();
                ses = stash.session.key
@@ -545,6 +546,7 @@ function grabUser(ses, force) {
        if(!ses) {
                ses = cookieManager.read(COOKIE_SES);
                /* https cookies don't show up in http servers.. */
+               _debug("cookie auth token = " + ses);
        }
 
        if(!ses) return false;
@@ -563,6 +565,7 @@ function grabUser(ses, force) {
 
         if(isXUL()) {
             dojo.require('openils.XUL');
+            dump('getNewSession in opac_utils.js\n');
             openils.XUL.getNewSession( 
                 function(success, authtoken) { 
                     if(success) {