История коммитов

.
fix(admin): remove the roles, identities, sessions and reset tokens of a deleted account
The authentication tables have no foreign keys, so UserClean::removeUser() deletes the rows of user_roles, user_identities, auth_sessions and password_reset_tokens by hand. The audit log in auth_events is kept.
.
test: change a setting and post a form through the harness
FunctionalTestCase::withConfig() changes settings for one test and puts them back however it ends, and postForm() posts a form as a signed-in visitor. They replace the copies of both across the functional tests.
.
test(admin): cover the filters, the sorting and the numbers of the list of users
The search by address, the role, activity and registration filters, the sorting, a page beyond the end, the hidden e-mail and the origin in the rows, and the numbers above the list agreeing with the lists they open.
.
fix(admin): keep the staff out of the cleanup of inactive users
The cleanup removed every account registered half a year ago, not seen for five months and with next to nothing written, administrators and moderators included. An account holding a role in force is no longer one of them.
.
test(admin): cover the roles page of an account
.
test(admin): cover the rules of editing an account and of moderating registrations
Editing: a taken e-mail, the notes without the permission to read them, an editor banned from the site, a short password, the password of somebody else without the permission, the settings of a peer. Registrations: approving all, removing by address and all, and access to the panel being enough to moderate them.
.
fix(admin): close the deletion page of an account to the page of the account
It closed to the profile of the site, which belongs to a module that may be switched off. The page also gets the breadcrumbs of the other pages of the account.
.
chore(i18n): refresh the source references of the profile view
.
fix(auth): refuse to browse as an account that cannot sign in
An account not approved yet, or one that has to confirm its e-mail first, would be treated by the site as a guest, so browsing as it showed a site nobody sees. The refusal names the reason. RegistrationSettings tells whether the e-mail has to be confirmed and whether an account still has to confirm it.
.
feat(admin): confirm the e-mail of an account from the panel
When the site requires the confirmation, the list of users gets an "E-mail not confirmed" tab and a state of its own, and such an account is offered "Confirm the e-mail" in the list and on its page (POST /admin/registrations/confirm-email). The account signs in at once and is no longer removed by the cleanup. Browsing as an account that cannot sign in is not offered.