1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-09 10:50:24 +00:00

[api] seperate UpdatelinkView from UploadLinkView

This commit is contained in:
lins05
2013-04-02 15:09:33 +08:00
parent a8fd3e8104
commit c9914d60ee
2 changed files with 26 additions and 13 deletions

View File

@@ -14,6 +14,7 @@ urlpatterns = patterns('',
url(r'^repos/(?P<repo_id>[-0-9a-f]{36})/$', Repo.as_view()),
url(r'^repos/(?P<repo_id>[-0-9a-f]{36})/download-info/$', DownloadRepo.as_view()),
url(r'^repos/(?P<repo_id>[-0-9a-f]{36})/upload-link/$', UploadLinkView.as_view()),
url(r'^repos/(?P<repo_id>[-0-9a-f]{36})/update-link/$', UpdateLinkView.as_view()),
url(r'^repos/(?P<repo_id>[-0-9-a-f]{36})/file/$', FileView.as_view(), name='FileView'),
url(r'^repos/(?P<repo_id>[-0-9-a-f]{36})/file/shared-link/$', FileSharedLinkView.as_view()),
url(r'^repos/(?P<repo_id>[-0-9-a-f]{36})/dir/$', DirView.as_view(), name='DirView'),

View File

@@ -344,14 +344,6 @@ class UploadLinkView(APIView):
if check_quota(repo_id) < 0:
return api_error(HTTP_520_OPERATION_FAILED, 'Above quota')
update = request.GET.get('update', None)
if update == 'true':
token = seafserv_rpc.web_get_access_token(repo_id,
'dummy',
'update',
request.user.username)
url = gen_file_upload_url(token, 'update-api')
else:
token = seafserv_rpc.web_get_access_token(repo_id,
'dummy',
'upload',
@@ -360,6 +352,26 @@ class UploadLinkView(APIView):
return Response(url)
class UpdateLinkView(APIView):
authentication_classes = (TokenAuthentication, )
permission_classes = (IsAuthenticated, )
throttle_classes = (UserRateThrottle, )
def get(self, request, repo_id, format=None):
if check_permission(repo_id, request.user.username) != 'rw':
return api_error(status.HTTP_403_FORBIDDEN, "Can not access repo")
if check_quota(repo_id) < 0:
return api_error(HTTP_520_OPERATION_FAILED, 'Above quota')
token = seafserv_rpc.web_get_access_token(repo_id,
'dummy',
'update',
request.user.username)
url = gen_file_upload_url(token, 'update-api')
return Response(url)
def get_file_size (id):
size = seafserv_threaded_rpc.get_file_size(id)
return size if size else 0