Page MenuHomePhabricator

[SPIKE] Investigate what behaviour is currently exhibited on these special pages
Closed, ResolvedPublic

Description

Looking at the acceptance criteria on the parent task, we need to confirm the current behaviour when trying to access a page cross-wiki.

Test each given scenario and report:
A) what happens
B) if redirection is definitely required.

Timebox: 1 day

Event Timeline

Here are the special pages we have on our extension and the reason in my opnion why it shoud be redirected or not:

special pageNeeds redirect? why?
Special:CancelEventRegistrationNoThe action in this page requires the event ID and the user ID to cancel the user registration, since we store the central user ID we can allow the user to cancel the registration from any wiki
Special:DeleteEventRegistrationYesWe need to check not only if the user is the organizer of this event, but also if this user is still in the "Organizer user group", users can be removed from a user group, which in this case means that this user is not allowed to do any organizer action anymore, although this is an edge case, in case we are fine with this or if we implement a way to check if a user has the user right on the wiki of the event page we do not need the redirect here, if not we need it.
Special:EditEventRegistrationYesOn the edit form organizer can change the event page (which needs to be on the same wiki), and can also add other organizers and since users groups are local it needs to be done on the wiki where the event registration was enabled
Special:EventDetails (as organizer)YesEvent organizers can use the "message tab" to send emails to participants, the selected participants may not have An email associate with their account or even an account on a different wiki rather than the one this user register for the event (although we can use the global user ID to get the email address, if we could do that I think we do not need the redirect here)
Special:EventDetails (as participant or not logged user)NoJust a note: "View event page" button must always redirect the user to the event page
Special:RegisterForEventNoThe action in this page requires the event ID and the user ID to register/update the user registration, since we store the central user ID we can allow the user to register from any wiki.
Special:MyEventsNoThe user can list the list of event she/he created since we use the global user ID to get the list we don't need to redirect
Special:MyEvents (Kebab menu "Edit")yesThe "Edit" action on the kebab menu on this page should always redirect the organizer to the wiki where the event registration was created
Special:MyEvents (Kebab menu "View event page")yesThis not like a "real redirect" the event page must always open on its wiki
Special:MyEvents (Kebab menu "Close registration")YesWe need to check not only if the user is the organizer of this event, but also if this user is still in the "Organizer user group", users can be removed from a user group, which in this case means that this user is not allowed to do any organizer action anymore, although this is an edge case, in case we are fine with this or if we implement a way to check if a user has the user right on the wiki of the event page we do not need the redirect here, if not we need it.
Special:MyEvents (Kebab menu "Delete Registration")YesWe need to check not only if the user is the organizer of this event, but also if this user is still in the "Organizer user group", users can be removed from a user group, which in this case means that this user is not allowed to do any organizer action anymore, although this is an edge case, in case we are fine with this or if we implement a way to check if a user has the user right on the wiki of the event page we do not need the redirect here, if not we need it.

Also:

  • All "View event page" buttons must always open the event page no matter in which wiki (this is not the reason why it should redirect eventDetais, but just a note)
  • All "Edit" button must always redirect the organizer to Special:EditEventRegistration for the wiki of the event page (this is not the reason why it should redirect eventDetais, but just a note)

@Daimona, @MHorsey-WMF

Mostly looks good, although I think the best strategy might vary by page and "redirect" is not necessarily the best. A few notes:

  • For Special:EventDetails (as organizer), the globally-set email address can be used. Because it's a global preference, I'm not sure if we need to do anything special. Also, if we allow users to register from any wiki via Special:RegisterForEvent, the same issues with email addresses etc. are not automatically resolved by switching to the wiki where the event was created.
  • For Special:EventDetails (as participant or not logged user), Special:MyEvents (Kebab menu "Edit"), and Special:MyEvents (Kebab menu "View event page"), the word "redirect" might be misleading because it's really just a link (to another wiki). But it might be a good idea to clearly mark it as an external link in the interface.
  • As an example of adopting different strategies in different places, Special:MyEvents (Kebab menu "Close registration") and Special:MyEvents (Kebab menu "Delete Registration") could just fall back to being links (to Special:EditEventRegistration and Special:DeleteEventRegistration respectively), like in the no-JS version.

More generally, it seems to me that the main reasons why we'd need to redirect are 1) checking organizer right, 2) entering the event page (in the registration form). If this is correct, it might help us more easily identify other scenarios in the future.

Note: for organizers sending emails to participants, since the form is JS based, we can simply call the (foreign) API on the event wiki, without redirecting.

@ifried IIRC, you said you were going to read T344441#9365660 and provide feedback, hence moving to product sign-off. Please correct me if I'm wrong!

Below, I have added my perspective. on the original breakdown of whether or not an action requires a redirect, as outlined by @cmelo:

  • Special:CancelEventRegistration - agree with above
  • Special:DeleteEventRegistration - agree with above
  • Special:EditEventRegistration - agree with above
  • Special:EventDetails (as organizer) - no redirect, which we have discussed as technically possible in backlog grooming today (and is explained in the note above from Feb 2) because it is a better user experience for organizers to be able to see details of all of their events no matter the wiki, just like how they can see a list of all of their events in Special:MyEvents
  • Special:EventDetails (as participant or not logged user) - agree with above, and good to keep same experience for page that organizers have
  • Special:RegisterForEvent - we have learned that we would need a redirect here, so we can prevent people from registering for an event who are blocked on the wiki of the event
  • Special:MyEvents - agree with above
  • Special:MyEvents (Kebab menu "Edit") - agree with above
  • Special:MyEvents (Kebab menu "View event page") - agree with above
  • Special:MyEvents (Kebab menu "Close registration") - agree with above
  • Special:MyEvents (Kebab menu "Delete Registration") - agree with above

The decisions have been made on which special pages do and do not need redirect, and the next steps for work will be handled in T357793, so I'm marking this ticket as Done.