Do not change the userID of legacy sessions during update
authorTim Düsterhus <duesterhus@woltlab.com>
Wed, 12 May 2021 09:49:52 +0000 (11:49 +0200)
committerTim Düsterhus <duesterhus@woltlab.com>
Wed, 12 May 2021 09:57:19 +0000 (11:57 +0200)
commit346def0ae1eaee9b3f1ee35575550b320ad3f0eb
tree1ac9c2caad41ff67b2e7c38baa2586a7b148307f
parente3d930e44744b03fdd4fc713a75dd86f9d8afc4d
Do not change the userID of legacy sessions during update

This causes issues when combined with the `hideSession` parameter of
SessionHandler::changeUser() and is not required, because an existing session
will *never* change its userID.

1. During login (changing user to non-guest)
the previous user's session will be deleted together with the legacy session
matching the sessionID, a new session will be created, its assigned legacy
session will be deleted, then the userID will be adjusted and the session
reloaded, thus creating a legacy session with the appropriate userID (or
re-using an existing one of that newly logged-in user). The legacy session of
the previous user will never be reused as the legacy session for the new user.

2. During logout (changing user to guest)
the previous user session will simply be deleted together with the legacy
session matching the sessionID. A new session + legacy session for the guest
will be created for the next request. The legacy session of the user will never
be reused as the legacy session for the guest.

Resolves WoltLab/com.woltlab.pluginStore#39
wcfsetup/install/files/lib/system/session/SessionHandler.class.php