Changeset 2626 for TI05-delivery


Ignore:
Timestamp:
20/06/07 15:31:32 (12 years ago)
Author:
lawrence
Message:

Interim checkin supports "dummy" logging in and out,
provided pages inherit from ndgPage.kid

Location:
TI05-delivery/ows_framework/trunk/ows_server/ows_server
Files:
3 added
9 edited

Legend:

Unmodified
Added
Removed
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/config/ndgDiscovery.config

    r2618 r2626  
    1010# 
    1111# the following is the server on which this browse/discovery instance runs! 
    12 server:         http://localhost:8001 
     12server:         http://localhost:8080 
     13passwordFile:   /home/bnl/sandboxes/ndg/TI05-delivery/ows_framework/trunk/ows_server/ows_server/config/passwords.txt 
    1314# 
    1415# the following is the server on which the NDG discovery service is running! (Not to be confused with 
     
    2728 
    2829repository:       glue.badc.rl.ac.uk 
    29 passwordFile:     passwords.txt 
     30 
    3031 
    3132[SEARCH] 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/config/ndgMiddleware.py

    r2618 r2626  
    2222        self.globals.ndgAlt=cf.get('layout','ndgAlt','Visit NDG') 
    2323        self.globals.PageLogo=cf.get('layout','pageLogo',None) 
     24         
     25        self.globals.server=cf.get('DEFAULT','server','') 
     26        self.globals.wayfuri='%s/wayf'%self.globals.server 
     27         
     28        self.globals.logout='%s/logout'%self.globals.server 
     29         
    2430        self.config=cf 
    2531         
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/config/routing.py

    r2614 r2626  
    3535    # following is the shell for the rest of the ndg  
    3636    map.connect('login', controller='login') 
     37    map.connect('wayf', controller='login', action='wayf') 
    3738    map.connect('logout', controller='logout') 
    3839    map.connect('view/:uri', controller = 'retrieve', action='view') 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/discovery.py

    r2614 r2626  
    11from ows_server.lib.base import * 
     2 
    23class DiscoveryController(BaseController): 
    34    ''' Provides the pylons controller for NDG discovery ''' 
    45    def index(self): 
     6        # parse the query string and hand off to a discovery engine 
     7        c.query='' 
     8        c.hits='' 
     9        c.time='' 
     10        c.scope='' 
     11        c.start='' 
     12        c.end='' 
     13        c.stride'' 
     14        c.links=[] 
     15        
     16        c.repository='' 
     17        c.title='' 
     18        c.summary='' 
     19        c.morelink='' 
     20        c.spatial=[,,,] 
     21        c.temporal=[,] 
     22         
    523        return Response('not yet implemented') 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/login.py

    r2614 r2626  
    11from ows_server.lib.base import * 
     2from paste.request import parse_querystring 
     3 
    24class LoginController(BaseController): 
    35    ''' Provides the pylons controller for local login ''' 
     6     
     7    def __setup(self): 
     8        #where are we going back to? 
     9        self.inputs=dict(parse_querystring(request.environ)) 
     10        if 'r' in self.inputs: 
     11            c.returnTo=self.inputs['r'] 
     12        else: 
     13            c.returnTo='' 
     14     
    415    def index(self): 
    5         return Response('login not yet implemented') 
     16        ''' Ok, you really want to login here ''' 
     17        self.__setup() 
     18         
     19        # fudge for now 
     20        session['ndgSec']={'h':'badc.nerc.ac.uk','u':'lawrence','r':['all']} 
     21        session.save() 
     22         
     23        # and now go back to whence we had come 
     24        h.redirect_to(c.returnTo) 
     25         
     26    def wayf(self): 
     27        ''' NDG equivalent to Shibboleth WAYF ''' 
     28         
     29        self.__setup() 
     30         
     31        #currently fudge this 
     32        c.providers={'badc.nerc.ac.uk':g.server+'/login', 
     33                          'bodc.nerc.a.cuk':'NotImplemented'} 
     34        if 'roleNeeded' in self.inputs: 
     35             
     36            # should ask the attribute authority what hosts to put up for login 
     37            # but meanwhile we'll fudge it 
     38            pass 
     39         
     40        return render_response('wayf') 
     41         
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/logout.py

    r2614 r2626  
    11from ows_server.lib.base import * 
     2from paste.request import parse_querystring 
    23class LogoutController(BaseController): 
    34    ''' Provides the pylons controller for logging out and killing the cookies ''' 
     5     
     6    def __setup(self): 
     7        #where are we going back to? 
     8        self.inputs=dict(parse_querystring(request.environ)) 
     9        if 'r' in self.inputs: 
     10            c.returnTo=self.inputs['r'] 
     11        else: 
     12            c.returnTo='' 
     13     
    414    def index(self): 
    5         return Response('logout not yet implemented') 
     15        ''' Ok, you really want to logout here ''' 
     16        self.__setup() 
     17         
     18        # easy to kill our cookie 
     19        del session['ndgSec'] 
     20        session.save() 
     21        
     22        # but now we should look into the session and go kill the wallet 
     23         
     24        # and now go back to whence we had come 
     25        h.redirect_to(c.returnTo) 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/retrieve.py

    r2618 r2626  
    11 
    22from ows_server.lib.base import * 
    3 from ows_server.models import ndgObject,  xmlHandler, ndgRetrieve 
     3from ows_server.models import ndgObject,  ndgRetrieve 
    44from paste.request import parse_querystring 
    55 
     
    2222        self.logger=0 
    2323        if logger: self.logger=logger 
     24        self.inputs=dict(parse_querystring(request.environ)) 
     25        # it's kind of unfortunate that format=(xml,html) is what we expect in the 
     26        # url but at the retrieval level format is the schema ... oh well ... 
     27        self.format='' 
     28        if 'original' in self.inputs: 
     29            self.format={'0':'','1':'original'}[self.inputs['original']] 
    2430        return 0 
    2531        
     
    2834        status=self.__setup(uri) 
    2935        if status: return Response(status) 
    30         status,xml=ndgRetrieve.ndgRetrieve(self.uri,self.cf,logger=self.logger,requestor=self.requestor) 
     36        status,x=ndgRetrieve.ndgRetrieve( 
     37                self.uri,self.cf,logger=self.logger,requestor=self.requestor,format=self.format) 
     38         
    3139        if status: 
     40            #(the return object x is an xmlHandler object) 
     41            xml=x.html 
    3242            return Response(xml) 
    3343        else: 
     
    3545         
    3646    def view(self,uri): 
     47        ''' Returns either an html marked up version of the xml, or a properly laid 
     48        out version of the document ''' 
    3749        status=self.__setup(uri) 
    3850        if status: return Response(status) 
    39         status,xml=ndgRetrieve.ndgRetrieve(self.uri,self.cf,logger=self.logger,requestor=self.requestor) 
     51        status,x=ndgRetrieve.ndgRetrieve( 
     52                self.uri,self.cf,logger=self.logger,requestor=self.requestor,format=self.format) 
    4053        if status: 
    41             inputs=dict(parse_querystring(request.environ)) 
    42             if 'format' in inputs: 
    43                 if inputs['format']=='xml': 
    44                     x=xmlHandler.xmlHandler(xml,string=1) 
    45                     xml=x.html 
    46             c.xml=xml 
    47             c.title='Viewing [%s]'%self.uri 
    48             c.login='Not implemented' 
    49             return render_response('content') 
    50         else: 
    51             return Response(xml) 
     54            #(the return object x is an xmlHandler object) 
     55            xml=x.html 
     56            if 'format' in self.inputs: 
     57                if self.inputs['format']=='xml': 
     58                    pass 
     59        else: xml=x 
     60        c.xml=xml 
     61        c.title='Viewing [%s]'%self.uri 
    5262 
     63        return render_response('content') 
     64     
    5365     
    5466         
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/models/eXistInterface.py

    r2618 r2626  
    8484            f=file(passwordFile,'r') 
    8585        except IOError,e: 
    86             raise IOError('%s [lookin in %s]'%(e,os.getcwd())) 
     86            raise IOError('%s [looking for %s in %s]'%(e,passwordFile,os.getcwd())) 
    8787             
    8888        pw={} 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/models/ndgRetrieve.py

    r2618 r2626  
    1 import DocumentRetrieve, ndgSearch, ndgObject 
     1import DocumentRetrieve, ndgSearch, ndgObject, xmlHandler 
    22import cgi,time 
    33from Utilities import myConfig 
    44 
    5 def ndgRetrieve(uri,config,logger=0,requestor='test'): 
     5def ndgRetrieve(uri,config,logger=0,requestor='test',format=''): 
    66     
    77    ''' Given an ndgObject, uri, retrieve it, with security in place ''' 
     
    2929    try: 
    3030        target='/db/ndg_B_metadata' 
    31         format=uri.schema # for now 
    32          
     31        if format=='': format=uri.schema  
    3332        #do the actual search: 
    3433        time1=time.time() 
     
    4443    except Exception,e: 
    4544        return 0,'<p> Unable to retrieve [%s], reason was [%s]</p>'%(uri,cgi.escape(str(e))) 
     45     
     46    #temporary hack for empty docs from non-existent DIFs ...  
     47    if r=='': return 0,'No matching DIF [%s]'%uri.uri 
     48    #if we got this far, we should have valid xml 
     49    x=xmlHandler.xmlHandler(r,string=1) 
     50    if uri.schema=='DIF': 
     51        pass # no access control 
     52    elif uri.schema =='NDG-B0': 
     53        pass 
     54    elif uri.schema =='NDG-B1': 
     55        pass 
     56    elif uri.schema =='NDG-A0': 
     57        pass         
    4658             
    47     return 1,r 
     59     
     60    return 1,x 
    4861     
    4962import unittest 
     
    6275        uri=ndgObject.ndgObject(doc) 
    6376        status,xml=ndgRetrieve(uri,self.c) 
     77        if not status: raise ValueError(xml) 
     78         
     79    def testOriSOAP(self): 
     80        ''' test link to SOAP web service for DIF (original version)''' 
     81 
     82        self.setup() 
     83        doc='neodc.nerc.ac.uk__DIF__NEODC_NEXTMAP' 
     84        uri=ndgObject.ndgObject(doc) 
     85        status,xml=ndgRetrieve(uri,self.c,format='original') 
    6486        if not status: raise ValueError(xml) 
    6587 
Note: See TracChangeset for help on using the changeset viewer.