Calendar Import: calendar uploader is not anymore an alien
Summary:
If one of *your* verified email addresses is invited in *your* ICS Calendar,
you are now imported as yourself, instead of being a "Private User".
For example, if you own a Google Calendar, and if you import that in
Phorge, and if your email is mentioned in the Invitees:
- you are not shown anymore as "Private User 1" but as yourself
- the "Busy" or "Available" badge is shown from your Profile
(instead of nothing), respecting the "Time Transparency"
RFC 5545 section 3.8.2.7 from your ICS event
https://icalendar.org/iCalendar-RFC-5545/3-8-2-7-time-transparency.html
- the widget "Profile Calendar" in your user page shows your imported
Event, instead of nothing. No "Clear Sailing ahead" anymore.
As usual - this happens only if the event happens today, tomorrow,
or the day after tomorrow.
Example situation:
User "test" imports a Calendar. An Event has two invited emails:
- 1 email is verified and belongs to the very same user "test"
- 1 email belongs to another user
| Before | After |
|-----------|-----------|
| {F324892} | {F324893} |
See that the calendar importer named "test" is not an alien anymore.
Allowing to match yourself makes sense because you trust your imported
Calendar file, and we trust your verified email addresses.
WE DO NOT MATCH OTHER USERS BUT THE CALENDAR OWNER.
Matching other users must involve serious privacy measures,
coherent with the rest of Phorge.
Closes T15564
Closes T15941
Test Plan:
Download this example ICS file:
{F2599125}
Replace the email `boz+asdlol@reyboz.it` with one of your verified email of your Phorge account.
Import the event in Phorge using {nav Calendar > Imports > Import Events > Import .ics File}
/calendar/import/edit/?importType=icsuri
Two imported events are created successfully:
- In the event "Very busy opaque" (25 December 2024):
- you are finally shown as "Busy"
- there is also another "Private user"
- In the other event "Very available transparent" (25 December 2024)
- you are finall shown as "Available"
- there is also another "Private user"
Then nuke these example events by visiting the import and "Delete Imported Events".
---
Try again from scratch in these alternatives:
- if you import the ICS file as-is:
- you get two "Private User" in all events (since none of the invitees matches one of your verified emails)
- if you import the ICS file, setting one of your un-verified emails:
- you get two "Private User" in all events (since none of the invitees matches one of your verified emails)
- if you import the ICS file, setting a verified email of *another* user:
- you get two "Private User" in all events (since none of the invitees matches one of your verified emails)
As additional test, from the file you can also manually set these events to today, tomorrow, or the day after tomorrow; so you can test the user profile's calendar widget, and see that finally it does not show "Clear sailing" anymore, but it shows your calendar invitations (if the ICS file contains one of your verified email - as already said):
{F2599178}
Reviewers: O1 Blessed Committers, aklapper
Reviewed By: O1 Blessed Committers, aklapper
Subscribers: aklapper, avivey, speck, tobiaswiese, Matthew, Cigaryno
Maniphest Tasks: T15564, T15941
Differential Revision: https://we.phorge.it/D25363