gnome-shell/js/ui
Vinzenz Feenstra 4cda61a16a gdm: support pre-authenticated logins from oVirt
oVirt is software for managing medium-to-large scale deployments of
virtual machine guests across multiple hosts. It supports a feature
where users can authenticate with a central server and get
transparently connected to a guest system and then automatically get logged
into that guest to an associated user session.

Guests using old versions of GDM support this single-sign-on capability
by means of a greeter plugin, using the old greeter's extension
API.

This commit adds similar support to the gnome-shell based login screen.

How it works:

* The OVirtCredentialsManager singleton listens for

  'org.ovirt.vdsm.Credentials.UserAuthenticated'

  D-Bus signal on the system bus from the

  'org.ovirt.vdsm.Credentials'

  bus name. The service that provides that bus name is called
  the oVirt guest agent. It is also responsible for interacting
  with the the central server to get user credentials.

* This UserAuthenticated signal passes, as a parameter, the a token
  which needs to be passed through to the PAM service that is specifically
  set up to integrate with the oVirt authentication architecture.
  The singleton object keeps the token internally so it can be queried
  later on.

* The OVirtCredentialsManager emits a signal 'user-authenticated' on
  it's object once the dbus signal is triggered

* When the 'user-authenticated' signal is emitted, the login screen
  tells GDM to start user verification using the PAM service. The
  authentication stack of the service includes a PAM module
  provided by oVirt that securely retrieves user credentials
  from the oVirt guest agent. The PAM module then forwards those
  credentials on to other modules in the stack so, e.g.,
  the user's gnome keyring can be automatically unlocked.

* In case of the screen shield being visible, it also will react on that
  'user-authenticated' signal and lift the shield.
  In that case the login screen will check on construction time if
  the signal has already been triggered, and a token is available.
  If a token is available it will immediately trigger the functionality
  as described above.

Signed-off-by: Vinzenz Feenstra <evilissimo@redhat.com>

https://bugzilla.gnome.org/show_bug.cgi?id=702162
2013-10-14 13:54:30 -04:00
..
components keyring: Cancel active prompts on disable() 2013-10-09 17:58:37 +02:00
status NetworkMenu: fix regression for VPN connections 2013-10-13 02:11:14 +02:00
altTab.js altTab: Only create one settings instance per window switcher popup 2013-09-10 10:23:43 -04:00
animation.js ui: move AnimatedIcon out of panel.js 2013-06-25 15:16:42 -04:00
appDisplay.js SearchDisplay: handle certain result IDs specially 2013-10-14 18:47:20 +02:00
appFavorites.js dash: reload favorites when the installed app change 2013-08-31 18:55:24 +02:00
background.js background: Disconnect settings signal handler on destroy 2013-10-02 15:43:30 +02:00
backgroundMenu.js backgroundMenu: Ignore releases when using long-press 2013-04-26 11:23:37 -04:00
boxpointer.js BoxPointer: account for border width when requesting size 2013-10-07 20:18:48 +02:00
calendar.js a11y: calendar: Month name should be navigable 2013-08-28 16:23:09 +02:00
checkBox.js checkBox: Remove custom container implementation 2013-08-20 08:06:30 +02:00
ctrlAltTab.js Rework window / actor focus handling 2013-07-08 17:05:16 -04:00
dash.js dash: Fix typo 2013-08-31 19:53:37 +02:00
dateMenu.js a11y: calendar: full date string should be navigable 2013-08-28 19:13:33 +02:00
dnd.js dnd: Use sync_pointer rather than complex enter/leave tracking 2013-09-12 14:33:33 -04:00
endSessionDialog.js EndSessionDialog: don't show other logged in users at log out 2013-08-30 15:59:13 +02:00
environment.js environment: Add some convenience LayoutManager monkey-patching 2013-07-24 15:22:05 +02:00
extensionDownloader.js modalDialog: drop global.get_current_time() arguments to close 2013-02-20 14:16:53 -05:00
extensionSystem.js Disable all extensions in reverse order 2013-05-22 07:51:23 +02:00
focusCaretTracker.js focusCaretTracker: Lower AT-SPI's timeout values 2013-09-21 04:51:42 -05:00
grabHelper.js grabHelper: Introduce a stack of grab helpers 2013-08-19 09:35:09 -04:00
ibusCandidatePopup.js ibusCandidatePopup: Fix cursor positioning 2013-02-15 00:26:47 +01:00
iconGrid.js iconGrid: Initialize properties in _init 2013-09-05 18:18:05 +02:00
keyboard.js keyboard: destroy actors when a group is removed 2013-02-20 22:39:41 +09:00
layout.js layout: Flush region update in showOverview 2013-10-11 20:16:44 +02:00
lightbox.js Lightbox: have animation times passed as parameters to show() and hide() 2013-08-20 21:52:04 +02:00
lookingGlass.js lookingGlass: Fix position on multi-head 2013-09-13 00:03:24 +02:00
magnifier.js Magnifier: don't initialize if we don't need it 2013-09-13 16:09:33 +02:00
magnifierDBus.js Remove various E4X junk remove4x can't handle 2013-09-11 15:02:33 -04:00
main.js main: Close runDialog as necessary on session mode changes 2013-09-19 07:53:56 +02:00
messageTray.js NotificationDaemon: fix icons for notifications without an app 2013-10-13 01:23:18 +02:00
modalDialog.js modalDialog: Request HEIGHT_FOR_WIDTH 2013-08-20 08:18:29 +02:00
notificationDaemon.js notificationDaemon: Raise the app when clicking on a notification, not the MRU window 2013-10-11 13:37:10 -04:00
osdWindow.js osdWindow: Make sure to clear the hide timeout 2013-06-24 17:23:43 -04:00
overview.js Revert "overview: Ignore dragEnd while the animation is still in progress" 2013-10-11 20:16:44 +02:00
overviewControls.js overviewControls: Don't use the child's preferred size to slide from 2013-10-12 14:38:13 -04:00
panel.js Make dropdown arrows consistent size 2013-10-11 17:32:55 +02:00
panelMenu.js panelMenu: Use the accessible-name property instead of a label actor 2013-08-13 11:22:03 -04:00
pointerWatcher.js Replace GnomeIdleMonitor with MetaIdleMonitor 2013-08-23 16:22:44 +02:00
popupMenu.js Make dropdown arrows consistent size 2013-10-11 17:32:55 +02:00
remoteMenu.js popupMenu: Remove our custom allocation code 2013-08-13 06:50:25 -04:00
remoteSearch.js SearchDisplay: handle certain result IDs specially 2013-10-14 18:47:20 +02:00
runDialog.js runDialog: don't destroy on close 2013-04-06 11:10:30 -04:00
screencast.js ShellRecorder: update to use MetaCursorTracker 2013-08-19 16:14:12 +02:00
screenShield.js gdm: support pre-authenticated logins from oVirt 2013-10-14 13:54:30 -04:00
screenshot.js ShellGlobal: remove cursor manipulation functions 2013-09-12 10:34:22 +02:00
scripting.js Port client side code to GDBus 2011-11-11 11:15:38 -05:00
search.js search: Ensure that we correctly remove remote search providers 2013-07-26 17:39:05 -04:00
searchDisplay.js SearchDisplay: handle certain result IDs specially 2013-10-14 18:47:20 +02:00
separator.js js: Explicitly dispose all cairo contexts 2013-01-08 13:07:51 -05:00
sessionMode.js components: Remove the built-in recorder keybinding and component 2013-08-14 20:39:07 -04:00
shellDBus.js ShellDBus: add ShowApplications method 2013-09-02 11:02:18 +02:00
shellEntry.js shellEntry: Set the input-purpose property for password entries 2013-05-10 12:42:18 +02:00
shellMountOperation.js Add a setting for the default state of 'Remember Password' 2012-12-02 23:01:56 +01:00
slider.js a11y: using generic accessible at slider 2013-08-28 16:05:54 +02:00
switcherPopup.js switcherPopup: Remove separator support 2013-03-04 15:28:38 +01:00
tweener.js tweener: Look at the XSetting for disabling animations 2013-02-25 12:59:35 -05:00
unlockDialog.js unlockDialog: Remove clutter constraints from the code 2013-08-26 19:05:15 -04:00
userWidget.js userWidget: Actually respect the iconSize parameter 2013-08-23 13:25:11 -04:00
viewSelector.js Make the search entry behave better in RTL locales 2013-09-11 18:41:55 +02:00
wanda.js SearchDisplay: handle certain result IDs specially 2013-10-14 18:47:20 +02:00
windowAttentionHandler.js Show feedback notifications when the user is busy 2012-11-02 19:25:26 +01:00
windowManager.js windowManager: Don't open overview after closing the last window on a workspace 2013-08-31 23:53:39 +02:00
workspace.js Suppress animation for titles in overview 2013-10-10 08:51:13 +02:00
workspacesView.js workspacesView: Remove dead code 2013-10-01 18:41:26 -04:00
workspaceSwitcherPopup.js Switch all external uses of Main.panel.actor.height to the work area 2013-02-06 22:35:49 -05:00
workspaceThumbnail.js workspaceThumbnail: Drop the _background hack 2013-10-12 14:38:13 -04:00
xdndHandler.js Disable XDND when running as a wayland compositor 2013-09-12 10:34:25 +02:00