def render(self, request): ucr.load() response = {} for key in request.options: if key.endswith('*'): response.update(self.get_values_for(key[:-1])) else: response[key] = ucr.get(key) return dict(result=response)
def reload(self, reset_log_level=False): """Reloads resources like module and category definitions""" RESOURCES.info('Reloading resources: modules, categories') self.moduleManager.load() self.categoryManager.load() RESOURCES.info('Reloading UCR variables') ucr.load() if reset_log_level: RESOURCES.info('Reset log level.') self.reset_log_level()
def __parse_file_upload(self, params): # TODO: implement patch from Bug #31923 if not self.path.startswith('/upload'): # HTTP FIXME self.setResponseCode(415) raise ValueError('File uploads are currently only supported on /upload.') ucr.load() fields = FieldStorage( self.content, headers={'content-type': self.getHeader('Content-Type')}, environ={'REQUEST_METHOD': 'POST'} ).list body = dict((field.name, field.value) for field in fields if not field.filename) body['options'] = [] for field in (field for field in fields if field.filename): name, filename, value = field.name, field.filename, field.value tmpfile = NamedTemporaryFile(dir=TEMPUPLOADDIR, delete=False) tmpfile.write(value) self.__check_max_file_size(tmpfile.name) self.__check_min_free_space_on_partition(tmpfile.name) # some security for c in ('<>/'): filename = filename.replace(c, '_') body['options'].append(dict( filename=filename, name=name, tmpfile=tmpfile.name )) return body