1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-08-01 23:38:37 +00:00

Merge branch '7.1' into master

This commit is contained in:
lian 2020-10-19 10:43:45 +08:00
commit 33a9849555
3 changed files with 32 additions and 9 deletions

View File

@ -74,7 +74,7 @@ class OrgsTraffic extends React.Component {
getTrafficList = (month, page) => { getTrafficList = (month, page) => {
const { perPage, sortBy, sortOrder } = this.state; const { perPage, sortBy, sortOrder } = this.state;
const orderBy = `${sortBy}_${sortOrder}`; const orderBy = sortOrder == 'asc' ? sortBy : `${sortBy}_${sortOrder}`;
this.setState({isLoading: true, errorMessage: ''}); this.setState({isLoading: true, errorMessage: ''});
seafileAPI.sysAdminListOrgTraffic(month, page, perPage, orderBy).then(res => { seafileAPI.sysAdminListOrgTraffic(month, page, perPage, orderBy).then(res => {
let orgTrafficList = res.data.org_monthly_traffic_list.slice(0); let orgTrafficList = res.data.org_monthly_traffic_list.slice(0);

View File

@ -74,7 +74,7 @@ class UsersTraffic extends React.Component {
getTrafficList = (month, page) => { getTrafficList = (month, page) => {
const { perPage, sortBy, sortOrder } = this.state; const { perPage, sortBy, sortOrder } = this.state;
const orderBy = `${sortBy}_${sortOrder}`; const orderBy = sortOrder == 'asc' ? sortBy : `${sortBy}_${sortOrder}`;
this.setState({ this.setState({
isLoading: true, isLoading: true,
errorMessage: '' errorMessage: ''

View File

@ -1,6 +1,8 @@
from collections import OrderedDict from collections import OrderedDict
from fnmatch import fnmatch from fnmatch import fnmatch
import logging import logging
import os
import sys
from django.conf import settings from django.conf import settings
from django.contrib.auth.middleware import RemoteUserMiddleware from django.contrib.auth.middleware import RemoteUserMiddleware
@ -16,11 +18,21 @@ from seahub.base.accounts import User
from seahub.base.sudo_mode import update_sudo_mode_ts from seahub.base.sudo_mode import update_sudo_mode_ts
from seahub.profile.models import Profile from seahub.profile.models import Profile
from seahub.utils.file_size import get_quota_from_string from seahub.utils.file_size import get_quota_from_string
from seahub.utils.user_permissions import get_user_role
# Get an instance of a logger # Get an instance of a logger
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
try:
conf_dir = os.environ['SEAFILE_CENTRAL_CONF_DIR']
sys.path.append(conf_dir)
try:
from seahub_custom_functions import custom_shibboleth_get_user_role
CUSTOM_SHIBBOLETH_GET_USER_ROLE = True
except ImportError:
CUSTOM_SHIBBOLETH_GET_USER_ROLE = False
except KeyError:
CUSTOM_SHIBBOLETH_GET_USER_ROLE = False
class ShibbolethRemoteUserMiddleware(RemoteUserMiddleware): class ShibbolethRemoteUserMiddleware(RemoteUserMiddleware):
""" """
@ -43,15 +55,15 @@ class ShibbolethRemoteUserMiddleware(RemoteUserMiddleware):
" 'django.contrib.auth.middleware.AuthenticationMiddleware'" " 'django.contrib.auth.middleware.AuthenticationMiddleware'"
" before the RemoteUserMiddleware class.") " before the RemoteUserMiddleware class.")
#To support logout. If this variable is True, do not # To support logout. If this variable is True, do not
#authenticate user and return now. # authenticate user and return now.
if request.session.get(LOGOUT_SESSION_KEY) is True: if request.session.get(LOGOUT_SESSION_KEY) is True:
return return
else: else:
#Delete the shib reauth session key if present. # Delete the shib reauth session key if present.
request.session.pop(LOGOUT_SESSION_KEY, None) request.session.pop(LOGOUT_SESSION_KEY, None)
#Locate the remote user header. # Locate the remote user header.
# import pprint; pprint.pprint(request.META) # import pprint; pprint.pprint(request.META)
try: try:
username = request.META[SHIB_USER_HEADER] username = request.META[SHIB_USER_HEADER]
@ -97,10 +109,20 @@ class ShibbolethRemoteUserMiddleware(RemoteUserMiddleware):
user.save() user.save()
# call make profile. # call make profile.
self.make_profile(user, shib_meta) self.make_profile(user, shib_meta)
if CUSTOM_SHIBBOLETH_GET_USER_ROLE:
user_role = custom_shibboleth_get_user_role(shib_meta)
if user_role:
ccnet_api.update_role_emailuser(user.email, user_role)
else:
user_role = self.update_user_role(user, shib_meta) user_role = self.update_user_role(user, shib_meta)
else:
user_role = self.update_user_role(user, shib_meta)
if user_role: if user_role:
self.update_user_quota(user, user_role) self.update_user_quota(user, user_role)
#setup session.
# setup session.
self.setup_session(request) self.setup_session(request)
request.shib_login = True request.shib_login = True
@ -234,5 +256,6 @@ class ShibbolethRemoteUserMiddleware(RemoteUserMiddleware):
error = True error = True
return shib_attrs, error return shib_attrs, error
class ShibbolethValidationError(Exception): class ShibbolethValidationError(Exception):
pass pass