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

.
chore(i18n): refresh the source references the ban checks moved
.
refactor(forum): ask one place whether the visitor is banned from the forum
The check of the forum ban and of the full one was written out in seven places, two of them pointing at each other to stay in step. ForumAccess holds it, the way LibraryAccess and DownloadsAccess do for their sections.
.
fix(profile): keep a moderator from handing out the ban they are under
A moderator banned from the forum still gave forum bans from the profiles of its members, and so went on moderating the forum the ban closed to them. BanAccess refuses a kind of ban the visitor is under, and now holds every rule of the ban screens: the hierarchy BanHierarchy carried, and whether the visitor may lift a ban or delete its record, which the guards of BanController and the buttons of the history asked separately.

Clearing the history is refused with the same message as deleting a ban: "can be cleared by Supervisor only" was wrong for an account the visitor does not stand above, and for a role the permission was granted to.
.
fix(auth): let the ban of a section take the permissions of that section
A ban of a section took nothing away through the permissions, so whatever a section guards by a permission alone stayed open under it: a member banned from the comments still uploaded pictures for news comments, and a moderator banned from the guestbook, the library or the comments went on moderating them. BanVoter now takes away the permissions of the section a ban is for, above what a guest may do, as it does with all of them under the full ban.
.
fix(contacts): let a banned member write to the administration
The contact form refused a member banned from the site or from the guestbook, which left them no way to appeal the ban, while a guest could still write there after signing out.
.
fix: let a ban of one section leave the others alone
The comments, the photo albums, the votes of karma and the editing of one's own profile closed under a ban of any kind, so a ban of the private messages took away the comments and the albums too. Each of them now asks for the kinds that are about it: the comments for the full ban and the ban of the comments, the library adding its own, everything else for the full ban alone.
.
feat(profile): show in the history that the amnesty ended a ban
The amnesty marks the bans it ends in ban_raz, and nothing ever showed the mark: in the history such a ban looked like one that had simply run out.
.
refactor(profile): drop the forum post a ban form never received
The form of a ban carried the id of a forum post it was given for, read from ?fid=, but nothing links to the form with one and the id was never stored. Only an empty reason looked at it, so a ban without a reason is now always recorded as given for none.
.
fix(profile): keep the bans in force when the history is cleared
Clearing the history of an account deleted every ban it had, the ones still in force among them, which lifted them without a trace, and left their karma penalties behind. It now deletes the bans that have run out or were lifted, each the way deleting it alone does, penalty included.
.
fix(profile): take back the karma of a deleted ban only when it cost some
Deleting a ban always took twice the current karma points off the minuses of the account. A ban given while karma was off had cost nothing, so the deletion took away what other members had voted, and a change of the points since made the sum wrong. The penalty the ban recorded is deleted now, if there is one, and by the points it holds.