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>
|
<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>
|
<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')}>
|
<Section headingText={gettext('Branding')}>
|
||||||
<Fragment>
|
<Fragment>
|
||||||
<InputItem
|
<InputItem
|
||||||
|
@ -32,8 +32,7 @@ DIGIT_WEB_SETTINGS = [
|
|||||||
'ENABLE_USER_CLEAN_TRASH', 'SHARE_LINK_TOKEN_LENGTH'
|
'ENABLE_USER_CLEAN_TRASH', 'SHARE_LINK_TOKEN_LENGTH'
|
||||||
]
|
]
|
||||||
|
|
||||||
STRING_WEB_SETTINGS = ('SERVICE_URL', 'FILE_SERVER_ROOT', 'TEXT_PREVIEW_EXT',
|
STRING_WEB_SETTINGS = ('TEXT_PREVIEW_EXT', 'SITE_NAME', 'SITE_TITLE', 'CUSTOM_CSS')
|
||||||
'SITE_NAME', 'SITE_TITLE', 'CUSTOM_CSS')
|
|
||||||
|
|
||||||
|
|
||||||
class AdminWebSettings(APIView):
|
class AdminWebSettings(APIView):
|
||||||
@ -91,9 +90,6 @@ class AdminWebSettings(APIView):
|
|||||||
error_msg = 'value invalid.'
|
error_msg = 'value invalid.'
|
||||||
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
||||||
|
|
||||||
if key in ('SERVICE_URL', 'FILE_SERVER_ROOT'):
|
|
||||||
value = value.rstrip('/')
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
setattr(config, key, value)
|
setattr(config, key, value)
|
||||||
except AttributeError as e:
|
except AttributeError as e:
|
||||||
|
@ -17,6 +17,7 @@ from seahub.api2.utils import api_error
|
|||||||
|
|
||||||
from seaserv import seafile_api
|
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.utils.repo import get_available_repo_perms, get_repo_owner
|
||||||
from seahub.base.templatetags.seahub_tags import email2nickname, email2contact_email
|
from seahub.base.templatetags.seahub_tags import email2nickname, email2contact_email
|
||||||
from seahub.constants import PERMISSION_READ, PERMISSION_READ_WRITE
|
from seahub.constants import PERMISSION_READ, PERMISSION_READ_WRITE
|
||||||
@ -84,7 +85,7 @@ class OCMProtocolView(APIView):
|
|||||||
result = {
|
result = {
|
||||||
'enabled': True,
|
'enabled': True,
|
||||||
'apiVersion': OCM_API_VERSION,
|
'apiVersion': OCM_API_VERSION,
|
||||||
'endPoint': config.SERVICE_URL + '/' + OCM_ENDPOINT,
|
'endPoint': SERVICE_URL + '/' + OCM_ENDPOINT,
|
||||||
'resourceTypes': {
|
'resourceTypes': {
|
||||||
'name': OCM_RESOURCE_TYPE_LIBRARY,
|
'name': OCM_RESOURCE_TYPE_LIBRARY,
|
||||||
'shareTypes': OCM_SHARE_TYPES,
|
'shareTypes': OCM_SHARE_TYPES,
|
||||||
@ -384,7 +385,7 @@ class OCMSharesPrepareView(APIView):
|
|||||||
'sharedSecret': shared_secret,
|
'sharedSecret': shared_secret,
|
||||||
'permissions': SEAFILE_PERMISSION2OCM_PERMISSION[permission],
|
'permissions': SEAFILE_PERMISSION2OCM_PERMISSION[permission],
|
||||||
'repoId': repo_id,
|
'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, \
|
MEDIA_ROOT, SHOW_LOGOUT_ICON, CUSTOM_LOGO_PATH, CUSTOM_FAVICON_PATH, \
|
||||||
ENABLE_SEAFILE_DOCS, LOGIN_BG_IMAGE_PATH, THUMBNAIL_DEFAULT_SIZE, \
|
ENABLE_SEAFILE_DOCS, LOGIN_BG_IMAGE_PATH, THUMBNAIL_DEFAULT_SIZE, \
|
||||||
CUSTOM_LOGIN_BG_PATH, ENABLE_SHARE_LINK_REPORT_ABUSE, \
|
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.models import OrgAdminSettings
|
||||||
from seahub.organizations.settings import ORG_ENABLE_ADMIN_CUSTOM_LOGO
|
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})/.*"
|
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())
|
m = re.match(repo_id_patt, request.get_full_path())
|
||||||
search_repo_id = m.group(1) if m is not None else None
|
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('/'):
|
if not file_server_root.endswith('/'):
|
||||||
file_server_root += '/'
|
file_server_root += '/'
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ from rest_framework.response import Response
|
|||||||
from rest_framework.permissions import IsAuthenticated
|
from rest_framework.permissions import IsAuthenticated
|
||||||
from rest_framework.authentication import SessionAuthentication
|
from rest_framework.authentication import SessionAuthentication
|
||||||
|
|
||||||
|
from seahub.settings import SERVICE_URL
|
||||||
from seahub.api2.authentication import TokenAuthentication
|
from seahub.api2.authentication import TokenAuthentication
|
||||||
from seahub.api2.throttling import UserRateThrottle
|
from seahub.api2.throttling import UserRateThrottle
|
||||||
from seahub.api2.utils import api_error
|
from seahub.api2.utils import api_error
|
||||||
@ -129,7 +130,7 @@ class OCMProviderView(APIView):
|
|||||||
result = {
|
result = {
|
||||||
'enabled': True,
|
'enabled': True,
|
||||||
'apiVersion': OCM_API_VERSION,
|
'apiVersion': OCM_API_VERSION,
|
||||||
'endPoint': config.SERVICE_URL + '/' + OCM_ENDPOINT,
|
'endPoint': SERVICE_URL + '/' + OCM_ENDPOINT,
|
||||||
'resourceTypes': {
|
'resourceTypes': {
|
||||||
'name': OCM_RESOURCE_TYPE_LIBRARY,
|
'name': OCM_RESOURCE_TYPE_LIBRARY,
|
||||||
'shareTypes': OCM_SHARE_TYPES,
|
'shareTypes': OCM_SHARE_TYPES,
|
||||||
@ -144,7 +145,7 @@ class OCMProviderView(APIView):
|
|||||||
result = {
|
result = {
|
||||||
'apiVersion': '1.0-proposal1',
|
'apiVersion': '1.0-proposal1',
|
||||||
'enabled': True,
|
'enabled': True,
|
||||||
'endPoint': urljoin(config.SERVICE_URL, OCM_VIA_WEBDAV_OCM_ENDPOINT),
|
'endPoint': urljoin(SERVICE_URL, OCM_VIA_WEBDAV_OCM_ENDPOINT),
|
||||||
'resourceTypes': {
|
'resourceTypes': {
|
||||||
'name': 'file',
|
'name': 'file',
|
||||||
'protocols': {'webdav': 'TODO'},
|
'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
|
SEADOC_SERVER_URL = os.environ.get('SEADOC_SERVER_URL', '') or SEADOC_SERVER_URL
|
||||||
FILE_CONVERTER_SERVER_URL = SEADOC_SERVER_URL.rstrip('/') + '/converter'
|
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
|
# Remove install_topdir from path
|
||||||
sys.path.pop(0)
|
sys.path.pop(0)
|
||||||
|
|
||||||
@ -994,8 +998,6 @@ SEAFEVENTS_SERVER_URL = 'http://127.0.0.1:8889'
|
|||||||
|
|
||||||
CONSTANCE_ENABLED = ENABLE_SETTINGS_VIA_WEB
|
CONSTANCE_ENABLED = ENABLE_SETTINGS_VIA_WEB
|
||||||
CONSTANCE_CONFIG = {
|
CONSTANCE_CONFIG = {
|
||||||
'SERVICE_URL': (SERVICE_URL, ''),
|
|
||||||
'FILE_SERVER_ROOT': (FILE_SERVER_ROOT, ''),
|
|
||||||
'DISABLE_SYNC_WITH_ANY_FOLDER': (DISABLE_SYNC_WITH_ANY_FOLDER, ''),
|
'DISABLE_SYNC_WITH_ANY_FOLDER': (DISABLE_SYNC_WITH_ANY_FOLDER, ''),
|
||||||
|
|
||||||
'ENABLE_SIGNUP': (ENABLE_SIGNUP, ''),
|
'ENABLE_SIGNUP': (ENABLE_SIGNUP, ''),
|
||||||
|
@ -196,7 +196,7 @@ def get_fileserver_root():
|
|||||||
Returns:
|
Returns:
|
||||||
Constructed fileserver root.
|
Constructed fileserver root.
|
||||||
"""
|
"""
|
||||||
return config.FILE_SERVER_ROOT
|
return seahub.settings.FILE_SERVER_ROOT
|
||||||
|
|
||||||
def get_inner_fileserver_root():
|
def get_inner_fileserver_root():
|
||||||
"""Construct inner seafile fileserver address and port.
|
"""Construct inner seafile fileserver address and port.
|
||||||
@ -915,7 +915,7 @@ def calc_file_path_hash(path, bits=12):
|
|||||||
def get_service_url():
|
def get_service_url():
|
||||||
"""Get service url from seaserv.
|
"""Get service url from seaserv.
|
||||||
"""
|
"""
|
||||||
return config.SERVICE_URL
|
return seahub.settings.SERVICE_URL
|
||||||
|
|
||||||
def get_webdav_url():
|
def get_webdav_url():
|
||||||
"""Get webdav url.
|
"""Get webdav url.
|
||||||
|
@ -28,7 +28,7 @@ class AdminWebSettingsTest(BaseTestCase):
|
|||||||
self.assertEqual(200, resp.status_code)
|
self.assertEqual(200, resp.status_code)
|
||||||
|
|
||||||
json_resp = json.loads(resp.content)
|
json_resp = json.loads(resp.content)
|
||||||
assert len(json_resp) == 27
|
assert len(json_resp) == 25
|
||||||
|
|
||||||
@override_settings(ENABLE_SETTINGS_VIA_WEB=False)
|
@override_settings(ENABLE_SETTINGS_VIA_WEB=False)
|
||||||
def test_get_with_enable_settings(self):
|
def test_get_with_enable_settings(self):
|
||||||
@ -44,7 +44,6 @@ class AdminWebSettingsTest(BaseTestCase):
|
|||||||
"SHARE_LINK_PASSWORD_MIN_LENGTH": 8,
|
"SHARE_LINK_PASSWORD_MIN_LENGTH": 8,
|
||||||
"ENABLE_BRANDING_CSS": False,
|
"ENABLE_BRANDING_CSS": False,
|
||||||
"ENABLE_REPO_HISTORY_SETTING": 0,
|
"ENABLE_REPO_HISTORY_SETTING": 0,
|
||||||
"SERVICE_URL": "http://127.0.0.1:8000",
|
|
||||||
"ACTIVATE_AFTER_REGISTRATION": True,
|
"ACTIVATE_AFTER_REGISTRATION": True,
|
||||||
"ENABLE_ENCRYPTED_LIBRARY": True,
|
"ENABLE_ENCRYPTED_LIBRARY": True,
|
||||||
"CUSTOM_CSS": "test_style",
|
"CUSTOM_CSS": "test_style",
|
||||||
@ -60,7 +59,6 @@ class AdminWebSettingsTest(BaseTestCase):
|
|||||||
"ENABLE_TWO_FACTOR_AUTH": False,
|
"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",
|
"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,
|
"ENABLE_SIGNUP": False,
|
||||||
"FILE_SERVER_ROOT": "http://127.0.0.1:8082",
|
|
||||||
"LOGIN_ATTEMPT_LIMIT": 5
|
"LOGIN_ATTEMPT_LIMIT": 5
|
||||||
}
|
}
|
||||||
for key, value in data.items():
|
for key, value in data.items():
|
||||||
|
@ -33,6 +33,10 @@ cd "$SEAHUB_SRCDIR"
|
|||||||
set +x
|
set +x
|
||||||
|
|
||||||
function init() {
|
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
|
# create database and two new users: an admin, and a normal user
|
||||||
###############################
|
###############################
|
||||||
|
Loading…
Reference in New Issue
Block a user