aboutsummaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/50-com.canonical.indicator.sound.AccountsService.pkla6
-rw-r--r--data/CMakeLists.txt32
-rw-r--r--data/com.canonical.indicator.sound.AccountsService.policy23
-rw-r--r--data/com.canonical.indicator.sound.AccountsService.xml42
-rw-r--r--data/com.canonical.indicator.sound.gschema.xml9
5 files changed, 112 insertions, 0 deletions
diff --git a/data/50-com.canonical.indicator.sound.AccountsService.pkla b/data/50-com.canonical.indicator.sound.AccountsService.pkla
new file mode 100644
index 0000000..bbcca1e
--- /dev/null
+++ b/data/50-com.canonical.indicator.sound.AccountsService.pkla
@@ -0,0 +1,6 @@
+[Allow LightDM to set Unity AccountsService fields]
+Identity=unix-user:lightdm
+Action=com.canonical.indicator.sound.AccountsService.ModifyAnyUser
+ResultActive=yes
+ResultInactive=yes
+ResultAny=yes
diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
index 80046f7..955a4a4 100644
--- a/data/CMakeLists.txt
+++ b/data/CMakeLists.txt
@@ -82,3 +82,35 @@ install(
###########################
add_schema ("com.canonical.indicator.sound.gschema.xml")
+
+###########################
+# Accounts Service
+###########################
+
+
+set(POLKIT_LIB_DIR "${CMAKE_INSTALL_LOCALSTATEDIR}/lib/polkit-1")
+set(POLKIT_DATA_DIR "${CMAKE_INSTALL_PREFIX}/share/polkit-1")
+set(DBUS_IFACE_DIR "${CMAKE_INSTALL_PREFIX}/share/dbus-1/interfaces")
+set(ACCOUNTS_IFACE_DIR "${CMAKE_INSTALL_PREFIX}/share/accountsservice/interfaces")
+
+install(FILES com.canonical.indicator.sound.AccountsService.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/com.canonical.indicator.sound.AccountsService.xml \"\$ENV{DESTDIR}${ACCOUNTS_IFACE_DIR}\")
+")
+
+install(FILES com.canonical.indicator.sound.AccountsService.policy
+DESTINATION "${POLKIT_DATA_DIR}/actions"
+)
+
+install(FILES 50-com.canonical.indicator.sound.AccountsService.pkla
+DESTINATION "${POLKIT_LIB_DIR}/localauthority/10-vendor.d"
+)
+
+
+
+
diff --git a/data/com.canonical.indicator.sound.AccountsService.policy b/data/com.canonical.indicator.sound.AccountsService.policy
new file mode 100644
index 0000000..4d0ee75
--- /dev/null
+++ b/data/com.canonical.indicator.sound.AccountsService.policy
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<policyconfig>
+ <action id="com.canonical.indicator.sound.AccountsService.ModifyOwnUser">
+ <description>Set properties of own user</description>
+ <message>Authentication is required to set one's own indicator sound properties.</message>
+ <defaults>
+ <allow_any>yes</allow_any>
+ <allow_inactive>yes</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
+ </action>
+
+ <action id="com.canonical.indicator.sound.AccountsService.ModifyAnyUser">
+ <description>Set properties of any user</description>
+ <message>Authentication is required to set another user's indicator sound properties.</message>
+ <defaults>
+ <allow_any>no</allow_any>
+ <allow_inactive>no</allow_inactive>
+ <allow_active>no</allow_active>
+ </defaults>
+ </action>
+</policyconfig>
diff --git a/data/com.canonical.indicator.sound.AccountsService.xml b/data/com.canonical.indicator.sound.AccountsService.xml
new file mode 100644
index 0000000..fb7e96f
--- /dev/null
+++ b/data/com.canonical.indicator.sound.AccountsService.xml
@@ -0,0 +1,42 @@
+<node>
+ <interface name="com.canonical.indicator.sound.AccountsService">
+
+ <annotation name="org.freedesktop.Accounts.VendorExtension" value="true"/>
+
+ <annotation name="org.freedesktop.Accounts.Authentication.ChangeOwn"
+ value="com.canonical.indicator.sound.AccountsService.ModifyOwnUser"/>
+
+ <annotation name="org.freedesktop.Accounts.Authentication.ReadAny"
+ value="com.canonical.indicator.sound.AccountsService.ModifyAnyUser"/>
+
+ <annotation name="org.freedesktop.Accounts.Authentication.ChangeAny"
+ value="com.canonical.indicator.sound.AccountsService.ModifyAnyUser"/>
+
+ <property name="Timestamp" type="t" access="readwrite">
+ <annotation name="org.freedesktop.Accounts.DefaultValue" value="0"/>
+ </property>
+ <property name="PlayerName" type="s" access="readwrite">
+ <annotation name="org.freedesktop.Accounts.DefaultValue" value=""/>
+ </property>
+ <property name="PlayerIcon" type="v" access="readwrite"/>
+ <property name="Running" type="b" access="readwrite">
+ <annotation name="org.freedesktop.Accounts.DefaultValue" value="false"/>
+ </property>
+ <property name="State" type="s" access="readwrite">
+ <annotation name="org.freedesktop.Accounts.DefaultValue" value=""/>
+ </property>
+ <property name="Title" type="s" access="readwrite">
+ <annotation name="org.freedesktop.Accounts.DefaultValue" value=""/>
+ </property>
+ <property name="Artist" type="s" access="readwrite">
+ <annotation name="org.freedesktop.Accounts.DefaultValue" value=""/>
+ </property>
+ <property name="Album" type="s" access="readwrite">
+ <annotation name="org.freedesktop.Accounts.DefaultValue" value=""/>
+ </property>
+ <property name="ArtUrl" type="s" access="readwrite">
+ <annotation name="org.freedesktop.Accounts.DefaultValue" value=""/>
+ </property>
+
+ </interface>
+</node>
diff --git a/data/com.canonical.indicator.sound.gschema.xml b/data/com.canonical.indicator.sound.gschema.xml
index 102a1db..c34dfd6 100644
--- a/data/com.canonical.indicator.sound.gschema.xml
+++ b/data/com.canonical.indicator.sound.gschema.xml
@@ -48,5 +48,14 @@
Whether or not to show the sound indicator in the menu bar.
</description>
</key>
+ <key name="greeter-export" type="b">
+ <default>true</default>
+ <summary>Whether or not to export the currently playing song to the greeter.</summary>
+ <description>
+ If enabled the sound indicator will export the current player and
+ song to the greeter so that it can be shown if the user is selected
+ and the sound menu is shown.
+ </description>
+ </key>
</schema>
</schemalist>