예제 #1
0
 def newFile(req, resourceId):
     if not can_edit(req.user, resourceId): 
         return HttpResponseForbidden('You do not have permission to edit this resource')
     
     register_openers()
     theFile = req.FILES['upload-file']
     
     kwargs = {
         'name': 'upload-file',
         'filename': theFile.name,
         'filetype': theFile.content_type,
         'filesize': theFile.size,
         'fileobj': theFile          
     }
     params = MultipartParam(**kwargs)
     
     datagen, headers = multipart_encode([ params ])
     url = '/'.join([ metadataServerUrl, 'metadata/record', resourceId, 'file/' ])
     request = urllib2.Request(url, datagen, headers)
     response = urllib2.urlopen(request)
     
     clientResponse = HttpResponse()
     clientResponse.status_code = response.code
     clientResponse['Location'] = response.info()['Location']
     return clientResponse
예제 #2
0
 def deleteFile(req, resourceId, fileName):
     if not can_edit(req.user, resourceId): 
         return HttpResponseForbidden('You do not have permission to edit this resource')
     
     kwargs = {
         'path': '/metadata/record/' + resourceId + '/file/' + fileName,
         'method': req.method         
     }
     return proxyRequest(**kwargs)
 def updateResource(req, resourceType, resourceId):
     if not can_edit(req.user, resourceId, resourceType): 
         return HttpResponseForbidden('You do not have permission to edit this resource')
     
     kwargs = {
         'path': '/metadata/' + resourceType + '/' + resourceId + '/',
         'method': req.method,
         'body': req.body,
         'headers': { 'Content-Type': 'application/json' }          
     }
     response = proxyRequest(**kwargs)
     if response.status_code == 204:
         kwargs = {
             'user': req.user,
             'resourceId': resourceId,
             'content': json.loads(req.body),
             'resourceType': resourceType          
         }
         track_resource(**kwargs)
     return response
 def deleteResource(req, resourceType, resourceId):
     if not can_edit(req.user, resourceId, resourceType): 
         return HttpResponseForbidden('You do not have permission to edit this resource')
     
     kwargs = {
         'path': '/metadata/' + resourceType + '/' + resourceId + '/',
         'method': req.method         
     }
     original = proxyRequest(kwargs['path'], 'GET')
     if original.status_code == 200: content = json.loads(original.content)        
     response = proxyRequest(**kwargs)
     if response.status_code == 204:
         kwargs = {
             'user': req.user,
             'resourceId': resourceId,
             'content': content,
             'resourceType': resourceType,
             'isDelete': True        
         }
         track_resource(**kwargs)
     return response