// Allow enabling/disabling of Network Devices in arctica-greeter / LightDM polkit.addRule(function(action, subject) { if (subject.user !== 'lightdm') { return undefined; } if (action.id == "org.freedesktop.NetworkManager.enable-disable-network" || action.id == "org.freedesktop.NetworkManager.enable-disable-wifi" || action.id == "org.freedesktop.NetworkManager.enable-disable-wwan" || action.id == "org.freedesktop.NetworkManager.enable-disable-wimax") { return polkit.Result.YES; } }); // Allow Sleep and Wake in LightDM (for power management purposes) polkit.addRule(function(action, subject) { if (subject.user !== 'lightdm') { return undefined; } if (action.id == "org.freedesktop.NetworkManager.sleep-wake") { return polkit.Result.YES; } }); // Disable WiFi Sharing in LightDM polkit.addRule(function(action, subject) { if (subject.user !== 'lightdm') { return undefined; } if ((action.id == "org.freedesktop.NetworkManager.wifi.share.protected" || action.id == "org.freedesktop.NetworkManager.wifi.share.open")) { return polkit.Result.NO; } }); // Allow system settings modifications via arctica-greeter / LightDM // This leads to the greeter's nm-applet creating non-private WiFi connection profiles // by default, see: // https://gitlab.gnome.org/GNOME/network-manager-applet/-/commit/a0f95d83ff946ba854143414c97c4ed7af19b7fa // // As a result, all users can use WiFi connection profiles that were originally configured // in the greeter. Security implications are that all users with access to the greeter can // via WiFi credentials that other users configured previously via the greeter. polkit.addRule(function(action, subject) { if (subject.user !== 'lightdm') { return undefined; } if (action.id == "org.freedesktop.NetworkManager.settings.modify.system") { return polkit.Result.YES; } }); // Allow users to create new WiFi connection profiles via arctica-greeter / LightDM polkit.addRule(function(action, subject) { if (subject.user !== 'lightdm') return undefined; if (action.id == "org.freedesktop.NetworkManager.settings.modify.own" || action.id == "org.freedesktop.NetworkManager.settings.modify.hostname") { return polkit.Result.NO; } }); // Enable Controlling of Network Connections in LightDM polkit.addRule(function(action, subject) { if (subject.user !== 'lightdm') return undefined; if (action.id.match("org.freedesktop.NetworkManager.network-control")) && subject.active == true) { return polkit.Result.YES; } });