federated: Log why invitations aren't offered

With -vvv, say which check stopped people from being invited to an
event: a read-only calendar, a calendar that isn't on a Core's
Nextcloud, or an event organized by someone else.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-29 08:59:22 -06:00
co-authored by Claude Opus 5.5
parent aac336c817
commit dd1c1cd014
2 changed files with 24 additions and 3 deletions
+21 -3
View File
@@ -221,11 +221,17 @@ gcal_federated_core_get_organizer (GcalCalendar *calendar,
g_return_val_if_fail (GCAL_IS_CALENDAR (calendar), FALSE); g_return_val_if_fail (GCAL_IS_CALENDAR (calendar), FALSE);
if (gcal_calendar_is_read_only (calendar)) if (gcal_calendar_is_read_only (calendar))
return FALSE; {
g_debug ("No invitations on %s: the calendar is read-only", gcal_calendar_get_name (calendar));
return FALSE;
}
source = gcal_calendar_get_source (calendar); source = gcal_calendar_get_source (calendar);
if (!source || !e_source_has_extension (source, E_SOURCE_EXTENSION_WEBDAV_BACKEND)) if (!source || !e_source_has_extension (source, E_SOURCE_EXTENSION_WEBDAV_BACKEND))
return FALSE; {
g_debug ("No invitations on %s: not a CalDAV calendar", gcal_calendar_get_name (calendar));
return FALSE;
}
webdav = e_source_get_extension (source, E_SOURCE_EXTENSION_WEBDAV_BACKEND); webdav = e_source_get_extension (source, E_SOURCE_EXTENSION_WEBDAV_BACKEND);
uri = e_source_webdav_dup_uri (webdav); uri = e_source_webdav_dup_uri (webdav);
@@ -234,7 +240,13 @@ gcal_federated_core_get_organizer (GcalCalendar *calendar,
config_dir = g_build_filename (g_get_home_dir (), ".config", "coredesktop", NULL); config_dir = g_build_filename (g_get_home_dir (), ".config", "coredesktop", NULL);
if (!uri || !gcal_federated_core_find_core (config_dir, g_uri_get_host (uri), &core_email, &core_name)) if (!uri || !gcal_federated_core_find_core (config_dir, g_uri_get_host (uri), &core_email, &core_name))
return FALSE; {
g_debug ("No invitations on %s: %s is not the Nextcloud of a Core in %s",
gcal_calendar_get_name (calendar),
uri ? g_uri_get_host (uri) : "(no address)",
config_dir);
return FALSE;
}
/* /*
* Nextcloud only sends invitations when the organizer is one of the * Nextcloud only sends invitations when the organizer is one of the
@@ -243,6 +255,12 @@ gcal_federated_core_get_organizer (GcalCalendar *calendar,
*/ */
server_email = e_source_webdav_dup_email_address (webdav); server_email = e_source_webdav_dup_email_address (webdav);
g_debug ("Invitations on %s are organized by %s (server: %s, Core: %s)",
gcal_calendar_get_name (calendar),
(server_email && *server_email) ? server_email : core_email,
server_email ? server_email : "(none)",
core_email);
if (out_email) if (out_email)
*out_email = (server_email && *server_email) ? g_steal_pointer (&server_email) : g_steal_pointer (&core_email); *out_email = (server_email && *server_email) ? g_steal_pointer (&server_email) : g_steal_pointer (&core_email);
if (out_name) if (out_name)
@@ -159,6 +159,9 @@ update_invite_state (GcalEventEditorDialog *self)
organizer_email = gcal_util_get_email_from_mailto_uri (gcal_event_organizer_get_uri (organizer)); organizer_email = gcal_util_get_email_from_mailto_uri (gcal_event_organizer_get_uri (organizer));
can_invite = !organizer_email || g_ascii_strcasecmp (organizer_email, email) == 0; can_invite = !organizer_email || g_ascii_strcasecmp (organizer_email, email) == 0;
if (!can_invite)
g_debug ("No invitations: the event is organized by %s, not %s", organizer_email, email);
} }
gcal_attendees_section_set_inviter (GCAL_ATTENDEES_SECTION (self->attendees_section), gcal_attendees_section_set_inviter (GCAL_ATTENDEES_SECTION (self->attendees_section),