Skip to content

Commit 7792bc3

Browse files
committed
Fix 'logout' from gdp project page: issue #346
1 parent b5e4b45 commit 7792bc3

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

mig/shared/functionality/gdpman.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# --- BEGIN_HEADER ---
55
#
66
# gdpman - entry point with project access and management for GDP-enabled sites
7-
# Copyright (C) 2003-2023 The MiG Project lead by Brian Vinter
7+
# Copyright (C) 2003-2025 The MiG Project lead by the Science HPC Center at UCPH
88
#
99
# This file is part of MiG.
1010
#
@@ -1649,13 +1649,12 @@ def main(client_id, user_arguments_dict, environ=None):
16491649
client_addr,
16501650
client_id,
16511651
autologout=True)
1652-
return_url = req_url
1653-
return_query_dict = None
1652+
return_url = req_url.replace(environ.get('SCRIPT_URL', ''),
1653+
configuration.site_autolaunch_page)
16541654
redirect_url = build_autologout_url(configuration,
16551655
environ,
16561656
client_id,
1657-
return_url,
1658-
return_query_dict=return_query_dict)
1657+
return_url)
16591658
elif active_project_client_id:
16601659
dest_op_name = 'fileman'
16611660
redirect_url = requested_page(environ).replace(op_name,

mig/shared/functionality/logout.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# --- BEGIN_HEADER ---
55
#
66
# 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
88
#
99
# This file is part of MiG.
1010
#
@@ -40,7 +40,8 @@
4040
from mig.shared.functional import validate_input_and_cert
4141
from mig.shared.gdp.all import project_logout, get_client_id_from_project_client_id
4242
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
4445
from mig.shared.init import initialize_main_variables, find_entry
4546
from mig.shared.useradm import expire_oid_sessions, find_oid_sessions
4647
from mig.shared.url import urlencode
@@ -231,7 +232,18 @@ def main(client_id, user_arguments_dict, environ=None):
231232
% configuration.short_title})
232233
status = returnvalues.CLIENT_ERROR
233234
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)
235247
output_objects.append(
236248
{'object_type': 'text', 'text': """Are you sure you want to
237249
log out of %s?""" % configuration.short_title})

0 commit comments

Comments
 (0)