コード例 #1
0
    def do_authenticate(self):
        if TweakSettings.get_power_user():
            self.__class__.result = 1
            self.emit("changed", 1)
            return
        policykit = self.session_bus.get_object("org.freedesktop.PolicyKit.AuthenticationAgent", "/")
        xid = self.widget.get_toplevel().window.xid

        if self.__class__.result:
            self.emit("changed", 1)
            return

        try:
            granted = policykit.ObtainAuthorization(
                "com.ubuntu-tweak.daemon", dbus.UInt32(xid), dbus.UInt32(os.getpid())
            )
        except dbus.exceptions.DBusException:
            self.emit("changed", 0)
        else:
            self.__class__.result = granted

            if self.__class__.result == 1:
                self.emit("changed", 1)
            else:
                self.emit("changed", 0)