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

.
fix(forum): forget the paths of the sections between requests
ForumSectionPathService kept the paths it had worked out for the life of the process. The functional suite boots the container once, and on SQLite a rolled back section hands its id to the next one, so a test could read the path of a section of another test: VisitorPlacesTest failed whenever the order put it after one. The service is reset before every request now, like the other request-scoped services.
.
test(community): leave a grant that ran out out of the administration
.
test(forum): offer a member whose role ran out as a curator again
.
test(admin): leave a grant that ran out out of the staff of the list and of the cleanup
.
test(admin): close the panel to a role whose grant ran out
.
test(auth): let the fake role repository honour the end date of a grant
The fake kept a grant forever, so a broken filter could not fail the tests built on it. It now reads the end date as EloquentRoleRepository does, and the permissions and the level of an account are checked to drop a role whose grant ran out.
.
test(auth): cover the end date of a role grant in the role repository
Every way of reading the grants leaves out one that ran out, and the moment of the end is already past it.
.
feat(admin): make the roles of an account a tab of its pages
The roles are a table of switches with the level and the date a grant runs out; a role above the visitor's own is locked, a grant that ran out is marked. The tab is offered to whoever manages the roles. The edit and the roles are tabs now, so the head of the account drops their buttons.
.
feat(admin): rebuild the form of a role and switch its permissions group by group
The form is two cards, the role and its permissions, saved from the head of the page as well as from its foot. A built-in role shows its name and level as facts. The permissions are switches in a grid; role-permissions.js ticks a whole group from its heading and keeps the counters of the groups and of the role in step.
.
test(admin): cover who may open, change and delete a role