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,