aboutsummaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/50-org.ayatana.AccountsService.Sound.pkla13
-rw-r--r--data/CMakeLists.txt28
-rw-r--r--data/org.ayatana.AccountsService.Sound.policy24
-rw-r--r--data/org.ayatana.AccountsService.Sound.xml27
4 files changed, 89 insertions, 3 deletions
diff --git a/data/50-org.ayatana.AccountsService.Sound.pkla b/data/50-org.ayatana.AccountsService.Sound.pkla
new file mode 100644
index 0000000..ac58f75
--- /dev/null
+++ b/data/50-org.ayatana.AccountsService.Sound.pkla
@@ -0,0 +1,13 @@
+[Allow greeter to set fields]
+Identity=unix-user:lightdm
+Action=org.ayatana.AccountsService.GreeterChangeAny
+ResultAny=no
+ResultInactive=yes
+ResultActive=yes
+
+[Allow greeter to read fields]
+Identity=unix-user:lightdm
+Action=org.ayatana.AccountsService.GreeterReadAny
+ResultAny=yes
+ResultInactive=yes
+ResultActive=yes
diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
index a9ebf55..b99fff4 100644
--- a/data/CMakeLists.txt
+++ b/data/CMakeLists.txt
@@ -121,9 +121,9 @@ if(NOT EXISTS /usr/share/glib-2.0/schemas/com.ubuntu.sound.gschema.xml)
add_schema ("org.ayatana.sound.gschema.xml")
endif()
-###########################
-# Accounts Service
-###########################
+#########################################
+# Accounts Service Iface: Sound Indicator
+#########################################
set(POLKIT_LIB_DIR "${CMAKE_INSTALL_LOCALSTATEDIR}/lib/polkit-1")
@@ -148,3 +148,25 @@ DESTINATION "${POLKIT_DATA_DIR}/actions"
install(FILES 50-org.ayatana.indicator.sound.AccountsService.pkla
DESTINATION "${POLKIT_LIB_DIR}/localauthority/10-vendor.d"
)
+
+#######################################
+# Accounts Service Iface: Greeter Sound
+#######################################
+
+install(FILES org.ayatana.AccountsService.Sound.xml
+ DESTINATION "${DBUS_IFACE_DIR}"
+)
+
+# Create accountsservice symlink for above dbus interface
+install(CODE "
+ execute_process(COMMAND mkdir -p \"\$ENV{DESTDIR}${ACCOUNTS_IFACE_DIR}\")
+ execute_process(COMMAND ln -sf ../../dbus-1/interfaces/org.ayatana.AccountsService.Sound.xml \"\$ENV{DESTDIR}${ACCOUNTS_IFACE_DIR}\")
+")
+
+install(FILES org.ayatana.AccountsService.Sound.policy
+DESTINATION "${POLKIT_DATA_DIR}/actions"
+)
+
+install(FILES 50-org.ayatana.AccountsService.Sound.pkla
+DESTINATION "${POLKIT_LIB_DIR}/localauthority/10-vendor.d"
+)
diff --git a/data/org.ayatana.AccountsService.Sound.policy b/data/org.ayatana.AccountsService.Sound.policy
new file mode 100644
index 0000000..7140498
--- /dev/null
+++ b/data/org.ayatana.AccountsService.Sound.policy
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<policyconfig>
+ <!-- Same as org.freedesktop.accounts.user-administration, but we override
+ settings for the lightdm user in a pkla file. -->
+ <action id="org.ayatana.AccountsService.GreeterChangeAny">
+ <defaults>
+ <allow_any>no</allow_any>
+ <allow_inactive>no</allow_inactive>
+ <allow_active>auth_admin_keep</allow_active>
+ </defaults>
+ </action>
+
+ <!-- Normally anyone can read these, but for a little bit extra lock down,
+ disallow all access, but we'll let the lightdm user read them via the
+ pkla override. -->
+ <action id="org.ayatana.AccountsService.GreeterReadAny">
+ <defaults>
+ <allow_any>no</allow_any>
+ <allow_inactive>no</allow_inactive>
+ <allow_active>no</allow_active>
+ </defaults>
+ </action>
+</policyconfig>
diff --git a/data/org.ayatana.AccountsService.Sound.xml b/data/org.ayatana.AccountsService.Sound.xml
new file mode 100644
index 0000000..bfbdd09
--- /dev/null
+++ b/data/org.ayatana.AccountsService.Sound.xml
@@ -0,0 +1,27 @@
+<node>
+ <interface name="org.ayatana.AccountsService.Sound">
+
+ <annotation name="org.freedesktop.Accounts.VendorExtension" value="true"/>
+
+ <annotation name="org.freedesktop.Accounts.Authentication.ChangeAny"
+ value="org.ayatana.AccountsService.GreeterChangeAny"/>
+
+ <annotation name="org.freedesktop.Accounts.Authentication.ReadAny"
+ value="org.ayatana.AccountsService.GreeterReadAny"/>
+
+ <property name="Volume" type="d" access="readwrite">
+ <annotation name="org.freedesktop.Accounts.DefaultValue" value="-1.0"/>
+ </property>
+
+ <!-- Muted is all sound, SilentMode is only non-user-initiated sounds -->
+ <property name="Muted" type="b" access="readwrite">
+ <annotation name="org.freedesktop.Accounts.DefaultValue" value="false"/>
+ </property>
+
+ <property name="LastRunningPlayer" type="s" access="readwrite">
+ <annotation name="org.freedesktop.Accounts.DefaultValue.String"
+ value=""/>
+ </property>
+
+ </interface>
+</node>