Simplify part of app_ssowatconf

This commit is contained in:
Alexandre Aubin 2019-09-15 16:59:44 +02:00
parent cc59501b55
commit 95a8dfa71c

View file

@ -41,7 +41,7 @@ from datetime import datetime
from moulinette import msignals, m18n, msettings from moulinette import msignals, m18n, msettings
from moulinette.utils.log import getActionLogger from moulinette.utils.log import getActionLogger
from moulinette.utils.filesystem import read_json, read_toml from moulinette.utils.filesystem import read_json, read_toml, read_yaml
from yunohost.service import service_log, service_status, _run_service_command from yunohost.service import service_log, service_status, _run_service_command
from yunohost.utils import packages from yunohost.utils import packages
@ -1366,34 +1366,29 @@ def app_ssowatconf():
return s.split(',') if s else [] return s.split(',') if s else []
for app in apps_list: for app in apps_list:
with open(APPS_SETTING_PATH + app['id'] + '/settings.yml') as f:
app_settings = yaml.load(f) app_settings = read_yaml(APPS_SETTING_PATH + app['id'] + '/settings.yml')
if 'no_sso' in app_settings: if 'no_sso' in app_settings:
continue continue
for item in _get_setting(app_settings, 'skipped_uris'): app_root_webpath = app_settings['domain'] + app_settings['path'].rstrip('/')
if item[-1:] == '/':
item = item[:-1] # Skipped
skipped_urls.append(app_settings['domain'] + app_settings['path'].rstrip('/') + item) skipped_urls += [app_root_webpath + uri.rstrip("/") for uri in _get_setting(app_settings, 'skipped_uris')]
for item in _get_setting(app_settings, 'skipped_regex'): skipped_regex += _get_setting(app_settings, 'skipped_regex')
skipped_regex.append(item)
for item in _get_setting(app_settings, 'unprotected_uris'): # Unprotected
if item[-1:] == '/': unprotected_urls += [app_root_webpath + uri.rstrip("/") for uri in _get_setting(app_settings, 'unprotected_uris')]
item = item[:-1] unprotected_regex += _get_setting(app_settings, 'unprotected_regex')
unprotected_urls.append(app_settings['domain'] + app_settings['path'].rstrip('/') + item)
for item in _get_setting(app_settings, 'unprotected_regex'): # Protected
unprotected_regex.append(item) unprotected_urls += [app_root_webpath + uri.rstrip("/") for uri in _get_setting(app_settings, 'protected_uris')]
for item in _get_setting(app_settings, 'protected_uris'): unprotected_regex += _get_setting(app_settings, 'protected_regex')
if item[-1:] == '/':
item = item[:-1] # Redirected
protected_urls.append(app_settings['domain'] + app_settings['path'].rstrip('/') + item) redirected_urls.update(app_settings.get('redirected_urls', {}))
for item in _get_setting(app_settings, 'protected_regex'): redirected_regex.update(app_settings.get('redirected_regex', {}))
protected_regex.append(item)
if 'redirected_urls' in app_settings:
redirected_urls.update(app_settings['redirected_urls'])
if 'redirected_regex' in app_settings:
redirected_regex.update(app_settings['redirected_regex'])
for domain in domains: for domain in domains:
skipped_urls.extend([domain + '/yunohost/admin', domain + '/yunohost/api']) skipped_urls.extend([domain + '/yunohost/admin', domain + '/yunohost/api'])