net-wireless/blueman: include polkit rules for network setup, #584300
authorMichał Górny <mgorny@gentoo.org>
Sat, 4 Jun 2016 18:02:04 +0000 (20:02 +0200)
committerMichał Górny <mgorny@gentoo.org>
Sat, 4 Jun 2016 18:11:15 +0000 (20:11 +0200)
Add a set of polkit rules that allow active users belonging to
the plugdev group to perform network setup actions via blueman. This
resembles the rules used by NetworkManager.

Bug: https://bugs.gentoo.org/show_bug.cgi?id=584300

net-wireless/blueman/blueman-9999.ebuild
net-wireless/blueman/files/01-org.blueman.rules [new file with mode: 0644]

index 011f2ef1c211482b82e151ea8e4bfb31fcf6cd1a..69c82c72397e059b333b5167fc03678a9ce2e2ce 100644 (file)
@@ -97,6 +97,12 @@ src_configure() {
 src_install() {
        default
 
+       if use policykit; then
+               # Allow users in plugdev group to modify connections
+               insinto /usr/share/polkit-1/rules.d
+               doins "${FILESDIR}/01-org.blueman.rules"
+       fi
+
        python_fix_shebang "${D}"
        rm "${D}"/$(python_get_sitedir)/*.la || die
 }
diff --git a/net-wireless/blueman/files/01-org.blueman.rules b/net-wireless/blueman/files/01-org.blueman.rules
new file mode 100644 (file)
index 0000000..2f1a2bd
--- /dev/null
@@ -0,0 +1,11 @@
+// Let users in plugdev group modify network connections using blueman
+polkit.addRule(function(action, subject) {
+    if ((action.id == "org.blueman.network.setup" ||
+         action.id == "org.blueman.dhcp.client" ||
+         action.id == "org.blueman.rfkill.setstate" ||
+         action.id == "org.blueman.pppd.pppconnect") &&
+        subject.isInGroup("plugdev") && subject.active) {
+
+        return polkit.Result.YES;
+    }
+});