mirror of
https://github.com/haiwen/seahub.git
synced 2025-04-27 11:01:14 +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:
parent
a9c0caff75
commit
a9c38c55a5
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
@ -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 += '/'
|
||||
|
||||
|
@ -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'},
|
||||
|
@ -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, ''),
|
||||
|
@ -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.
|
||||
|
@ -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():
|
||||
|
@ -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
|
||||
###############################
|
||||
|
Loading…
Reference in New Issue
Block a user