summarylogtreecommitdiffstats
path: root/20-no-power-privileges.rules
blob: bad5695316f683ca01193471cc4c4fa55352eff6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// This script is modified from a similar script written by MindlessLeadership
// on Reddit
// See https://www.reddit.com/r/gnome/comments/gya4a5/comment/ftcu44n

// Prevent users from touching system power state unless they are in the
// `power` group

polkit.addRule(function(action, subject) {
    if (action.id === "org.freedesktop.login1.suspend" ||
        action.id === "org.freedesktop.login1.suspend-multiple-sessions" ||
        action.id === "org.freedesktop.login1.hibernate" ||
        action.id === "org.freedesktop.login1.hibernate-multiple-sessions" ||
        action.id === "org.freedesktop.login1.power-off" ||
        action.id === "org.freedesktop.login1.power-off-multiple-sessions" ||
        action.id === "org.freedesktop.login1.reboot" ||
        action.id === "org.freedesktop.login1.reboot-multiple-sessions") {
        if (subject.isInGroup("power")) {
            return polkit.Result.YES;
        } else {
            return polkit.Result.AUTH_ADMIN;
        }
    }
});