refactor(admin): move the user lists to Twig
The list of users, the staff, the ban panel, the pending registrations and the
IP search become @admin templates, and the shared row of a visitor becomes
@admin/components/user-row.twig; the five controllers return ViewResponse.
- the name of a visitor and the labels of their action buttons were printed
unescaped, so a name carrying markup reached the page as markup
- whether the address and the user agent may be shown is decided by
AdminUserRowMapper, and the row it builds always carries every key the
template reads
- the PHP closure building the moderation forms is now a macro
IP search become @admin templates, and the shared row of a visitor becomes
@admin/components/user-row.twig; the five controllers return ViewResponse.
- the name of a visitor and the labels of their action buttons were printed
unescaped, so a name carrying markup reached the page as markup
- whether the address and the user agent may be shown is decided by
AdminUserRowMapper, and the row it builds always carries every key the
template reads
- the PHP closure building the moderation forms is now a macro