Changeset 7531


Ignore:
Timestamp:
28/09/10 08:50:03 (9 years ago)
Author:
astephen
Message:

added authorised roles to check user can access this resource.

Location:
cows_wps/trunk/cows_wps
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • cows_wps/trunk/cows_wps/controllers/status.py

    r6923 r7531  
    1313 
    1414from cows_wps.utils.parse_wps_config import wps_config_dict 
     15#from cows_wps.utils.role_handler import RoleHandler 
    1516 
    1617from cows_wps.model.managers import requestManager 
     
    3839        context = ProcessContext(processDir).open() 
    3940        #!FIXME: Remove hard-coded version 
    40         responseXML = xml_renderer.wrapExecuteResponse(context, context.config['identifier'], '0.4.0', context.inputs, requestId) 
     41 
     42       
     43#        rh = RoleHandler() 
     44 
     45        responseXML = xml_renderer.wrapExecuteResponse(context, context.config['identifier'], '0.4.0', context.inputs,  
     46                      requestId, 
     47                      authorisedRoles="0") 
     48 
    4149        response.content_type = 'text/xml' 
    4250         
  • cows_wps/trunk/cows_wps/controllers/wps.py

    r7514 r7531  
    1 #!TODO: CEDA license agreement.  See cows/add_license.py for script to do this. 
    2  
    31import logging 
    42import sys 
     
    4038from cows_wps.utils.parse_capabilities_config import caps_config_dict 
    4139from cows_wps.utils.parse_outputs_rules import outputs_rules_config_dict 
     40from cows_wps.utils.role_handler import RoleHandler 
    4241 
    4342log = logging.getLogger(__name__) 
     
    231230                  (identifier, username, requestId, costonly, self.lineage, inform)) 
    232231 
     232        # Now work out which authorisedRoles are associated with this Process ID 
     233        # and this set of arguments 
     234        rh = RoleHandler() 
     235        authorisedRoles = rh.getRoleNumberFromProcessIDAndArgs(identifier, arg_dict)  
     236 
    233237        # Update the cache with any completed requests before consulting the cache 
    234238        requestManager.updateRunningRequests() 
     
    255259                                                           self.validVersions[0],  
    256260                                                           input_dict, requestId, 
     261                                                           authorisedRoles, 
    257262                                                           is_cached=True) 
    258263 
     
    344349                                                       self.validVersions[0],  
    345350                                                       input_dict, requestId, 
     351                                                       authorisedRoles, 
    346352                                                       is_cached=False) 
    347353         
  • cows_wps/trunk/cows_wps/renderer/xml_renderer.py

    r5958 r7531  
    126126 
    127127 
    128 def wrapExecuteResponse(context, identifier, version, input_dict, job_id, is_cached=False): 
     128def wrapExecuteResponse(context, identifier, version, input_dict, job_id,  
     129                        authorisedRoles="0", is_cached=False): 
    129130    """ 
    130131    Wraps full ExecuteResponse XML around specific response. 
    131132    outputs is either a dictionary or an XML snippet. 
     133 
     134    authorisedRoles = "0" is the numeric code for no security restrictions. 
    132135    """ 
    133     #new function definition using genshi xml template rendering 
     136    # function definition using genshi xml template rendering 
    134137    t= templateLoader.load("wps_execute_response.xml") 
    135138     
     
    138141    status_url = url_for(controller='/status', requestId=job_id, qualified=True) 
    139142 
    140 #    log.debug("context.outputs = %s" % (context.outputs,)) 
    141 #    log.debug("job_details = %s" % (job_details,)) 
    142      
    143143    if 'ProcessSpecificContent' in context.outputs: 
    144144        replaceProcessSpecificContextLists(context.outputs['ProcessSpecificContent']) 
     
    153153            output_xml = Element("ComplexValue", format=out_def["mime_type"], schema=out_def["schema"]) 
    154154                 
    155             #!FIXME: change this template 
    156             output_xml.append(comp_t.generate(context=context)) 
     155            output_xml.append(comp_t.generate(context=context, authorisedRoles=authorisedRoles)) 
    157156             
    158157        else: 
  • cows_wps/trunk/cows_wps/templates/defs.xml

    r6873 r7531  
    4848    <py:def function="markupFileSetContents(fileSet, jobId)"> 
    4949        <FileDetails py:for="file in fileSet.contents"> 
    50             <FileURL py:content="url_for(controller='/download', authorisedRoles='1', jobId=jobId, fileName=file.name, qualified=True)"/> 
     50            <FileURL py:content="url_for(controller='/download', authorisedRoles=authorisedRoles, jobId=jobId, fileName=file.name, qualified=True)"/> 
    5151            <FileSize py:content="file.size"/> 
    5252            <FileInfo py:content="file.info"/> 
Note: See TracChangeset for help on using the changeset viewer.