<!DOCTYPE busconfig PUBLIC
 "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>

  <!-- Only root can own the service -->
  <policy user="root">
    <allow own="org.gnome.DisplayManager"/>

    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.Manager"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.Display"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.RemoteDisplay"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.LocalDisplayFactory"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.RemoteDisplayFactory"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.Settings"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.freedesktop.DBus.Properties" />
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.freedesktop.DBus.Introspectable"/>

  </policy>

  <policy context="default">
    <deny send_destination="org.gnome.DisplayManager"
          send_interface="org.gnome.DisplayManager.Display"/>
    <deny send_destination="org.gnome.DisplayManager"
          send_interface="org.gnome.DisplayManager.RemoteDisplay"/>
    <deny send_destination="org.gnome.DisplayManager"
          send_interface="org.gnome.DisplayManager.LocalDisplayFactory"/>
    <deny send_destination="org.gnome.DisplayManager"
          send_interface="org.gnome.DisplayManager.RemoteDisplayFactory"/>
    <deny send_destination="org.gnome.DisplayManager"
          send_interface="org.gnome.DisplayManager.Settings"/>
    <deny send_destination="org.gnome.DisplayManager"
          send_interface="org.gnome.DisplayManager.Session"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.freedesktop.DBus.Introspectable"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.freedesktop.DBus.ObjectManager"/>
    <allow send_destination="org.gnome.DisplayManager"
	   send_interface="org.freedesktop.DBus.Properties"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.Manager"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.Display"
           send_member="GetId"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.Display"
           send_member="GetRemoteHostname"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.Display"
           send_member="GetSeatId"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.Display"
           send_member="GetX11DisplayName"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.Display"
           send_member="GetX11DisplayNumber"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.Display"
           send_member="IsLocal"/>

    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.LocalDisplayFactory"
           send_member="CreateTransientDisplay"/>
  </policy>

  <policy user="_gdm">
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.Manager"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.Display"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.RemoteDisplay"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.LocalDisplayFactory"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.RemoteDisplayFactory"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.gnome.DisplayManager.Settings"/>
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.freedesktop.DBus.Properties" />
    <allow send_destination="org.gnome.DisplayManager"
           send_interface="org.freedesktop.DBus.Introspectable"/>
  </policy>

</busconfig>
