From b41e87efea7ed703b122ac4075376073bc512366 Mon Sep 17 00:00:00 2001 From: zhengxie Date: Wed, 24 Feb 2016 14:20:28 +0800 Subject: [PATCH] Remove share quota --- seahub/api2/endpoints/account.py | 4 +- seahub/api2/endpoints/dir_shared_items.py | 9 ---- seahub/forms.py | 2 - seahub/share/views.py | 47 ------------------- .../templates/snippets/space_and_traffic.html | 14 +----- .../templates/sysadmin/sys_org_info_user.html | 4 -- .../templates/sysadmin/useradmin_table.html | 5 -- seahub/templates/sysadmin/userinfo.html | 16 ------- seahub/views/ajax.py | 24 +--------- seahub/views/sysadmin.py | 32 ++----------- 10 files changed, 9 insertions(+), 148 deletions(-) diff --git a/seahub/api2/endpoints/account.py b/seahub/api2/endpoints/account.py index 6f3f0f4d6c..e55c7709a8 100644 --- a/seahub/api2/endpoints/account.py +++ b/seahub/api2/endpoints/account.py @@ -87,8 +87,8 @@ class Account(APIView): if storage is not None: seafile_api.set_user_quota(email, int(storage)) - if sharing is not None: - seafile_api.set_user_share_quota(email, int(sharing)) + # if sharing is not None: + # seafile_api.set_user_share_quota(email, int(sharing)) def _create_account(self, request, email): copy = request.DATA.copy() diff --git a/seahub/api2/endpoints/dir_shared_items.py b/seahub/api2/endpoints/dir_shared_items.py index 05f8cb755b..92eb1d212f 100644 --- a/seahub/api2/endpoints/dir_shared_items.py +++ b/seahub/api2/endpoints/dir_shared_items.py @@ -18,7 +18,6 @@ from seahub.api2.utils import api_error from seahub.base.templatetags.seahub_tags import email2nickname from seahub.base.accounts import User from seahub.share.signals import share_repo_to_user_successful -from seahub.share.views import check_user_share_quota from seahub.utils import (is_org_context, is_valid_username, send_perm_audit_msg) @@ -277,10 +276,6 @@ class DirSharedItemsEndpoint(APIView): failed.append(to_user) continue - if not check_user_share_quota(username, shared_repo, users=[to_user]): - return api_error(status.HTTP_403_FORBIDDEN, - 'Failed to share: No enough quota.') - try: if is_org_context(request): org_id = request.user.org.org_id @@ -323,10 +318,6 @@ class DirSharedItemsEndpoint(APIView): if not group: return api_error(status.HTTP_400_BAD_REQUEST, 'Group not found: %s' % gid) - if not check_user_share_quota(username, shared_repo, groups=[group]): - return api_error(status.HTTP_403_FORBIDDEN, - 'Failed to share: No enough quota.') - try: if is_org_context(request): org_id = request.user.org.org_id diff --git a/seahub/forms.py b/seahub/forms.py index 822173af79..c4356753c4 100644 --- a/seahub/forms.py +++ b/seahub/forms.py @@ -161,8 +161,6 @@ class SetUserQuotaForm(forms.Form): space_quota = forms.IntegerField(min_value=0, error_messages={'required': _('Space quota can\'t be empty'), 'min_value': _('Space quota is too low (minimum value is 0)')}) - share_quota = forms.IntegerField(min_value=0, required = False, - error_messages={'min_value': _('Share quota is too low (minimum value is 0)')}) class RepoSettingForm(forms.Form): """ diff --git a/seahub/share/views.py b/seahub/share/views.py index d54a28c618..389eb3c0e0 100644 --- a/seahub/share/views.py +++ b/seahub/share/views.py @@ -155,40 +155,6 @@ def share_to_user(request, repo, to_user, permission): to_user=to_user, repo=repo) return True -def check_user_share_quota(username, repo, users=[], groups=[]): - """Check whether user has enough share quota when share repo to - users/groups. Only used for personal account on cloud service. - """ - if not users and not groups: - return True - - if not seaserv.CALC_SHARE_USAGE: - return True - - if ccnet_threaded_rpc.get_orgs_by_user(username): - return True # no share quota check for org user - - check_pass = False - share_quota = seafile_api.get_user_share_quota(username) - if share_quota == -2: - return True # share quota is unlimited - - current_share_usage = seafile_api.get_user_share_usage(username) - - share_usage = 0 - if users: - share_usage += seafile_api.get_repo_size(repo.id) * (len(users)) - - if groups: - grp_members = [] - for group in groups: - grp_members += [e.user_name for e in seaserv.get_group_members(group.id)] - grp_members = set(grp_members) - share_usage += seafile_api.get_repo_size(repo.id) * (len(grp_members) - 1) - if share_usage + current_share_usage < share_quota: - check_pass = True - - return check_pass ########## views @login_required @@ -252,14 +218,6 @@ def share_repo(request): send_perm_audit_msg('add-repo-perm', username, 'all', \ perm_repo_id, perm_path, permission) - if not check_user_share_quota(username, repo, users=share_to_users, - groups=share_to_groups): - messages.error(request, _( - 'Failed to share "%s", no enough quota. ' - 'Upgrade account.' - ) % escape(repo.name), extra_tags='safe') - return HttpResponseRedirect(next) - for group in share_to_groups: if share_to_group(request, repo, group, permission): send_perm_audit_msg('add-repo-perm', username, group.id, \ @@ -1313,11 +1271,6 @@ def ajax_private_share_dir(request): for group_id in groups: share_to_groups.append(seaserv.get_group(group_id)) - if not check_user_share_quota(username, shared_repo, users=share_to_users, - groups=share_to_groups): - result['error'] = _(('Failed to share "%s", no enough quota. Upgrade account.') % escape(shared_repo.name)) - return HttpResponse(json.dumps(result), status=400, content_type=content_type) - for email in share_to_users: # Add email to contacts. mail_sended.send(sender=None, user=request.user.username, email=email) diff --git a/seahub/templates/snippets/space_and_traffic.html b/seahub/templates/snippets/space_and_traffic.html index e0b15f4b8e..6285f4143d 100644 --- a/seahub/templates/snippets/space_and_traffic.html +++ b/seahub/templates/snippets/space_and_traffic.html @@ -2,21 +2,11 @@

{% trans "Used:" %} {{ space_usage|seahub_filesizeformat }} {% if space_quota > 0 %}/ {{ space_quota|seahub_filesizeformat }} {% endif %}

- {% if not org %} - {% if CALC_SHARE_USAGE %} -

{% trans "Sharing:" %} {{ share_usage|seahub_filesizeformat }} {% if share_quota > 0 %}/ {{ share_quota|seahub_filesizeformat }} {% endif %}

- {% endif %} - {% endif %} - - {% if space_quota > 0 or share_quota > 0 %} + {% if space_quota > 0 %}
- {% if show_quota_help %} - {% endif %} - - {% if show_quota_help %} + - {% endif %}
{% endif %} diff --git a/seahub/templates/sysadmin/sys_org_info_user.html b/seahub/templates/sysadmin/sys_org_info_user.html index 7878802861..7745b088f8 100644 --- a/seahub/templates/sysadmin/sys_org_info_user.html +++ b/seahub/templates/sysadmin/sys_org_info_user.html @@ -38,11 +38,7 @@ - {% if CALC_SHARE_USAGE %} - {{ user.self_usage|seahub_filesizeformat }} + {{ user.share_usage|seahub_filesizeformat }} {% if user.quota > 0 %} / {{ user.quota|seahub_filesizeformat }} {% endif %} - {% else %} {{ user.self_usage|seahub_filesizeformat }} {% if user.quota > 0 %} / {{ user.quota|seahub_filesizeformat }} {% endif %} - {% endif %} {{ user.ctime|tsstr_sec }} / {% if user.last_login %}{{user.last_login|translate_seahub_time}} {% else %} -- {% endif %} diff --git a/seahub/templates/sysadmin/useradmin_table.html b/seahub/templates/sysadmin/useradmin_table.html index 0b661198b0..7a2a48f744 100644 --- a/seahub/templates/sysadmin/useradmin_table.html +++ b/seahub/templates/sysadmin/useradmin_table.html @@ -63,11 +63,6 @@

{{ user.space_usage|seahub_filesizeformat }} {% if user.space_quota > 0 %} / {{ user.space_quota|seahub_filesizeformat }} {% endif %}

- {% if not user.org %} - {% if CALC_SHARE_USAGE %} -

{{ user.share_usage|seahub_filesizeformat }} {% if user.share_quota > 0 %} / {{ user.share_quota|seahub_filesizeformat }} {% endif %}

- {% endif %} - {% endif %} {% if user.source == "DB" %} diff --git a/seahub/templates/sysadmin/userinfo.html b/seahub/templates/sysadmin/userinfo.html index b80cc4d2db..7c7b460843 100644 --- a/seahub/templates/sysadmin/userinfo.html +++ b/seahub/templates/sysadmin/userinfo.html @@ -45,19 +45,12 @@

{% trans "Space Used" %}

{% trans "Used" %}: {{ space_usage|seahub_filesizeformat }} {% if space_quota > 0 %} / {{ space_quota|seahub_filesizeformat }} {% endif %}

- {% if CALC_SHARE_USAGE %} -

{% trans "Sharing" %}: {{ share_usage|seahub_filesizeformat }} {% if share_quota > 0 %} / {{ share_quota|seahub_filesizeformat }} {% endif %}

- {% endif %} - {% trans "Set Quota" %}
{% csrf_token %}

{% trans "Set user storage limit" %}

MB - {% if CALC_SHARE_USAGE %} -
MB
- {% endif %}

{% trans "Tip: 0 means default limit" %}

@@ -273,15 +266,6 @@ $('#set-quota-form .submit').click(function() { data = { 'email': $('input[name="email"]', form).val(), 'space_quota': space_quota }; - {% if CALC_SHARE_USAGE %} - var share_quota = $('input[name="share_quota"]', form).val(); - if (!$.trim(share_quota)) { - apply_form_error(form_id, "{% trans "Share Quota can't be empty" %}"); - return false; - } - data['share_quota'] = share_quota; - {% endif %} - var sb_btn = $(this); disable(sb_btn); $.ajax({ diff --git a/seahub/views/ajax.py b/seahub/views/ajax.py index 801851fa15..250b671ec7 100644 --- a/seahub/views/ajax.py +++ b/seahub/views/ajax.py @@ -18,7 +18,7 @@ from django.template.defaultfilters import filesizeformat import seaserv from seaserv import seafile_api, is_passwd_set, \ get_related_users_by_repo, get_related_users_by_org_repo, \ - CALC_SHARE_USAGE, seafserv_threaded_rpc, ccnet_threaded_rpc, \ + seafserv_threaded_rpc, ccnet_threaded_rpc, \ edit_repo, set_repo_history_limit from pysearpc import SearpcError @@ -1485,35 +1485,19 @@ def space_and_traffic(request): if not org: space_quota = seafile_api.get_user_quota(username) space_usage = seafile_api.get_user_self_usage(username) - if CALC_SHARE_USAGE: - share_quota = seafile_api.get_user_share_quota(username) - share_usage = seafile_api.get_user_share_usage(username) - else: - share_quota = 0 - share_usage = 0 else: org_id = org[0].org_id space_quota = seafserv_threaded_rpc.get_org_user_quota(org_id, username) space_usage = seafserv_threaded_rpc.get_org_user_quota_usage( org_id, username) - share_quota = 0 # no share quota/usage for org account - share_usage = 0 rates = {} - rates['space_quota'] = space_quota - rates['share_quota'] = share_quota - total_quota = space_quota + share_quota if space_quota > 0: - rates['space_usage'] = str(float(space_usage) / total_quota * 100) + '%' + rates['space_usage'] = str(float(space_usage) / space_quota * 100) + '%' else: # no space quota set in config rates['space_usage'] = '0%' - if share_quota > 0: - rates['share_usage'] = str(float(share_usage) / total_quota * 100) + '%' - else: # no share quota set in config - rates['share_usage'] = '0%' - # traffic calculation traffic_stat = 0 if TRAFFIC_STATS_ENABLED: @@ -1546,10 +1530,6 @@ def space_and_traffic(request): "org": org, "space_quota": space_quota, "space_usage": space_usage, - "share_quota": share_quota, - "share_usage": share_usage, - "CALC_SHARE_USAGE": CALC_SHARE_USAGE, - "show_quota_help": not CALC_SHARE_USAGE, "rates": rates, "SHOW_TRAFFIC": SHOW_TRAFFIC, "TRAFFIC_STATS_ENABLED": TRAFFIC_STATS_ENABLED, diff --git a/seahub/views/sysadmin.py b/seahub/views/sysadmin.py index 4e2a0ea4de..6c8d87ef5c 100644 --- a/seahub/views/sysadmin.py +++ b/seahub/views/sysadmin.py @@ -22,7 +22,7 @@ from django.utils.translation import ugettext as _ import seaserv from seaserv import ccnet_threaded_rpc, seafserv_threaded_rpc, \ - CALC_SHARE_USAGE, seafile_api, get_group, get_group_members + seafile_api, get_group, get_group_members from pysearpc import SearpcError from seahub.base.accounts import User @@ -474,19 +474,13 @@ def _populate_user_quota_usage(user): org_id = user.org.org_id user.space_usage = seafserv_threaded_rpc.get_org_user_quota_usage(org_id, user.email) user.space_quota = seafserv_threaded_rpc.get_org_user_quota(org_id, user.email) - user.share_usage = user.share_quota = 0 else: user.space_usage = seafile_api.get_user_self_usage(user.email) user.space_quota = seafile_api.get_user_quota(user.email) - - if CALC_SHARE_USAGE: - user.share_quota = seafile_api.get_user_share_quota(user.email) - user.share_usage = seafile_api.get_user_share_usage(user.email) - else: - user.share_usage = user.share_quota = 0 except SearpcError as e: logger.error(e) - user.space_usage = user.space_quota = user.share_usage = user.share_quota = -1 + user.space_usage = -1 + user.space_quota = -1 @login_required @sys_staff_required @@ -581,7 +575,6 @@ def sys_user_admin(request): 'next_page': current_page+1, 'per_page': per_page, 'page_next': page_next, - 'CALC_SHARE_USAGE': CALC_SHARE_USAGE, 'have_ldap': have_ldap, 'platform': platform, 'server_id': server_id[:8], @@ -709,7 +702,6 @@ def sys_user_admin_ldap_imported(request): 'next_page': current_page+1, 'per_page': per_page, 'page_next': page_next, - 'CALC_SHARE_USAGE': CALC_SHARE_USAGE, 'is_pro': is_pro_version(), }, context_instance=RequestContext(request)) @@ -756,7 +748,6 @@ def sys_user_admin_ldap(request): 'per_page': per_page, 'page_next': page_next, 'is_pro': is_pro_version(), - 'CALC_SHARE_USAGE': CALC_SHARE_USAGE, }, context_instance=RequestContext(request)) @@ -804,7 +795,6 @@ def sys_user_admin_admins(request): 'sysadmin/sys_useradmin_admins.html', { 'users': admin_users, 'not_admin_users': not_admin_users, - 'CALC_SHARE_USAGE': CALC_SHARE_USAGE, 'have_ldap': have_ldap, 'default_user': DEFAULT_USER, 'guest_user': GUEST_USER, @@ -816,7 +806,6 @@ def sys_user_admin_admins(request): def user_info(request, email): org_name = None space_quota = space_usage = 0 - share_quota = share_usage = 0 org = ccnet_threaded_rpc.get_orgs_by_user(email) if not org: @@ -824,9 +813,6 @@ def user_info(request, email): in_repos = mute_seafile_api.get_share_in_repo_list(email, -1, -1) space_usage = mute_seafile_api.get_user_self_usage(email) space_quota = mute_seafile_api.get_user_quota(email) - if CALC_SHARE_USAGE: - share_usage = mute_seafile_api.get_user_share_usage(email) - share_quota = mute_seafile_api.get_user_share_quota(email) else: org_id = org[0].org_id org_name = org[0].org_name @@ -941,9 +927,6 @@ def user_info(request, email): 'owned_repos': owned_repos, 'space_quota': space_quota, 'space_usage': space_usage, - 'share_quota': share_quota, - 'share_usage': share_usage, - 'CALC_SHARE_USAGE': CALC_SHARE_USAGE, 'in_repos': in_repos, 'email': email, 'profile': profile, @@ -968,18 +951,11 @@ def user_set_quota(request, email): email = f.cleaned_data['email'] space_quota_mb = f.cleaned_data['space_quota'] space_quota = space_quota_mb * get_file_size_unit('MB') - share_quota_mb = f.cleaned_data['share_quota'] - - share_quota = None - if share_quota_mb is not None: - share_quota = share_quota_mb * get_file_size_unit('MB') org = ccnet_threaded_rpc.get_orgs_by_user(email) try: if not org: seafile_api.set_user_quota(email, space_quota) - if share_quota is not None: - seafile_api.set_user_share_quota(email, share_quota) else: org_id = org[0].org_id org_quota_mb = seafserv_threaded_rpc.get_org_quota(org_id) / get_file_size_unit('MB') @@ -1675,13 +1651,11 @@ def sys_org_info_user(request, org_id): try: user.self_usage =seafserv_threaded_rpc. \ get_org_user_quota_usage(org_id, user.email) - user.share_usage = 0 user.quota = seafserv_threaded_rpc. \ get_org_user_quota(org_id, user.email) except SearpcError as e: logger.error(e) user.self_usage = -1 - user.share_usage = -1 user.quota = -1 # populate user last login time