Ignore:
Timestamp:
14/06/06 22:43:03 (14 years ago)
Author:
astephen
Message:

Safe version pre-security installation and zsi versioning.

Location:
TI03-DataExtractor/trunk/dist
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • TI03-DataExtractor/trunk/dist/cgi/dxui

    r1160 r1184  
    108108        self.args={}                             
    109109        args=cgi.FieldStorage()  
     110        self.fieldStorage=args 
    110111         
    111112        # Get upload file link 
     
    194195        #print "<P>".join(["%s:%s" % (n,v) for (n,v) in self.args.items()]) 
    195196         
    196                      
    197     def DEPRECATED_determineNumberOfDatasets(self): 
    198         """ 
    199         Returns the number of datasets the user is requesting. 
    200         This affects how the output is produced. 
    201         """ 
    202         ndsetPattern=re.compile(r"^\w+_(\d+)$") 
    203         self.numberOfDatasets=1  # Dummy value for now 
    204          
    205         for key in self.args.keys():  
    206             match=ndsetPattern.match(key) 
    207             if match: 
    208                 dsetNumber=int(match.groups()[0]) 
    209                 if dsetNumber>self.numberOfDatasets: 
    210                     self.numberOfDatasets=dsetNumber 
    211  
    212         if self.args.has_key("numberOfDatasets"): 
    213             try: 
    214                 self.numberOfDatasets=int(self.args["numberOfDatasets"]) 
    215             except: 
    216                 self.numberOfDatasets=int(self.args.getvalue("numberOfDatasets"))        
    217  
    218  
    219     def DEPRECATED_parsePartialDimensionArgs(self): 
    220         """ 
    221         Parses dimension arguments so that they are of the  
    222         correct types to send to the server. 
    223         """                   
    224         # Make a list of all the possible time keys to parse in time args 
    225         allTimeKeys=createTimeKeyList() 
    226                          
    227         timeKeyCount=0     
    228         for key in self.args.keys(): 
    229             if key in allTimeKeys:  
    230                 # Make sure it is an integer  
    231                 try:  
    232                     self.args[key]=int(self.args[key])  
    233                     timeKeyCount=timeKeyCount+1 
    234                 except:  
    235                     pass                     
    236             elif key in HORIZ_KEYS: 
    237                 try: 
    238                     self.args[key]=float(self.args[key]) 
    239                 except: 
    240                     pass 
    241                  
    242         if timeKeyCount>0: 
    243             self._compileDateTimeArgs()              
    244                      
    245  
    246     def DEPRECATED_compileDateTimeArgs(self): 
    247         """ 
    248         Converts a list of arguments for each date and time component 
    249         to a start and end date/time following the xsd:dateTime description. 
    250         """ 
    251         dateTimeString="%.4d-%.2d-%.2dT%.2d:%.2d:%.2d" 
    252         # Build item lists of year, month, day...second for each dataset 
    253         # both start and end date times. 
    254         # Also delete the original component items for clarity. 
    255         for n in range(1, self.numberOfDatasets+1): 
    256             startList=[] 
    257             endList=[] 
    258             for tk in TIME_KEYS: 
    259                 startList.append(self.args["start%s_%s" % (tk, n)]) 
    260                 del self.args["start%s_%s" % (tk, n)] 
    261                 endList.append(self.args["end%s_%s" % (tk, n)])  
    262                 del self.args["end%s_%s" % (tk, n)]              
    263              
    264             self.args["startDateTime_%s" % n]=dateTimeString % tuple(startList) 
    265             self.args["endDateTime_%s" % n]=dateTimeString % tuple(endList) 
    266              
    267197 
    268198    def _destroyUnnecessaryArgs(self): 
     
    279209        call the local implementation of the security. 
    280210        """ 
    281         secChecker=SecurityViaCGI(self.username, self.password, self.secureToken) 
    282          
    283         # Deal with logout 
    284         ############# NOTE - doesn't destroy session server side (yet) 
    285         if self.args.has_key("logout") and self.args["logout"]=="Logout": 
    286             secChecker.logout() 
    287             secCheck="You have been logged out." 
    288         else: 
    289             secCheck=secChecker.validate()           
    290              
    291         if type(secCheck)==type(""): 
    292             # Returned string means error in log in or logged out 
    293             self.loginMessage=secCheck 
    294         else: 
    295             self.loginStatus="in" 
    296             self.loginMessage="" 
    297             (self.secureToken, self.username, self.userRoles)=secCheck     
     211        if SECURITY_MODEL=="basic": 
     212            secChecker=SecurityViaCGI(self.username, self.password, self.secureToken) 
     213         
     214            # Deal with logout 
     215            ############# NOTE - doesn't destroy session server side (yet) 
     216            if self.args.has_key("logout") and self.args["logout"]=="Logout": 
     217                secChecker.logout() 
     218                secCheck="You have been logged out." 
     219            else: 
     220                secCheck=secChecker.validate()       
     221             
     222            if type(secCheck)==type(""): 
     223                # Returned string means error in log in or logged out 
     224                self.loginMessage=secCheck 
     225            else: 
     226                self.loginStatus="in" 
     227                self.loginMessage="" 
     228                (self.secureToken, self.username, self.userRoles)=secCheck 
     229                 
     230        elif SECURITY_MODEL=="ndg": 
     231            from NDGSecurityViaCGI import * 
     232            secChecker=NDGSecurityViaCGI(cookie=self.secureToken, urlArgs=self.fieldStorage) 
     233             
     234             
     235             
     236            # Delete field storage so not visible anywhere 
     237            del self.fieldStorage 
    298238 
    299239                 
     
    396336                self.displayer._displayHTTPHeader()  
    397337                self.displayer._displayHTMLHeader() 
     338                if RESTRICTED_DATA==1: self.displayer._displayLoginBar(self.username, loginStatus="in", loginMessage="with roles: "+str(self.userRoles)) 
    398339                self.displayer._displayRequestSummaryTable(createSummaryDict(summaryString)) 
    399340                self.displayer._displayReturnLine(self.sessionID) 
     
    401342                 
    402343            elif action=="saveRequest": 
    403                 dataSubsetSpecifier, self.secureToken=self.server.callServerMethod("getDataSubsetSpecifier", 
     344                x=self.server.callServerMethod("getDataSubsetSpecifier", 
    404345                                                           [self.sessionID, self.secureToken]) 
     346 
     347                #dataSubsetSpecifier, self.secureToken=x                                            
    405348                self.displayer._displayHTTPHeader()  
    406                 self.displayer._displayHTMLHeader()              
     349                print x          
     350                self.displayer._displayHTMLHeader()      
     351                if RESTRICTED_DATA==1: self.displayer._displayLoginBar(self.username, loginStatus="in", loginMessage="with roles: "+str(self.userRoles))         
    407352                self.displayer._displaySaveRequestOptions(dataSubsetSpecifier, self.sessionID) 
    408353                self.displayer._displayReturnLine(self.sessionID) 
     
    412357                self.displayer._displayHTTPHeader()  
    413358                self.displayer._displayHTMLHeader() 
     359                if RESTRICTED_DATA==1: self.displayer._displayLoginBar(self.username, loginStatus="in", loginMessage="with roles: "+str(self.userRoles)) 
    414360                self.displayer._displayUploadRequestOptions(self.sessionID) 
    415361                self.displayer._displayReturnLine(self.sessionID)                 
     
    486432            self.displayer._displayHTTPHeader()  
    487433            self.displayer._displayHTMLHeader() 
     434            if RESTRICTED_DATA==1: self.displayer._displayLoginBar(self.username, loginStatus="in", loginMessage="with roles: "+str(self.userRoles)) 
    488435            self.displayer._displayDatasetSummaryLine(summaryString, optionCategories[0], self.sessionID) 
    489436            self.displayer._displayMainTableHeader(self.sessionID, onSubmit=""" onSubmit='return validateAllTimeSelections()'""") 
    490437            self.displayer._displayDomainOptions(summaryDict, optionCategories, options, optionStrings, self.sessionID) 
    491438            self.displayer._displayMainTableFooter() 
    492          
    493         elif optcat=="horizontalDomain": 
    494             self.displayer._displayHTTPHeader()  
    495             self.displayer._displayHTMLHeader() 
    496             self.displayer._displayDatasetSummaryLine(summaryString, optionCategories[0], self.sessionID) 
    497             self.displayer._displayMainTableHeader(self.sessionID)           
    498             print "<P><B>SPATIAL AND TEMPORAL SELECTION</B><P>"      
    499             self.displayer._displayHorizontalDomainOptions(options) 
    500              
    501             # Now get the vertical domain options 
    502             self.args["optionCategoryRequested"]="verticalDomain"        
    503             (optionCategories, options, optionStrings, secureToken)=self.server.callServerMethod("selectOptions",  
    504                                                                          [self.sessionID, self._packArgsAsList(self.args)]) 
    505             self.displayer._displayVerticalSpatialDomainOptions(options) 
    506  
    507             # Now get the temporal domain options 
    508             self.args["optionCategoryRequested"]="temporalDomain"            
    509             (optionCategories, options, optionStrings, secureToken)=self.server.callServerMethod("selectOptions",  
    510                                                                          [self.sessionID, self._packArgsAsList(self.args)]) 
    511             self.displayer._displayTemporalDomainOptions(options) 
    512  
    513             # Now get the output format options 
    514             self.args["optionCategoryRequested"]="outputFormat"              
    515             (optionCategories, options, optionStrings, secureToken)=self.server.callServerMethod("selectOptions",  
    516                                                                          [self.sessionID, self._packArgsAsList(self.args)])          
    517             self.displayer._displayOutputFormatOptions(options, self.sessionID)     
    518          
    519         # If there are no option categories then the request is likely to be complete 
    520         elif optcat==None: 
    521          
     439                 
     440        elif optcat==None:  
     441            # If there are no option categories then the request is likely to be complete 
    522442            # Display confirmation page if needed 
    523443            if CONFIRMATION_PAGE==1 and not self.args.has_key("confirm"): 
    524444                self.displayer._displayHTTPHeader()  
    525445                self.displayer._displayHTMLHeader() 
     446                if RESTRICTED_DATA==1: self.displayer._displayLoginBar(self.username, loginStatus="in", loginMessage="with roles: "+str(self.userRoles)) 
    526447                self.displayer._displayDatasetSummaryLine(summaryString, optionCategories, self.sessionID)           
    527448                self.displayer._displayMainTableHeader(self.sessionID)    
     
    535456                self.displayer._displayHTTPHeader()  
    536457                self.displayer._displayHTMLHeader() 
     458                if RESTRICTED_DATA==1: self.displayer._displayLoginBar(self.username, loginStatus="in", loginMessage="with roles: "+str(self.userRoles)) 
    537459                self.displayer._displayProcessingSection(estimatedDuration, estimatedVolume, self.sessionID) 
    538460                pathList, self.secureToken=self.server.callServerMethod("createOutput", [self.sessionID, self.secureToken])[0] 
Note: See TracChangeset for help on using the changeset viewer.