diff --git a/libmalcontent/manager.c b/libmalcontent/manager.c index 1a69ba2..4a02aa8 100644 --- a/libmalcontent/manager.c +++ b/libmalcontent/manager.c @@ -280,12 +280,20 @@ bus_error_to_manager_error (const GError *bus_error, if (g_error_matches (bus_error, G_DBUS_ERROR, G_DBUS_ERROR_ACCESS_DENIED) || bus_remote_error_matches (bus_error, "org.freedesktop.Accounts.Error.PermissionDenied")) return g_error_new (MCT_MANAGER_ERROR, MCT_MANAGER_ERROR_PERMISSION_DENIED, - _("Not allowed to query app filter data for user %u"), + _("Not allowed to query parental controls data for user %u"), (guint) user_id); else if (g_error_matches (bus_error, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD) || bus_remote_error_matches (bus_error, "org.freedesktop.Accounts.Error.Failed")) return g_error_new (MCT_MANAGER_ERROR, MCT_MANAGER_ERROR_INVALID_USER, _("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 return g_error_copy (bus_error); }