1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-18 00:00:00 +00:00

check if is pro for upload rate limit feature (#5354)

This commit is contained in:
lian
2023-01-13 11:19:29 +08:00
committed by GitHub
parent 755b0287a5
commit 7d0faaa7ae
2 changed files with 29 additions and 18 deletions

View File

@@ -2,7 +2,7 @@ import React, { Component, Fragment } from 'react';
import { FormGroup, Label, Input, Button } from 'reactstrap';
import { Utils } from '../../../utils/utils';
import { seafileAPI } from '../../../utils/seafile-api';
import { gettext } from '../../../utils/constants';
import { gettext, isPro } from '../../../utils/constants';
import toaster from '../../../components/toast';
import Loading from '../../../components/loading';
import SysAdminSetQuotaDialog from '../../../components/dialog/sysadmin-dialog/set-quota';
@@ -154,19 +154,20 @@ class Content extends Component {
{`${Utils.bytesToSize(user.quota_usage)} / ${user.quota_total > 0 ? Utils.bytesToSize(user.quota_total) : '--'}`}
{this.showEditIcon(this.toggleSetQuotaDialog)}
</dd>
<dt className="info-item-heading">{gettext('Upload Rate Limit')}</dt>
<dd className="info-item-content">
{user.upload_rate_limit > 0 ? user.upload_rate_limit + ' kB/s' : '--'}
{this.showEditIcon(this.toggleSetUserUploadRateLimitDialog)}
</dd>
<dt className="info-item-heading">{gettext('Download Rate Limit')}</dt>
<dd className="info-item-content">
{user.download_rate_limit > 0 ? user.download_rate_limit + ' kB/s' : '--'}
{this.showEditIcon(this.toggleSetUserDownloadRateLimitDialog)}
</dd>
{isPro &&
<Fragment>
<dt className="info-item-heading">{gettext('Upload Rate Limit')}</dt>
<dd className="info-item-content">
{user.upload_rate_limit > 0 ? user.upload_rate_limit + ' kB/s' : '--'}
{this.showEditIcon(this.toggleSetUserUploadRateLimitDialog)}
</dd>
<dt className="info-item-heading">{gettext('Download Rate Limit')}</dt>
<dd className="info-item-content">
{user.download_rate_limit > 0 ? user.download_rate_limit + ' kB/s' : '--'}
{this.showEditIcon(this.toggleSetUserDownloadRateLimitDialog)}
</dd>
</Fragment>
}
{twoFactorAuthEnabled &&
<Fragment>
<dt className="info-item-heading">{gettext('Two-Factor Authentication')}</dt>
@@ -196,14 +197,14 @@ class Content extends Component {
toggle={this.toggleSetQuotaDialog}
/>
}
{isSetUserUploadRateLimitDialogOpen &&
{(isPro && isSetUserUploadRateLimitDialogOpen) &&
<SysAdminSetUploadDownloadRateLimitDialog
uploadOrDownload="upload"
updateUploadDownloadRateLimit={this.updateUploadDownloadRateLimit}
toggle={this.toggleSetUserUploadRateLimitDialog}
/>
}
{isSetUserDownloadRateLimitDialogOpen &&
{(isPro && isSetUserDownloadRateLimitDialogOpen) &&
<SysAdminSetUploadDownloadRateLimitDialog
uploadOrDownload="download"
updateUploadDownloadRateLimit={this.updateUploadDownloadRateLimit}

View File

@@ -241,10 +241,10 @@ def update_user_info(request, user, password, is_active, is_staff, role,
logger.error(e)
seafile_api.set_user_quota(email, -1)
if upload_rate_limit is not None:
if is_pro_version() and upload_rate_limit is not None:
seafile_api.set_user_upload_rate_limit(email, upload_rate_limit * 1000)
if download_rate_limit is not None:
if is_pro_version() and download_rate_limit is not None:
seafile_api.set_user_download_rate_limit(email, download_rate_limit * 1000)
@@ -1119,6 +1119,11 @@ class AdminUser(APIView):
upload_rate_limit = request.data.get("upload_rate_limit", None)
if upload_rate_limit:
if not is_pro_version():
error_msg = 'Feature disabled.'
return api_error(status.HTTP_403_FORBIDDEN, error_msg)
try:
upload_rate_limit = int(upload_rate_limit)
except ValueError:
@@ -1131,6 +1136,11 @@ class AdminUser(APIView):
download_rate_limit = request.data.get("download_rate_limit", None)
if download_rate_limit:
if not is_pro_version():
error_msg = 'Feature disabled.'
return api_error(status.HTTP_403_FORBIDDEN, error_msg)
try:
download_rate_limit = int(download_rate_limit)
except ValueError: