diff --git a/seahub/base/middleware.py b/seahub/base/middleware.py index 9dd99fb957..53c377b83b 100644 --- a/seahub/base/middleware.py +++ b/seahub/base/middleware.py @@ -1,7 +1,7 @@ from django.core.cache import cache import seaserv -from seaserv import get_binding_peerids, get_orgs_by_user +from seaserv import get_binding_peerids from seahub.notifications.models import Notification from seahub.notifications.utils import refresh_cache @@ -9,6 +9,10 @@ try: from seahub.settings import CLOUD_MODE except ImportError: CLOUD_MODE = False +try: + from seahub.settings import MULTI_TENANCY +except ImportError: + MULTI_TENANCY = False class BaseMiddleware(object): """ @@ -16,19 +20,20 @@ class BaseMiddleware(object): """ def process_request(self, request): + username = request.user.username + request.user.org = None + request.user.orgs = None + if CLOUD_MODE: request.cloud_mode = True - - # Get all orgs user created. - # orgs = get_orgs_by_user(request.user.username) - # request.user.orgs = orgs + + if MULTI_TENANCY: + orgs = seaserv.get_orgs_by_user(username) + if orgs: + request.user.org = orgs[0] else: request.cloud_mode = False - request.user.org = None - request.user.orgs = None - - username = request.user.username request.user.joined_groups = seaserv.get_personal_groups_by_user(username) return None diff --git a/seahub/templates/snippets/space_and_traffic.html b/seahub/templates/snippets/space_and_traffic.html index ffd929364b..d9250db19d 100644 --- a/seahub/templates/snippets/space_and_traffic.html +++ b/seahub/templates/snippets/space_and_traffic.html @@ -21,5 +21,5 @@ {% endif %} {% if ENABLE_PAYMENT %} -{% trans "Payment" %} +{% trans "Payment" %} {% endif %} diff --git a/seahub/views/ajax.py b/seahub/views/ajax.py index 6cd69b7344..680a41eef7 100644 --- a/seahub/views/ajax.py +++ b/seahub/views/ajax.py @@ -1359,6 +1359,20 @@ def space_and_traffic(request): if stat: traffic_stat = stat['file_view'] + stat['file_download'] + stat['dir_download'] + payment_url = '' + ENABLE_PAYMENT = getattr(settings, 'ENABLE_PAYMENT', False) + if ENABLE_PAYMENT: + if is_org_context(request): + if request.user.org and bool(request.user.org.is_staff) is True: + # payment for org admin + payment_url = reverse('org_plan') + else: + # no payment for org members + ENABLE_PAYMENT = False + else: + # payment for personal account + payment_url = reverse('plan') + ctx = { "CALC_SHARE_USAGE": CALC_SHARE_USAGE, "quota": quota, @@ -1368,7 +1382,8 @@ def space_and_traffic(request): "rates": rates, "TRAFFIC_STATS_ENABLED": TRAFFIC_STATS_ENABLED, "traffic_stat": traffic_stat, - "ENABLE_PAYMENT": getattr(settings, 'ENABLE_PAYMENT', False), + "ENABLE_PAYMENT": ENABLE_PAYMENT, + "payment_url": payment_url, } html = render_to_string('snippets/space_and_traffic.html', ctx,