Hi, all 

I am sponsoring this case, and setting the time out to be 04/23/2008. 

The proposal is attached.

Please review. 

--Irene 
-------------- next part --------------
Template Version: @(#)onepager.txt 1.35 07/11/07 SMI
Copyright 2007 Sun Microsystems

1. Introduction
   1.1. Project/Component Working Name:
        GNOME shutdown dialog

   1.2. Name of Document Author/Supplier:
        Simon Zheng

   1.3. Date of This Document:
        04/10/08

2. Background

   In Solaris gnome desktop, there are 4 scenarios that require user to 
   confirm with logout or shutdown action.

        - Clicking buttons in launch menu of gnome-panel
        - Response to user pressing power button
        - Response to suspend key from keyboard
        - Sending XSMP saveyourself request to gnome-session.
          e.g. $gnome-session-save --kill

   As of now, they're handled by 3 different dialogs from gnome-panel,
   gnome-sys-suspend and gnome-session. It's not good for both user
   experience and authorization checking.

   Recently, Defining Workstation Owner Infrastructure (PSARC/2008/034),
   HAL power management support (PSARC/2008/021) and GNOME power manager
   (LSARC/2007/702) provide easier underlying interfaces with application
   to run power management operation. Based on those interfaces, this  
   project will supply user a unified logout and shutdown GUI dialog.

4. Technical Description:

    4.1. Details:

         Two new dialogs will be added on Solaris. One dialog shows user 
         logout and user switch action buttons. The other dialog provides 
         user another 4 actions, suspend, hibernate, shutdown, reboot. 
         These dialogs are consistent with current upstream. 

         Suspend, hibernate, shutdown and reboot actions are done by 
         calling gnome-power-manager interfaces, e.g. "org.freedesktop.
         PowerManagement.Suspend". Logout action don't have to depend on
         extra interface, gnome-session just cleans up itself and its 
         child processes to close session. Note that user switch will 
         be hidden until multi-session capability is supported on Solaris.  

         New GUI dialogs are drawn by gnome-session. Likewise, gnome-session
         will export two new D-Bus interfaces, which are backported from 
         upstream. Via new interfaces, gnome-panel and other applications
         can notify gnome-session to show user dialog when necessary.

         For instance, when console user logs in desktop, menu button 
         "Shut Down..." is visible on Launch Menu. If user pushes it,
         gnome-panel will cause shutdown dialog show up by invoking 
         "org.gnome.SessionManager.Shutdown" instead of current XSMP-based 
         saveyourself request.

         Please note gnome-sys-suspend will be obsolete after new dialogs
         are integrated. Another separate case will be filed to make 
         related interface obsolete.
                
    4.2. Bug/RFE Number(s):
        
        - CR #6378018 gnome-sys-suspend should offer "logout" and "reboot" 
choices as well
        - CR #6378021 gnome-sys-suspend should not offer "Suspend" if system 
doesn't support it
        - CR #6621991 No restart option seen in GUI
        - CR #6554809 Shutdown option should not appear on non-root Sun Ray 
desktops

    4.3. Interfaces:

                                   Exported  Interfaces 

         Interface Name                         Classification          Comment
         -------------------                    ---------------         
--------------
         org.gnome.SessionManager.Logout        Volatile                Show 
logout dialog. Allow
                                                                        user to 
logout or switch to
                                                                        another 
user if supported.

         org.gnome.SessionManager.Shutdown      Volatile                Show 
shutdown dialog. Allow 
                                                                        user to 
choose suspend,
                                                                        
hibernate, shutdown, reboot
                                                                        if 
supported.

                                   Imported  Interfaces
 
         Interface Name                             Classification   ARC Case   
              Comment
         -------------------                        ---------------  
--------------           ---------------------------------
         D-BUS                                      Volatile         
LSARC/2006/368           D-Bus and glib-binding library.
                                                                     D-BUS 
Message Bus System

         org.freedesktop.PowerManagement.Suspend    Volatile         
LSARC/2007/702           Attempt to suspend the system.
                                                                     GNOME 
Power Manager
         org.freedesktop.PowerManagement.Hibernate  Volatile         The same 
as above        Attempt to hibernate.
         org.freedesktop.PowerManagement.Shutdown   Volatile         The same 
as above        Attempt to shutdown.
         org.freedesktop.PowerManagement.Reboot     Volatile         The same 
as above        Attempt to reboot.
         org.freedesktop.PowerManagement.CanSuspend Volatile         The same 
as above        If the current session user is 
                                                                                
              able to suspend the system.
         org.freedesktop.PowerManagement.CanSuspend Volatile         The same 
as above        If the current session user is 
                                                                                
              able to suspend the system.
         org.freedesktop.PowerManagement.CanShutdown Volatile        The same 
as above        If the current session user is 
                                                                                
              able to shutdown the system.
         org.freedesktop.PowerManagement.CanReboot   Volatile        The same 
as above        If the current session user is 
                                                                                
              able to reboot the system.
    4.4. Security Impact:

        This case is just the consumer of LSARC/2007/702. It doesn't
        depend on any authorization directly.

        Since shutdown, suspend, hibernate action aren't available for
        all users, hardware capability and user authorization need to
        be checked before showing action buttons on dialog. This 
        checking rely on gnome-power-manager D-Bus interface, e.g. 
        "org.freedesktop.PowerManagement.CanShutdown".

        In addtions, the same checking is needed before showing 
        "Shut Down..." menu button on Launch Menu. 

        Some distribution, e.g. SunRay, probably wants to hide some 
        buttons and actions. It's easy to be achieved through configuring
        related power management authorizations (see PSARC/2008/021). 
    
    4.5. Dependency:

        GNOME power manager (LSARC/2007/702) is a putback dependency.

5. Resources and Schedule

    5.1  Release Binding
         Target to a minor release of Solaris

    5.2. Consolidation C-team Name:  JDS/GNOME

    5.3. ARC review type:  FastTrack

    5.4. ARC Exposure: open

6. Related ARC cases
    
    LSARC/2007/702 GNOME power manager
    LSARC/2006/368 D-BUS Message Bus System
    PSARC/2008/034 Defining Workstation Owner Infrastructure
    PSARC/2008/021 HAL Power Management Support

Reply via email to