[gnome-initial-setup/wip/pwithnall/misc-fixes: 57/70] Allow gnome-initial-setup user to run eos-write-location




commit fb16bcbd4cbbe7b167e1824f5a0472dbc0c58f03
Author: Philip Chimento <philip endlessm com>
Date:   Fri Sep 13 16:34:09 2019 -0700

    Allow gnome-initial-setup user to run eos-write-location
    
    This is necessary in order for the Site page to be able to save its data
    to /etc/metrics/location.conf.
    
    Note: In the 3.36 rebase, this was changed to use @libexecdir@ instead
    of hard-coding /usr/lib/gnome-initial-setup, since on the packaging
    branch we're dropping the commit to override Debian's libexecdir.
    -- Matthew Leeds
    
    (Rebase 3.38: Fix minor rebase conflicts.)
    
    https://phabricator.endlessm.com/T27787

 ...itial-setup.rules => 20-gnome-initial-setup.rules.in} |  5 +++++
 data/meson.build                                         | 16 +++++++++++-----
 2 files changed, 16 insertions(+), 5 deletions(-)
---
diff --git a/data/20-gnome-initial-setup.rules b/data/20-gnome-initial-setup.rules.in
similarity index 87%
rename from data/20-gnome-initial-setup.rules
rename to data/20-gnome-initial-setup.rules.in
index 135b26e8..d0ef8aad 100644
--- a/data/20-gnome-initial-setup.rules
+++ b/data/20-gnome-initial-setup.rules.in
@@ -19,6 +19,11 @@ polkit.addRule(function(action, subject) {
                          action.id.indexOf('org.freedesktop.realmd.') === 0 ||
                          action.id.indexOf('com.endlessm.ParentalControls.') === 0);
 
+    if (action.id === 'org.freedesktop.policykit.exec' &&
+            action.lookup('program') === '@libexecdir@/eos-write-location') {
+        actionMatches = true;
+    }
+
     if (actionMatches) {
         if (subject.local)
             return 'yes';
diff --git a/data/meson.build b/data/meson.build
index 8f73b8b3..9d638782 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -38,10 +38,10 @@ i18n.merge_file(
     type: 'desktop'
 )
 
-if enable_systemd
-    unitconf = configuration_data()
-    unitconf.set('libexecdir', libexec_dir)
+data_conf = configuration_data()
+data_conf.set('libexecdir', libexec_dir)
 
+if enable_systemd
     unit_files = {
         'gnome-initial-setup-first-login.service' : [ 'gnome-session.target.wants/' ],
         'gnome-initial-setup-copy-worker.service' : [ 'gnome-session.target.wants/' ],
@@ -52,7 +52,7 @@ if enable_systemd
         configure_file(
             input: unit + '.in',
             output: unit,
-            configuration: unitconf,
+            configuration: data_conf,
             install_dir: systemd_userunitdir
         )
 
@@ -70,7 +70,13 @@ endif
 
 
 rules_dir = join_paths(data_dir, 'polkit-1', 'rules.d')
-install_data('20-gnome-initial-setup.rules', install_dir: rules_dir)
+configure_file(
+    input: '20-gnome-initial-setup.rules.in',
+    output: '20-gnome-initial-setup.rules',
+    install: true,
+    install_dir: rules_dir,
+    configuration: data_conf,
+)
 
 session_dir = join_paths(data_dir, 'gnome-session', 'sessions')
 install_data('gnome-initial-setup.session', install_dir: session_dir)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]