manager: Return MCT_MANAGER_ERROR_DISABLED if no accountsservice
In distributions that package shared libraries and daemons separately, it's possible to have the shared library (because it's required to run something like Flatpak) but not the accountsservice daemon or its malcontent extension (because the administrator of this particular installation has no interest in parental controls, and their choice of desktop environment is such that nothing else depends on accountsservice either). This minimizes the memory and disk space cost of enabling the libmalcontent feature in Flatpak for those who do not need it, while keeping it available for those that do. Treat this the same as if accountsservice is available but the malcontent extension is not: fail open, by returning MCT_MANAGER_ERROR_DISABLED. Resolves: https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/27 Bug-Debian: https://bugs.debian.org/972145 Signed-off-by: Simon McVittie <smcv@debian.org>
This commit is contained in:
parent
5c0a7bf056
commit
1abce3eb91
|
@ -286,6 +286,14 @@ bus_error_to_manager_error (const GError *bus_error,
|
||||||
bus_remote_error_matches (bus_error, "org.freedesktop.Accounts.Error.Failed"))
|
bus_remote_error_matches (bus_error, "org.freedesktop.Accounts.Error.Failed"))
|
||||||
return g_error_new (MCT_MANAGER_ERROR, MCT_MANAGER_ERROR_INVALID_USER,
|
return g_error_new (MCT_MANAGER_ERROR, MCT_MANAGER_ERROR_INVALID_USER,
|
||||||
_("User %u does not exist"), (guint) user_id);
|
_("User %u does not exist"), (guint) user_id);
|
||||||
|
else if (g_error_matches (bus_error, G_DBUS_ERROR, G_DBUS_ERROR_SERVICE_UNKNOWN) ||
|
||||||
|
g_error_matches (bus_error, G_DBUS_ERROR, G_DBUS_ERROR_NAME_HAS_NO_OWNER))
|
||||||
|
/* If accountsservice is not available on the system bus, then the
|
||||||
|
* com.endlessm.ParentalControls.AppFilter extension interface
|
||||||
|
* certainly can't be available. */
|
||||||
|
return g_error_new_literal (MCT_MANAGER_ERROR,
|
||||||
|
MCT_MANAGER_ERROR_DISABLED,
|
||||||
|
_("System accounts service not available"));
|
||||||
else
|
else
|
||||||
return g_error_copy (bus_error);
|
return g_error_copy (bus_error);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue