File gs-fate318433-prevent-same-account-multi-logins.patch of Package gnome-shell

Index: gnome-shell-41.9/js/gdm/loginDialog.js
===================================================================
--- gnome-shell-41.9.orig/js/gdm/loginDialog.js
+++ gnome-shell-41.9/js/gdm/loginDialog.js
@@ -1044,6 +1044,29 @@ var LoginDialog = GObject.registerClass(
     }
 
     _onSessionOpened(client, serviceName) {
+        if (this._user.get_num_sessions_anywhere() > 1) {
+            this._authPrompt.setMessage(
+                _('Sorry, you have to log out a previous session first. Multiple logins are not supported.'),
+                GdmUtil.MessageType.ERROR);
+            // TODO: The following logic relies on the unverified fact that
+            // `AuthPrompt::_onVerificationComplete` seems to always run after
+            // current handler. This might root from the interaction between
+            // greeter and verifier, both are external programs.
+            this._authPrompt.verificationStatus = AuthPrompt.AuthPromptStatus.VERIFIED_BUT_FORBIDDEN;
+            this._authPrompt.cancelButton.reactive = true;
+
+            // NOTE: Failed Attempts as references
+            //
+            // NOTE: reset is too heavy, it skips the error prompt all together
+            // this._authPrompt.reset();
+            //
+            // NOTE: Diconnect at this stage is not working
+            //
+            // this._authPrompt._userVerifier.disconnect(this._authPrompt._userVerifierCompleteId);
+
+            return;
+        }
+
         this._authPrompt.finish(() => this._startSession(serviceName));
     }
 
openSUSE Build Service is sponsored by