mirror of
https://github.com/haiwen/seahub.git
synced 2025-06-28 07:57:50 +00:00
Fixed api2 quota bug
This commit is contained in:
parent
b0c516cdfe
commit
d73e7c8996
@ -37,7 +37,8 @@ from seaserv import seafserv_rpc, seafserv_threaded_rpc, server_repo_size, \
|
||||
get_group_repos, get_repo, check_permission, get_commits, is_passwd_set,\
|
||||
list_personal_repos_by_owner, list_personal_shared_repos, check_quota, \
|
||||
list_share_repos, get_group_repos_by_owner, list_inner_pub_repos_by_owner,\
|
||||
remove_share, unshare_group_repo, unset_inner_pub_repo
|
||||
remove_share, unshare_group_repo, unset_inner_pub_repo, get_user_quota, \
|
||||
get_user_share_usage, get_user_quota_usage, CALC_SHARE_USAGE
|
||||
|
||||
json_content_type = 'application/json; charset=utf-8'
|
||||
|
||||
@ -105,8 +106,15 @@ class Account(APIView):
|
||||
info = {}
|
||||
email = request.user.username
|
||||
info['email'] = email
|
||||
info['usage'] = seafserv_threaded_rpc.get_user_quota_usage(email)
|
||||
info['total'] = seafserv_threaded_rpc.get_user_quota(email)
|
||||
info['total'] = get_user_quota(email)
|
||||
|
||||
if CALC_SHARE_USAGE:
|
||||
my_usage = get_user_quota_usage(email)
|
||||
share_usage = get_user_share_usage(email)
|
||||
info['usage'] = my_usage + share_usage
|
||||
else:
|
||||
info['usage'] = get_user_quota_usage(email)
|
||||
|
||||
return Response(info)
|
||||
|
||||
def calculate_repo_info(repo_list, username):
|
||||
@ -340,7 +348,7 @@ class UploadLinkView(APIView):
|
||||
return api_error(status.HTTP_403_FORBIDDEN, "Can not access repo")
|
||||
|
||||
if check_quota(repo_id) < 0:
|
||||
return api_error(status.HTTP_520_OPERATION_FAILED, 'Above quota')
|
||||
return api_error(HTTP_520_OPERATION_FAILED, 'Above quota')
|
||||
|
||||
upload_url = gen_file_upload_url(token, 'upload-api')
|
||||
return Response(upload_url)
|
||||
|
@ -2,7 +2,9 @@
|
||||
import service
|
||||
from service import ccnet_rpc, monitor_rpc, seafserv_rpc, \
|
||||
seafserv_threaded_rpc, ccnet_threaded_rpc
|
||||
from service import send_command, check_quota, web_get_access_token, unset_repo_passwd
|
||||
from service import send_command, check_quota, web_get_access_token, \
|
||||
unset_repo_passwd, get_user_quota_usage, get_user_share_usage, \
|
||||
get_user_quota
|
||||
from service import get_emailusers, count_emailusers, get_session_info
|
||||
from service import get_org_groups, get_personal_groups_by_user, \
|
||||
get_group_repoids, get_personal_groups, list_share_repos, remove_share, \
|
||||
|
@ -34,6 +34,7 @@ Commit:
|
||||
|
||||
from datetime import datetime
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
import ConfigParser
|
||||
@ -144,6 +145,9 @@ CALC_SHARE_USAGE = False
|
||||
if config.has_option('quota', 'calc_share_usage'):
|
||||
CALC_SHARE_USAGE = config.getboolean('quota', 'calc_share_usage')
|
||||
|
||||
# Get an instance of a logger
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
#### Basic ccnet API ####
|
||||
|
||||
def get_emailusers(start, limit):
|
||||
@ -860,8 +864,33 @@ def check_quota(repo_id):
|
||||
try:
|
||||
ret = seafserv_threaded_rpc.check_quota(repo_id)
|
||||
except SearpcError, e:
|
||||
logger.error(e)
|
||||
ret = -1
|
||||
return ret
|
||||
|
||||
def get_user_quota(user):
|
||||
try:
|
||||
ret = seafserv_threaded_rpc.get_user_quota(user)
|
||||
except SearpcError, e:
|
||||
logger.error(e)
|
||||
ret = 0
|
||||
return ret
|
||||
|
||||
def get_user_quota_usage(user):
|
||||
try:
|
||||
ret = seafserv_threaded_rpc.get_user_quota_usage(user)
|
||||
except SearpcError, e:
|
||||
logger.error(e)
|
||||
ret = 0
|
||||
return ret
|
||||
|
||||
def get_user_share_usage(user):
|
||||
try:
|
||||
ret = seafserv_threaded_rpc.get_user_share_usage(user)
|
||||
except SearpcError, e:
|
||||
logger.error(e)
|
||||
ret = 0
|
||||
return ret
|
||||
|
||||
# access token
|
||||
def web_get_access_token(repo_id, obj_id, op, username):
|
||||
|
11
views.py
11
views.py
@ -44,7 +44,8 @@ from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_repos, get_emailusers, \
|
||||
get_session_info, get_group_repoids, get_repo_owner, get_file_id_by_path, \
|
||||
get_repo_history_limit, set_repo_history_limit, MAX_UPLOAD_FILE_SIZE, \
|
||||
get_commit, MAX_DOWNLOAD_DIR_SIZE, CALC_SHARE_USAGE, count_emailusers, \
|
||||
count_inner_pub_repos, unset_inner_pub_repo
|
||||
count_inner_pub_repos, unset_inner_pub_repo, get_user_quota_usage, \
|
||||
get_user_share_usage
|
||||
from pysearpc import SearpcError
|
||||
|
||||
from base.accounts import User
|
||||
@ -971,13 +972,9 @@ def myhome(request):
|
||||
|
||||
quota_usage = 0
|
||||
share_usage = 0
|
||||
my_usage = 0
|
||||
my_usage = seafserv_threaded_rpc.get_user_quota_usage(email)
|
||||
my_usage = get_user_quota_usage(email)
|
||||
if CALC_SHARE_USAGE:
|
||||
try:
|
||||
share_usage = seafserv_threaded_rpc.get_user_share_usage(email)
|
||||
except SearpcError, e:
|
||||
share_usage = 0
|
||||
share_usage = get_user_share_usage(email)
|
||||
quota_usage = my_usage + share_usage
|
||||
else:
|
||||
quota_usage = my_usage
|
||||
|
Loading…
Reference in New Issue
Block a user