def put(self, request, repo_id, format=None): # generate file shared link path = unquote(request.DATA.get('p', '').encode('utf-8')) if not path: return api_error(status.HTTP_400_BAD_REQUEST, 'Path is missing.') if path[-1] == '/': path = path[:-1] l = FileShare.objects.filter(repo_id=repo_id).filter( username=request.user.username).filter(path=path) if len(l) > 0: fileshare = l[0] token = fileshare.token else: token = gen_token(max_length=10) fs = FileShare() fs.username = request.user.username fs.repo_id = repo_id fs.path = path fs.token = token try: fs.save() except IntegrityError, e: return api_err(status.HTTP_500_INTERNAL_SERVER_ERROR, e.msg)
def get_shared_link(request): """ Handle ajax request to generate file shared link. """ if not request.is_ajax(): raise Http404 content_type = 'application/json; charset=utf-8' repo_id = request.GET.get('repo_id') obj_id = request.GET.get('obj_id') path = request.GET.get('p', '/') if path[-1] == '/': path = path[:-1] l = FileShare.objects.filter(repo_id=repo_id).filter( username=request.user.username).filter(path=path) if len(l) > 0: fileshare = l[0] token = fileshare.token else: token = gen_token(max_length=10) fs = FileShare() fs.username = request.user.username fs.repo_id = repo_id fs.path = path fs.token = token try: fs.save() except IntegrityError, e: err = _('Failed to get shared link, please retry.') data = json.dumps([{'error': err}]) return HttpResponse(data, status=500, content_type=content_type)
def get_shared_link(request): """ Handle ajax request to generate file or dir shared link. """ if not request.is_ajax(): raise Http404 content_type = 'application/json; charset=utf-8' repo_id = request.GET.get('repo_id', '') share_type = request.GET.get('type', 'f') # `f` or `d` path = request.GET.get('p', '') if not (repo_id and path): err = _('Invalid arguments') data = json.dumps({'error': err}) return HttpResponse(data, status=400, content_type=content_type) if share_type == 'f': if path[-1] == '/': # cut out last '/' at end of path path = path[:-1] else: if path == '/': # can not share root dir err = _('You cannot share the library in this way.') data = json.dumps({'error': err}) return HttpResponse(data, status=400, content_type=content_type) else: if path[-1] != '/': # append '/' at end of path path += '/' l = FileShare.objects.filter(repo_id=repo_id).filter( username=request.user.username).filter(path=path) if len(l) > 0: fs = l[0] token = fs.token else: token = gen_token(max_length=10) fs = FileShare() fs.username = request.user.username fs.repo_id = repo_id fs.path = path fs.token = token fs.s_type = 'f' if share_type == 'f' else 'd' try: fs.save() except IntegrityError, e: err = _('Failed to get the link, please retry later.') data = json.dumps({'error': err}) return HttpResponse(data, status=500, content_type=content_type)
def get_shared_link(request, repo_id, path): l = FileShare.objects.filter(repo_id=repo_id).filter(\ username=request.user.username).filter(path=path) token = None if len(l) > 0: fileshare = l[0] token = fileshare.token else: token = gen_token(max_length=10) fs = FileShare() fs.username = request.user.username fs.repo_id = repo_id fs.path = path fs.token = token try: fs.save() except IntegrityError, e: return api_err(status.HTTP_500_INTERNAL_SERVER_ERROR, e.msg)