Changeset 5659


Ignore:
Timestamp:
24/08/09 11:45:09 (10 years ago)
Author:
domlowe
Message:

adding securityredirect controller to enable ajax handling of new secure endpoints

Location:
cowsclient/trunk/cowsclient
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • cowsclient/trunk/cowsclient/lib/wmc_util.py

    r5626 r5659  
    106106    req = urllib2.Request(urlstring) 
    107107    req.add_header('Cookie', request.headers.get('Cookie', '')) 
    108     filehandle = openURL(req) 
    109     return filehandle.read()     
     108     
     109    try:     
     110        filehandle = openURL(req) 
     111        return filehandle.read() 
     112    except urllib2.HTTPError: 
     113        #TODO: manage 403 errors too. 
     114        return abort(401) 
    110115 
    111116 
  • cowsclient/trunk/cowsclient/public/js/layerControl.js

    r5626 r5659  
    158158        }; 
    159159         
     160         
     161        var onSecurityFail=function(resp){ 
     162                this.tree.removeNode(loadingNode); 
     163                this.redrawTree(); 
     164                alert('Login was unsucessful'); 
     165                return false; 
     166        } 
     167 
    160168        var onRetriveWMCFail = function(resp) { 
     169            if(resp.status=="302"){ 
     170             
     171            //If the user's browser can show a modal dialog window and not 
     172            //block it with a popup blocker, then show it 
     173 
     174            if (!IsPopupBlocker()){     
     175                   window.showModalDialog('http://ndg3beta.badc.rl.ac.uk/NEWcowsclient/securityredirect', 'please log in', 'dialogHeight=350px', 'dialogWidth=500px'); 
     176                 
     177                   //when logged in and new window closed, try again: 
     178                   successFn =bindDataToTree.bindAsEventListener(this); 
     179                   failureFn = onSecurityFail.bindAsEventListener(this); 
     180                   this.wmcRetriever.getWMC(wmcEndpoint, successFn, failureFn); 
     181           } 
     182           else{ 
     183               alert('Please enable popups for this site to login to the secure WMS'); 
     184           } 
     185            
     186 
     187            } 
     188           else{ 
    161189            alert("Attempt to retrive endpoint " + wmcEndpoint + " failed, response.status = " + resp.status + " (" + resp.statusText+ ")" + "."); 
    162190            this.tree.removeNode(loadingNode); 
    163191            this.redrawTree(); 
    164192            WMSC.log("Attempt to retrive endpoint " + wmcEndpoint + " failed, response.status = " + resp.status + " (" + resp.statusText+ ")" + ".") 
    165         } 
     193            }  
     194            } 
     195         
    166196         
    167197        this.redrawTree(); 
     
    328358                return; 
    329359 
    330             // add the selected layer to the layers panel 
     360            //add the selected layer to the layers panel 
    331361            this._addLayer(node); 
    332362             
     
    454484} 
    455485 
    456      
     486 
     487 
     488function IsPopupBlocker() { 
     489var oWin = window.open("http://ndg3beta.badc.rl.ac.uk/cowsclient","testpopupblocker"); 
     490 
     491if (oWin==null || typeof(oWin)=="undefined") { 
     492return true; 
     493} else { 
     494oWin.close(); 
     495return false; 
     496} 
     497} 
     498    
     499 
     500 
Note: See TracChangeset for help on using the changeset viewer.