misc: Add missing check on reply from systemd's CanSuspend D-Bus method

According to systemd logind's documentation, the CanSuspend() method
"returns 'na' in case "the operation is not available because hardware,
kernel or drivers do not support it", while "'no' is returned if the
operation is available but the user is not allowed to execute it".

See http://www.freedesktop.org/wiki/Software/systemd/logind

Thus, we need to return true here when the reply for the CanSuspend
method is neither 'no' nor 'na', or we would providing false positives
in cases where suspension is simply unsupported.

https://bugzilla.gnome.org/show_bug.cgi?id=748338
This commit is contained in:
Mario Sanchez Prada 2015-04-22 23:00:16 +01:00
parent 9917f05be8
commit be78f0f36a

View File

@ -134,7 +134,7 @@ const LoginManagerSystemd = new Lang.Class({
if (error)
asyncCallback(false);
else
asyncCallback(result[0] != 'no');
asyncCallback(result[0] != 'no' && result[0] != 'na');
});
},