diff options
author | Lennart Poettering <lennart@poettering.net> | 2012-09-18 01:16:23 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2012-09-18 01:16:23 +0200 |
commit | b14eda963c698aa89fac1d91501d572ec644cc2f (patch) | |
tree | cb2eb4a6ded34b0037018ae89886de41c69ce10b | |
parent | 178cc7700c23ac088cd7190d7854282075028d91 (diff) |
logind: split up inhibit acquire policy
-rw-r--r-- | TODO | 2 | ||||
-rw-r--r-- | src/core/socket.c | 3 | ||||
-rw-r--r-- | src/login/logind-dbus.c | 7 | ||||
-rw-r--r-- | src/login/org.freedesktop.login1.policy.in | 52 |
4 files changed, 52 insertions, 12 deletions
@@ -24,8 +24,6 @@ Bugfixes: F18: -* refuse automount triggers when automount is queued for stop, much like we refuse socket triggers when sockets are queued for stop - * logind: different policy actions for idle, suspend, shutdown blockers: allow idle blockers by default, don't allow suspend blockers by default * selinux: merge systemd selinux access controls (dwalsh) diff --git a/src/core/socket.c b/src/core/socket.c index f975a4333d..f346030f0c 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -1850,7 +1850,8 @@ static void socket_fd_event(Unit *u, int fd, uint32_t events, Watch *w) { if (w->socket_accept) { for (;;) { - if ((cfd = accept4(fd, NULL, NULL, SOCK_NONBLOCK)) < 0) { + cfd = accept4(fd, NULL, NULL, SOCK_NONBLOCK); + if (cfd < 0) { if (errno == EINTR) continue; diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c index af62d87821..4f180b013d 100644 --- a/src/login/logind-dbus.c +++ b/src/login/logind-dbus.c @@ -723,9 +723,10 @@ static int bus_manager_inhibit(Manager *m, DBusConnection *connection, DBusMessa } r = verify_polkit(connection, message, - m == INHIBIT_BLOCK ? - "org.freedesktop.login1.inhibit-block" : - "org.freedesktop.login1.inhibit-delay", false, NULL, error); + w == INHIBIT_SHUTDOWN ? (mm == INHIBIT_BLOCK ? "org.freedesktop.login1.inhibit-block-shutdown" : "org.freedesktop.login1.inhibit-delay-shutdown") : + w == INHIBIT_SLEEP ? (mm == INHIBIT_BLOCK ? "org.freedesktop.login1.inhibit-block-sleep" : "org.freedesktop.login1.inhibit-delay-sleep") : + (mm == INHIBIT_BLOCK ? "org.freedesktop.login1.inhibit-block-idle" : "org.freedesktop.login1.inhibit-delay-idle"), + false, NULL, error); if (r < 0) goto fail; diff --git a/src/login/org.freedesktop.login1.policy.in b/src/login/org.freedesktop.login1.policy.in index 92c0a4d324..970adbeff2 100644 --- a/src/login/org.freedesktop.login1.policy.in +++ b/src/login/org.freedesktop.login1.policy.in @@ -16,9 +16,9 @@ <vendor>The systemd Project</vendor> <vendor_url>http://www.freedesktop.org/wiki/Software/systemd</vendor_url> - <action id="org.freedesktop.login1.inhibit-block"> - <_description>Allow applications to inhibit system shutdown and suspend</_description> - <_message>Authentication is required to allow an application to inhibit system shutdown or suspend.</_message> + <action id="org.freedesktop.login1.inhibit-block-shutdown"> + <_description>Allow applications to inhibit system shutdown</_description> + <_message>Authentication is required to allow an application to inhibit system shutdown.</_message> <defaults> <allow_any>auth_admin_keep</allow_any> <allow_inactive>yes</allow_inactive> @@ -26,9 +26,49 @@ </defaults> </action> - <action id="org.freedesktop.login1.inhibit-delay"> - <_description>Allow applications to delay system shutdown and suspend</_description> - <_message>Authentication is required to allow an application to delay system shutdown or suspend.</_message> + <action id="org.freedesktop.login1.inhibit-block-sleep"> + <_description>Allow applications to inhibit system sleep</_description> + <_message>Authentication is required to allow an application to inhibit system sleep.</_message> + <defaults> + <allow_any>auth_admin_keep</allow_any> + <allow_inactive>yes</allow_inactive> + <allow_active>yes</allow_active> + </defaults> + </action> + + <action id="org.freedesktop.login1.inhibit-block-idle"> + <_description>Allow applications to inhibit automatic system suspend</_description> + <_message>Authentication is required to allow an application to inhibit automatic system suspend.</_message> + <defaults> + <allow_any>yes</allow_any> + <allow_inactive>yes</allow_inactive> + <allow_active>yes</allow_active> + </defaults> + </action> + + <action id="org.freedesktop.login1.inhibit-delay-shutdown"> + <_description>Allow applications to delay system shutdown</_description> + <_message>Authentication is required to allow an application to delay system shutdown.</_message> + <defaults> + <allow_any>yes</allow_any> + <allow_inactive>yes</allow_inactive> + <allow_active>yes</allow_active> + </defaults> + </action> + + <action id="org.freedesktop.login1.inhibit-delay-sleep"> + <_description>Allow applications to delay system sleep</_description> + <_message>Authentication is required to allow an application to delay system sleep.</_message> + <defaults> + <allow_any>yes</allow_any> + <allow_inactive>yes</allow_inactive> + <allow_active>yes</allow_active> + </defaults> + </action> + + <action id="org.freedesktop.login1.inhibit-delay-idle"> + <_description>Allow applications to delay automatic system suspend</_description> + <_message>Authentication is required to allow an application to delay automatic system suspend.</_message> <defaults> <allow_any>yes</allow_any> <allow_inactive>yes</allow_inactive> |