In T405575: Share logic between Special:UserRights and Special:GlobalGroupMembership we want to unify Special:UserRights and Special:GlobalGroupMembership as much as possible. We can do so by introducing a new base abstract class, which will store the common logic. This class will be built incrementally, starting from the UI generation, which is conceptually almost the same on both special pages.
Acceptance criteria
- The code for generating forms now lives in the base class
- There are no functional changes to either of the special pages
Note: This task doesn't cover rewriting UI to a modern component library. It will be done later in T117884.