Changeset 935


Ignore:
Timestamp:
16/05/06 13:09:07 (13 years ago)
Author:
lawrence
Message:

Pretty sure this will have broken the browse,
but can't check at the moment. This is the first
commit that has live links to the security code.

Location:
TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi/browseCGI.py

    r886 r935  
    104104                else:  
    105105                        return self.error('No valid URI') 
     106                 
    106107                self.session=BrowseSession(self.cookie,self.uri,self.config) 
    107108                if self.config.logfile is not None: self.config.log(self.cookie) 
     
    113114                db=self.config.get('db','exist',None) 
    114115                xml=insecureGetDoc(self.uri,db) 
     116                 
     117                #create stub-b instance 
     118                self.b=stubB(xml,makeHTML=renderEntity) 
     119                 
     120                if self.b.xml is None: 
     121                    content=self.error('Unable to obtain stub-B from database') 
     122                else: 
     123                    self.session.addToHistory(self.b.Burl,self.b.abbreviation) 
     124                    self.response.cookie=self.session.makeCookie() 
     125                    if  self.b.constraints.exist: 
     126                        # we need to evaluate them 
     127                        access=self.session.ndgGate.check(self.b.constraints.SimpleCondition) 
     128                        #access=self.b.constraints.status 
     129                    else: 
     130                        access=1 
     131                    if access: 
     132                        content=self.b.toHTML() 
     133                    else: 
     134                        content=self.error('No access to Secure Metadata') 
    115135                 
    116                 #create stub-b instance 
    117                 self.b=stubB(xml,makeHTML=renderEntity) 
    118                 #hopefully this is obsolete 
    119                 #self.b.accessKey=self.config.get('layout','key',None) 
    120                  
    121                 if self.b.xml is not None: 
    122                         self.session.addToHistory(self.b.Burl,self.b.abbreviation) 
    123                         self.response.cookie=self.session.makeCookie() 
    124                         if  self.b.constraints.exist: 
    125                                 # we need to evaluate them 
    126                                 #access=self.session.ndgGate.check(self.b.constraints) 
    127                                 access=self.b.constraints.status 
    128                         else: 
    129                                 access=1 
    130                         if access: 
    131                                 content=self.b.toHTML() 
    132                         else: 
    133                                 content=self.error('No access to Secure Metadata') 
    134                 else: 
    135                         content=self.error('URI not available in database') 
    136                 historyHTML='<p>' 
     136                historyHTML='<p>' 
    137137                for item in self.session.getHistory(): 
    138138                        historyHTML+='<a href="%s">%s</a><br/>'%item 
  • TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi/renderEntity.py

    r911 r935  
    3939def renderContent(entity): 
    4040        '''Parse the entity for content information ''' 
    41         html=''' 
     41         
     42        if entity.constraints.exists: 
     43            html='<p>Access Control: %s</p>'%entity.constraints.html 
     44        else: 
     45            html='' 
     46         
     47        html+=''' 
    4248        <table cellspacing="0" cellpadding="3" width="90%" border="0"> 
    4349                <tbody> 
  • TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi/secure.py

    r886 r935  
     1from Utilities import wrapGetText 
    12 
    2  
     3class AccessControl: 
     4         
     5        ''' Handle the access control metadata and provide three attributes of the  
     6        access control: exists (existence), status (modified elsewhere for whether 
     7        user can access data), and html (a message about the constraints). ''' 
     8         
     9        def __init__(self,e): 
     10                if e is None: 
     11                        self.status=1 
     12                        self.exist=0 
     13                        self.html='' 
     14                else: 
     15                        #for now assume everything with a simplecondition is deny 
     16                        self.html=wrapGetText(e,'dgSecurityCondition/conditionExplanationText') 
     17                        sc='dgSecurityCondition/simpleCondition/' 
     18                        self.SimpleCondition=(wrapGetText(e,sc+'attrauthRole'), 
     19                                              wrapGetText(e,sc+'dgAttributeAuthority')) 
     20                        if self.SimpleCondition==('',''): self.SimpleCondition=None 
     21                        self.status=0 
     22                        self.exist=1 
     23         
     24         
    325class AttributeAuthorityClient: 
    426        ''' placeholder til Phil writes his''' 
     
    84106                        pass # for now we don't have the libraries or code attached 
    85107 
    86         def check(self, role, wsdlAA): 
     108        def check(self, parsedSimpleCondition): 
    87109                ''' can the credentials in the wallet support access to the resource requiring  
    88                 the role at wsdlAA ''' 
     110                the role at wsdlAA - parsedSimpleCondition is a tuple - (role, wsdlAA) ''' 
    89111                #connect using cookie 
     112 
     113                #first make sure we've got real conditions, if not, deny ... 
     114                if parsedSimpleCondition is None: return 0 
    90115 
    91116                resp = smClient.reqAuthorisation(sessCookie=cookieObj, 
  • TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi/stubB.py

    r911 r935  
    99from Utilities import * 
    1010from ServiceBinding import * 
    11          
    12 class AccessControl: 
    13          
    14         ''' Handle the access control metadata and provide three attributes of the  
    15         access control: exists (existence), status (modified elsewhere for whether 
    16         user can access data), and html (a message about the constraints). ''' 
    17          
    18         def __init__(self,e): 
    19                 if e is None: 
    20                         self.status=1 
    21                         self.exist=0 
    22                         self.html='' 
    23                 else: 
    24                         self.status=1 
    25                         self.exist=1 
    26                         self.html='constraints' 
     11from secure import AccessControl 
    2712         
    2813class Name: 
     
    171156                #so we don't need (or want) that in our xpath expressions. 
    172157                 
    173                 self.constraints=AccessControl(self.tree.find('dgMetadataRecord/dgMetadataSecurity')) 
     158                self.constraints=AccessControl(self.tree.find('dgMetadataSecurity')) 
    174159                self.abbreviation=wrapGetText(self.tree,'abbreviation') 
    175160                 
     
    233218                                <LINK media="all, screen" href="../layout/style.css" type="text/css" rel="stylesheet"/> 
    234219                        </head> '''+x.toHTML() 
    235         print y 
     220        f=file('output.html','w') 
     221        f.write(y) 
Note: See TracChangeset for help on using the changeset viewer.