]> git.ipfire.org Git - network.git/commitdiff
networkd: Install some simple PolicyKit policy
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 30 Jan 2023 19:26:35 +0000 (19:26 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 30 Jan 2023 19:26:35 +0000 (19:26 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Makefile.am
configure.ac
src/networkd/org.ipfire.network1.policy [new file with mode: 0644]

index eeda5ba8fabd024c9699ab4ccfea4de7c0145c9d..4802de3cfdf97ede259969e5528b3a512d7c603d 100644 (file)
@@ -64,6 +64,7 @@ noinst_DATA =
 sbin_PROGRAMS =
 dist_dbuspolicy_DATA =
 dist_dbussystembus_DATA =
+dist_polkitpolicy_DATA =
 
 AM_CPPFLAGS = \
        $(OUR_CPPFLAGS) \
@@ -338,6 +339,9 @@ dist_dbuspolicy_DATA += \
 dist_dbussystembus_DATA += \
        src/networkd/org.ipfire.network1.service
 
+dist_polkitpolicy_DATA += \
+       src/networkd/org.ipfire.network1.policy
+
 # ------------------------------------------------------------------------------
 
 util_PROGRAMS = \
index 9560838b485f4b19fc387e20d95fc1357e42f0af..16f0724f108532a121f676c1c6d5c2d0b42a9453 100644 (file)
@@ -144,6 +144,18 @@ AC_ARG_WITH(
 )
 AC_SUBST(dbuspolicydir)
 
+AC_ARG_WITH(
+       [polkitpolicydir],
+       AS_HELP_STRING(
+               [--with-polkitpolicydir=arg],
+               [directory for PolicyKit policies]
+       ),
+       [polkitpolicydir="$withval"],
+       [PKG_CHECK_VAR([polkitpolicydir], [polkit], [actiondir])
+       polkitpolicydir="${datadir}/polkit-1/actions"]
+)
+AC_SUBST(polkitpolicydir)
+
 # ------------------------------------------------------------------------------
 AC_ARG_WITH([systemdsystemunitdir],
        AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
@@ -189,6 +201,7 @@ AC_MSG_RESULT([
 
        dbuspolicydir:        ${dbuspolicydir}
        dbussystembusdir:     ${dbussystembusdir}
+       polkitpolicydir:      ${polkitpolicydir}
        systemdsystemunitdir: $systemdsystemunitdir
        udevdir:              $udevdir
 
diff --git a/src/networkd/org.ipfire.network1.policy b/src/networkd/org.ipfire.network1.policy
new file mode 100644 (file)
index 0000000..46318f1
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?> <!--*-nxml-*-->
+<!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
+        "https://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
+
+<policyconfig>
+       <vendor>The IPFire Project</vendor>
+       <vendor_url>https://www.ipfire.org</vendor_url>
+
+       <action id="org.ipfire.network1.reload">
+               <description gettext-domain="systemd">Reload Network Settings</description>
+               <message gettext-domain="network">Authentication is required to reload network settings.</message>
+               <defaults>
+                       <allow_any>auth_admin</allow_any>
+                       <allow_inactive>auth_admin</allow_inactive>
+                       <allow_active>auth_admin_keep</allow_active>
+               </defaults>
+               <annotate key="org.freedesktop.policykit.owner">unix-user:network</annotate>
+       </action>
+</policyconfig>