Merge pull request #507 from YunoHost/app_without_sso

App without sso
This commit is contained in:
Bram 2018-07-21 17:35:01 +02:00 committed by GitHub
commit ede8fed77e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -399,6 +399,8 @@ def app_map(app=None, raw=False, user=None):
continue continue
if 'domain' not in app_settings: if 'domain' not in app_settings:
continue continue
if 'no_sso' in app_settings: # I don't think we need to check for the value here
continue
if user is not None: if user is not None:
if ('mode' not in app_settings if ('mode' not in app_settings
or ('mode' in app_settings or ('mode' in app_settings
@ -1270,10 +1272,6 @@ def app_ssowatconf(auth):
main_domain = _get_maindomain() main_domain = _get_maindomain()
domains = domain_list(auth)['domains'] domains = domain_list(auth)['domains']
users = {}
for username in user_list(auth)['users'].keys():
users[username] = app_map(user=username)
skipped_urls = [] skipped_urls = []
skipped_regex = [] skipped_regex = []
unprotected_urls = [] unprotected_urls = []
@ -1284,7 +1282,7 @@ def app_ssowatconf(auth):
redirected_urls = {} redirected_urls = {}
try: try:
apps_list = app_list()['apps'] apps_list = app_list(installed=True)['apps']
except: except:
apps_list = [] apps_list = []
@ -1293,31 +1291,34 @@ def app_ssowatconf(auth):
return s.split(',') if s else [] return s.split(',') if s else []
for app in apps_list: for app in apps_list:
if _is_installed(app['id']): with open(APPS_SETTING_PATH + app['id'] + '/settings.yml') as f:
with open(APPS_SETTING_PATH + app['id'] + '/settings.yml') as f: app_settings = yaml.load(f)
app_settings = yaml.load(f)
for item in _get_setting(app_settings, 'skipped_uris'): if 'no_sso' in app_settings:
if item[-1:] == '/': continue
item = item[:-1]
skipped_urls.append(app_settings['domain'] + app_settings['path'].rstrip('/') + item) for item in _get_setting(app_settings, 'skipped_uris'):
for item in _get_setting(app_settings, 'skipped_regex'): if item[-1:] == '/':
skipped_regex.append(item) item = item[:-1]
for item in _get_setting(app_settings, 'unprotected_uris'): skipped_urls.append(app_settings['domain'] + app_settings['path'].rstrip('/') + item)
if item[-1:] == '/': for item in _get_setting(app_settings, 'skipped_regex'):
item = item[:-1] skipped_regex.append(item)
unprotected_urls.append(app_settings['domain'] + app_settings['path'].rstrip('/') + item) for item in _get_setting(app_settings, 'unprotected_uris'):
for item in _get_setting(app_settings, 'unprotected_regex'): if item[-1:] == '/':
unprotected_regex.append(item) item = item[:-1]
for item in _get_setting(app_settings, 'protected_uris'): unprotected_urls.append(app_settings['domain'] + app_settings['path'].rstrip('/') + item)
if item[-1:] == '/': for item in _get_setting(app_settings, 'unprotected_regex'):
item = item[:-1] unprotected_regex.append(item)
protected_urls.append(app_settings['domain'] + app_settings['path'].rstrip('/') + item) for item in _get_setting(app_settings, 'protected_uris'):
for item in _get_setting(app_settings, 'protected_regex'): if item[-1:] == '/':
protected_regex.append(item) item = item[:-1]
if 'redirected_urls' in app_settings: protected_urls.append(app_settings['domain'] + app_settings['path'].rstrip('/') + item)
redirected_urls.update(app_settings['redirected_urls']) for item in _get_setting(app_settings, 'protected_regex'):
if 'redirected_regex' in app_settings: protected_regex.append(item)
redirected_regex.update(app_settings['redirected_regex']) 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'])
@ -1343,7 +1344,8 @@ def app_ssowatconf(auth):
'protected_regex': protected_regex, 'protected_regex': protected_regex,
'redirected_urls': redirected_urls, 'redirected_urls': redirected_urls,
'redirected_regex': redirected_regex, 'redirected_regex': redirected_regex,
'users': users, 'users': {username: app_map(user=username)
for username in user_list(auth)['users'].keys()},
} }
with open('/etc/ssowat/conf.json', 'w+') as f: with open('/etc/ssowat/conf.json', 'w+') as f: