|
4 | 4 | # --- BEGIN_HEADER --- |
5 | 5 | # |
6 | 6 | # logout - force-expire local login session(s) |
7 | | -# Copyright (C) 2003-2025 The MiG Project lead by Brian Vinter |
| 7 | +# Copyright (C) 2003-2025 The MiG Project lead by the Science HPC Center at UCPH |
8 | 8 | # |
9 | 9 | # This file is part of MiG. |
10 | 10 | # |
|
40 | 40 | from mig.shared.functional import validate_input_and_cert |
41 | 41 | from mig.shared.gdp.all import project_logout, get_client_id_from_project_client_id |
42 | 42 | from mig.shared.httpsclient import extract_client_id, detect_client_auth, \ |
43 | | - require_twofactor_setup, build_logout_url, extract_client_openid |
| 43 | + require_twofactor_setup, build_logout_url, extract_client_openid, \ |
| 44 | + build_autologout_url |
44 | 45 | from mig.shared.init import initialize_main_variables, find_entry |
45 | 46 | from mig.shared.useradm import expire_oid_sessions, find_oid_sessions |
46 | 47 | from mig.shared.url import urlencode |
@@ -231,7 +232,18 @@ def main(client_id, user_arguments_dict, environ=None): |
231 | 232 | % configuration.short_title}) |
232 | 233 | status = returnvalues.CLIENT_ERROR |
233 | 234 | else: |
234 | | - logout_url = build_logout_url(configuration, environ) |
| 235 | + if configuration.site_enable_gdp: |
| 236 | + real_user = get_client_id_from_project_client_id(configuration, |
| 237 | + client_id) |
| 238 | + req_url = environ.get('SCRIPT_URI', '') |
| 239 | + return_url = req_url.replace(environ.get('SCRIPT_URL', ''), |
| 240 | + configuration.site_autolaunch_page) |
| 241 | + logout_url = build_autologout_url(configuration, |
| 242 | + environ, |
| 243 | + real_user, |
| 244 | + return_url) |
| 245 | + else: |
| 246 | + logout_url = build_logout_url(configuration, environ) |
235 | 247 | output_objects.append( |
236 | 248 | {'object_type': 'text', 'text': """Are you sure you want to |
237 | 249 | log out of %s?""" % configuration.short_title}) |
|
0 commit comments