1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-04-27 02:51:00 +00:00

SERVICE_URL in env (#6919)

* SERVICE_URL in env

* rm SERVICE_URL in db config

* update SERVICE_URL test
This commit is contained in:
欢乐马 2024-10-18 18:03:02 +08:00 committed by GitHub
parent a9c0caff75
commit a9c38c55a5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 21 additions and 37 deletions

View File

@ -99,25 +99,6 @@ class WebSettings extends Component {
<Fragment>
<p className="small text-secondary my-4">{gettext('Note: Settings via web interface are saved in database table (seahub-db/constance_config). They have a higher priority over the settings in config files.')}</p>
<Section headingText='URL'>
<Fragment>
<InputItem
saveSetting={this.saveSetting}
displayName='SERVICE_URL'
keyText='SERVICE_URL'
value={config_dict['SERVICE_URL']}
helpTip={gettext('The URL of the server, like https://seafile.example.com or http://192.168.1.2:8000')}
/>
<InputItem
saveSetting={this.saveSetting}
displayName='FILE_SERVER_ROOT'
keyText='FILE_SERVER_ROOT'
value={config_dict['FILE_SERVER_ROOT']}
helpTip={gettext('The internal URL for downloading/uploading files. Users will not be able to download/upload files if this is not set correctly. If you config Seafile behind Nginx/Apache, it should be SERVICE_URL/seafhttp, like https://seafile.example.com/seafhttp .')}
/>
</Fragment>
</Section>
<Section headingText={gettext('Branding')}>
<Fragment>
<InputItem

View File

@ -32,8 +32,7 @@ DIGIT_WEB_SETTINGS = [
'ENABLE_USER_CLEAN_TRASH', 'SHARE_LINK_TOKEN_LENGTH'
]
STRING_WEB_SETTINGS = ('SERVICE_URL', 'FILE_SERVER_ROOT', 'TEXT_PREVIEW_EXT',
'SITE_NAME', 'SITE_TITLE', 'CUSTOM_CSS')
STRING_WEB_SETTINGS = ('TEXT_PREVIEW_EXT', 'SITE_NAME', 'SITE_TITLE', 'CUSTOM_CSS')
class AdminWebSettings(APIView):
@ -91,9 +90,6 @@ class AdminWebSettings(APIView):
error_msg = 'value invalid.'
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
if key in ('SERVICE_URL', 'FILE_SERVER_ROOT'):
value = value.rstrip('/')
try:
setattr(config, key, value)
except AttributeError as e:

View File

@ -17,6 +17,7 @@ from seahub.api2.utils import api_error
from seaserv import seafile_api
from seahub.settings import SERVICE_URL
from seahub.utils.repo import get_available_repo_perms, get_repo_owner
from seahub.base.templatetags.seahub_tags import email2nickname, email2contact_email
from seahub.constants import PERMISSION_READ, PERMISSION_READ_WRITE
@ -84,7 +85,7 @@ class OCMProtocolView(APIView):
result = {
'enabled': True,
'apiVersion': OCM_API_VERSION,
'endPoint': config.SERVICE_URL + '/' + OCM_ENDPOINT,
'endPoint': SERVICE_URL + '/' + OCM_ENDPOINT,
'resourceTypes': {
'name': OCM_RESOURCE_TYPE_LIBRARY,
'shareTypes': OCM_SHARE_TYPES,
@ -384,7 +385,7 @@ class OCMSharesPrepareView(APIView):
'sharedSecret': shared_secret,
'permissions': SEAFILE_PERMISSION2OCM_PERMISSION[permission],
'repoId': repo_id,
'seafileServiceURL': check_url_slash(config.SERVICE_URL),
'seafileServiceURL': check_url_slash(SERVICE_URL),
},
},
}

View File

@ -24,7 +24,8 @@ from seahub.settings import SEAFILE_VERSION, SITE_DESCRIPTION, \
MEDIA_ROOT, SHOW_LOGOUT_ICON, CUSTOM_LOGO_PATH, CUSTOM_FAVICON_PATH, \
ENABLE_SEAFILE_DOCS, LOGIN_BG_IMAGE_PATH, THUMBNAIL_DEFAULT_SIZE, \
CUSTOM_LOGIN_BG_PATH, ENABLE_SHARE_LINK_REPORT_ABUSE, \
PRIVACY_POLICY_LINK, TERMS_OF_SERVICE_LINK, ENABLE_SEADOC, THUMBNAIL_SIZE_FOR_GRID
PRIVACY_POLICY_LINK, TERMS_OF_SERVICE_LINK, ENABLE_SEADOC, THUMBNAIL_SIZE_FOR_GRID, \
FILE_SERVER_ROOT
from seahub.organizations.models import OrgAdminSettings
from seahub.organizations.settings import ORG_ENABLE_ADMIN_CUSTOM_LOGO
@ -74,7 +75,7 @@ def base(request):
repo_id_patt = r".*/([a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12})/.*"
m = re.match(repo_id_patt, request.get_full_path())
search_repo_id = m.group(1) if m is not None else None
file_server_root = config.FILE_SERVER_ROOT
file_server_root = FILE_SERVER_ROOT
if not file_server_root.endswith('/'):
file_server_root += '/'

View File

@ -17,6 +17,7 @@ from rest_framework.response import Response
from rest_framework.permissions import IsAuthenticated
from rest_framework.authentication import SessionAuthentication
from seahub.settings import SERVICE_URL
from seahub.api2.authentication import TokenAuthentication
from seahub.api2.throttling import UserRateThrottle
from seahub.api2.utils import api_error
@ -129,7 +130,7 @@ class OCMProviderView(APIView):
result = {
'enabled': True,
'apiVersion': OCM_API_VERSION,
'endPoint': config.SERVICE_URL + '/' + OCM_ENDPOINT,
'endPoint': SERVICE_URL + '/' + OCM_ENDPOINT,
'resourceTypes': {
'name': OCM_RESOURCE_TYPE_LIBRARY,
'shareTypes': OCM_SHARE_TYPES,
@ -144,7 +145,7 @@ class OCMProviderView(APIView):
result = {
'apiVersion': '1.0-proposal1',
'enabled': True,
'endPoint': urljoin(config.SERVICE_URL, OCM_VIA_WEBDAV_OCM_ENDPOINT),
'endPoint': urljoin(SERVICE_URL, OCM_VIA_WEBDAV_OCM_ENDPOINT),
'resourceTypes': {
'name': 'file',
'protocols': {'webdav': 'TODO'},

View File

@ -984,6 +984,10 @@ SEADOC_PRIVATE_KEY = JWT_PRIVATE_KEY
SEADOC_SERVER_URL = os.environ.get('SEADOC_SERVER_URL', '') or SEADOC_SERVER_URL
FILE_CONVERTER_SERVER_URL = SEADOC_SERVER_URL.rstrip('/') + '/converter'
if os.environ.get('SEAFILE_SERVER_PROTOCOL', '') and os.environ.get('SEAFILE_SERVER_HOSTNAME', ''):
SERVICE_URL = os.environ.get('SEAFILE_SERVER_PROTOCOL', '') + '://' + os.environ.get('SEAFILE_SERVER_HOSTNAME', '')
FILE_SERVER_ROOT = SERVICE_URL.rstrip('/') + '/seafhttp'
# Remove install_topdir from path
sys.path.pop(0)
@ -994,8 +998,6 @@ SEAFEVENTS_SERVER_URL = 'http://127.0.0.1:8889'
CONSTANCE_ENABLED = ENABLE_SETTINGS_VIA_WEB
CONSTANCE_CONFIG = {
'SERVICE_URL': (SERVICE_URL, ''),
'FILE_SERVER_ROOT': (FILE_SERVER_ROOT, ''),
'DISABLE_SYNC_WITH_ANY_FOLDER': (DISABLE_SYNC_WITH_ANY_FOLDER, ''),
'ENABLE_SIGNUP': (ENABLE_SIGNUP, ''),

View File

@ -196,7 +196,7 @@ def get_fileserver_root():
Returns:
Constructed fileserver root.
"""
return config.FILE_SERVER_ROOT
return seahub.settings.FILE_SERVER_ROOT
def get_inner_fileserver_root():
"""Construct inner seafile fileserver address and port.
@ -915,7 +915,7 @@ def calc_file_path_hash(path, bits=12):
def get_service_url():
"""Get service url from seaserv.
"""
return config.SERVICE_URL
return seahub.settings.SERVICE_URL
def get_webdav_url():
"""Get webdav url.

View File

@ -28,7 +28,7 @@ class AdminWebSettingsTest(BaseTestCase):
self.assertEqual(200, resp.status_code)
json_resp = json.loads(resp.content)
assert len(json_resp) == 27
assert len(json_resp) == 25
@override_settings(ENABLE_SETTINGS_VIA_WEB=False)
def test_get_with_enable_settings(self):
@ -44,7 +44,6 @@ class AdminWebSettingsTest(BaseTestCase):
"SHARE_LINK_PASSWORD_MIN_LENGTH": 8,
"ENABLE_BRANDING_CSS": False,
"ENABLE_REPO_HISTORY_SETTING": 0,
"SERVICE_URL": "http://127.0.0.1:8000",
"ACTIVATE_AFTER_REGISTRATION": True,
"ENABLE_ENCRYPTED_LIBRARY": True,
"CUSTOM_CSS": "test_style",
@ -60,7 +59,6 @@ class AdminWebSettingsTest(BaseTestCase):
"ENABLE_TWO_FACTOR_AUTH": False,
"TEXT_PREVIEW_EXT": "ac, am, bat, c, cc, cmake, cpp, cs, css, diff, el, h, html, htm, java, js, json, less, make, org, php, pl, properties, py, rb, scala, script, sh, sql, txt, text, tex, vi, vim, xhtml, xml, log, csv, groovy, rst, patch, go, yml",
"ENABLE_SIGNUP": False,
"FILE_SERVER_ROOT": "http://127.0.0.1:8082",
"LOGIN_ATTEMPT_LIMIT": 5
}
for key, value in data.items():

View File

@ -33,6 +33,10 @@ cd "$SEAHUB_SRCDIR"
set +x
function init() {
# fix FILE_SERVER_ROOT in test
sed -i 's/^FILE_SERVER_ROOT = SERVICE_URL/# FILE_SERVER_ROOT = SERVICE_URL/' seahub/settings.py
###############################
# create database and two new users: an admin, and a normal user
###############################