Comment 11 for bug 357455

Revision history for this message
Chris Coulson (chrisccoulson) wrote :

Paul,

I'll merge the changes in to Ted's session_management branch in the morning, as it will be easier for you to review. The change makes it count sessions in the same way that consolekit does. My change makes it count only a single session for each logged in user, regardless of how many sessions that user has open.

* If user A has a session open and user B has 2 sessions open, then the applet counts 2 users, and will decide on whether to display the dialog based on the policy for multiple users (default in Ubuntu is no confirmation dialog as the user needs to authenticate).

* If user A has a session open, then the applet counts 1 user and will decide on whether to display the dialog based on the policy for a single user (default in Ubuntu is to display the confirmation dialog, as the user doesn't need to authenticate).

* If user A has 2 sessions open (as the use case in this bug report), then the applet counts 1 user and will decide on whether to display the dialog based on the policy for a single user (default in Ubuntu is to display the confirmation dialog, as the user doesn't need to authenticate).

You can try the package out in my PPA to see if it behaves as expected. A good test sequence would be:

1. Select Shutdown or Restart with only a single user logged in. You should see the confirmation dialogue. Cancel this.
2. Open a terminal and create a root shell ("sudo su"). Now select Shutdown or Restart - you should see a Policykit authentication dialogue. Now cancel this.
3. Switch to a terminal (CTRL+ALT+F1) and log in using the user logged in at step 1. Switch back to your X session and select Shutdown or Restart. You should see the Policykit authentication dialogue again. Cancel this.
4. Exit your root shell created in step 2. You should now only have 2 sessions open (with the same user ID. Verify this with ck-list-sessions). Select Shutdown or Restart - you should see the confirmation dialogue with my version, whereas the action would be executed with no confirmation in the current Jaunty version.