Repository navigation
Maintenance pass: form tokens, the approve page, labels and conventions - #16
Merged
Merged
Conversation
- composer.json description matches the GitHub description and the README's first line. - The minimum-version message uses the KB_NOT_ENABLEABLE key. - lint.yml runs php -l and composer validate on PHP 8.1 and 8.5. - .editorconfig is left out of release archives. - README: Tests and Lint badges, a Features list (taking in the loose author-transfer and status paragraphs), Requirements and Contributing; the outdated Automated testing section is gone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- ACP category management read the category id as a string and put it into SQL, and ran move up/down and sync from plain links and add, edit and delete without a form token, so a forged link or page could make an administrator run them. The id is now an integer, the links carry a link hash, and the forms are checked. - Moving an article in the ACP and saving Knowledge Base permissions now check the form token. - The approve page showed unapproved articles and pending revisions to any registered member; only moderators and the article's team may open it now. - The orphan/extra/lost attachment modes in attachments_info.php ask for a_manage_kb like the installed modules, the minimum-version message uses positional placeholders, and an unused variable is gone. Adds CSRF tests for the article move and permission saves, and refusal checks to tests/browser/kb_page_sweep.js. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
07 shows the new introduction setting; 17 and 18 show the introduction on the index and its ACP settings. docs/update/2026-11-12/ holds the two shots for the update post. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
axe-core flagged controls with no accessible name: the category dropdown on the index and category pages, the copy-link boxes on an article, the article text box and custom-field dropdowns on the posting form, the per-row team and action menus in the queue, and in the ACP the category picker, the new-category box and the file-size unit menu. Each is now labelled from an existing language string (the queue's action menu from the new KB_QUEUE_ACTION). The Teams block on the ACP configuration page had text and checkboxes straight inside <dl>; it now has a paragraph and a proper term. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A maintenance pass over the extension: organization conventions, the problems a full validation found, form labels from an accessibility check, and refreshed screenshots.
Security fixes
attachments_info.phpnow ask for the same permission as the installed modules, and the minimum-version message uses positional placeholders.Accessibility
An axe-core run (WCAG 2.2 A and AA, desktop and phone widths, keyboard focus) found form controls with no accessible name: the category dropdown, the copy-link boxes on an article, the article text box and custom-field dropdowns on the posting form, the queue's team and action menus, and in the ACP the category picker, the new-category box and the file-size unit menu. Each is now labelled from a language string; the queue's action menu uses the new
KB_QUEUE_ACTION. The Teams block on the ACP configuration page now uses valid definition-list markup.Conventions
composer.jsondescription matches the GitHub description and the README's first line.KB_NOT_ENABLEABLEkey.lint.yml:php -landcomposer validateon PHP 8.1 and 8.5..editorconfigis left out of release archives.Screenshots
07-acp-configuration.pngshows the new introduction setting, and17-index-introduction.pngand18-acp-introduction.pngshow the introduction on the index and its ACP settings.docs/update/2026-11-12/holds two shots for the update post.Testing
Claude ran:
tests/browser/kb_page_sweep.jsloaded 26 of 26 pages, including two new refusal checks; the new phpbb-release-tools feature check passed 14 of 14, including its disable, purge and enable round trip; and a second disable, purge and enable left nothing behind and finished all 43 migrations.Not changed: the inactive tabs' colour contrast, which comes from prosilver's tab colours and differs per style, and small touch targets in the article lists and queue rows.
The feature check is in phpbbmodders/phpbb-release-tools#72.
Investigated and written by Claude on behalf of William Jacoby (bonelifer).
🤖 Generated with Claude Code