summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/meson.build10
-rw-r--r--data/org.gnome.gdm.rules.in8
2 files changed, 18 insertions, 0 deletions
diff --git a/data/meson.build b/data/meson.build
index 7c5222ea..20d39a36 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -157,6 +157,16 @@ gdm_rules = configure_file(
install_dir: udev_dir,
)
+# Polkit rules
+polkit_rules = configure_file(
+ input: 'org.gnome.gdm.rules.in',
+ output: '@BASENAME@',
+ configuration: {
+ 'GDM_USERNAME': get_option('user'),
+ },
+ install_dir: get_option('datadir') / 'polkit-1' / 'rules.d',
+)
+
# DBus service files
service_config = configuration_data()
service_config.set('sbindir', gdm_prefix / get_option('sbindir'))
diff --git a/data/org.gnome.gdm.rules.in b/data/org.gnome.gdm.rules.in
new file mode 100644
index 00000000..09544f11
--- /dev/null
+++ b/data/org.gnome.gdm.rules.in
@@ -0,0 +1,8 @@
+polkit.addRule(function(action, subject) {
+ if (action.id == "org.freedesktop.NetworkManager.network-control" &&
+ subject.user == "@GDM_USERNAME@") {
+ return polkit.Result.NO;
+ }
+
+ return polkit.Result.NOT_HANDLED;
+});