def download_file(ctx, project_name, version, file_name): repository_path = os.path.abspath(os.path.join(FILES_PATH)) file_path = os.path.join(repository_path, project_name, version, file_name) file_path = os.path.abspath(file_path) if not file_path.startswith(repository_path): # This request tried to read data from where it's not supposed to raise RequestNotAllowed(repr([project_name, version, file_name])) return File.Value(name=file_name, path=file_path)
def create_in_document(self, ctx, charset=None): if ctx.transport.type == 'wsgi': # according to the soap via http standard, soap requests must only # work with proper POST requests. content_type = ctx.transport.req_env.get("CONTENT_TYPE") http_verb = ctx.transport.req_env['REQUEST_METHOD'].upper() if content_type is None or http_verb != "POST": ctx.transport.resp_code = HTTP_405 raise RequestNotAllowed( "You must issue a POST request with the Content-Type " "header properly set.") content_type = cgi.parse_header(content_type) collapse_swa(content_type, ctx.in_string) ctx.in_document = _parse_xml_string(ctx.in_string, charset)
def create_in_document(self, ctx, charset=None): if isinstance(ctx.transport, HttpTransportContext): # according to the soap via http standard, soap requests must only # work with proper POST requests. content_type = ctx.transport.get_request_content_type() http_verb = ctx.transport.get_request_method() if content_type is None or http_verb != "POST": ctx.transport.resp_code = HTTP_405 raise RequestNotAllowed( "You must issue a POST request with the Content-Type " "header properly set.") content_type = cgi.parse_header(content_type) collapse_swa(content_type, ctx.in_string) ctx.in_document = self._wof_parse_xml_string( ctx.in_string, XMLParser(**self.parser_kwargs), charset)