Commit Graph
5591 Commits
Author SHA1 Message Date
Dan Brown f791ce0eef Merge branch 'development' into enableservices-api-search-book-chapter-endpoints 2026-09-17 12:39:41 +01:00
Dan Brown 47313ddc8f Content Pointer: Change insert location based on selection dir
Updates the content pointer behaviour so it's inserted before/after the
target, instead of just before, depending on selection direction, so it
can stay out of the selection range.
Positioning is absolute relative to a parent content so visually should
be the same result as before.

For #6214
2026-09-16 17:53:48 +01:00
Dan Brown 82b9472554 A11y: Review of #6173, ensure checkboxes are labelled
This specifically alters the checkbox label implementation to use the
existing checkbox label instead of always adding an extra label to the
custom checkbox element itself, unless they diverge (like for permission
checkboxes).
2026-09-15 19:20:14 +01:00
Dan Brown aa44f3508d Merge branch 'MHameed-improve-checkbox-accessibility' into development 2026-09-15 18:05:24 +01:00
Dan Brown b5641aa00d Testing: Updated app key test
To be better contained prevent impacting of other tests
2026-09-15 12:20:37 +01:00
Dan Brown 7782ea00df A11y: Improved alt tag usage for header logo
Set to blank if text is already part of the header, and the app name if
the name is not shown in the header.

For #6171
References:
https://webaim.org/techniques/alttext/
https://www.scottohara.me/blog/2018/05/05/hidden-vs-none.html
2026-09-15 12:07:00 +01:00
Dan Brown 12f1b7ac71 Deps: Updated JS package versions 2026-09-15 04:05:46 +01:00
Dan Brown 5672515482 Maintenance: Addressed new phpstan issues 2026-09-15 04:02:37 +01:00
Dan Brown 278b94dd34 Merge branch 'v26-05-branch' into development 2026-09-15 03:27:23 +01:00
Dan Brown 7523ba96c6 Deps: Updated PHP package versions 2026-09-14 14:44:55 +01:00
Dan Brown 5969afcbdb Merge pull request 'Lexical fixes for v26.09' (#6207) from lexical_sept_2026 into development
Reviewed-on: https://codeberg.org/bookstack/bookstack/pulls/6207
2026-09-13 23:12:56 +02:00
Dan Brown ca205e3ed5 Config: Remove default app key value
To avoid scenarios where an instance specific app key is not set, and
therefore avoids the potential of instances using a known key value.

For #6210
2026-09-13 22:03:30 +01:00
Dan Brown 0763d7df30 Social Login: Fixed queries unscoped to driver
Prevents the same IDs from different systems leading to access of other
accounts, and allows registration of same ids under different services.

Thanks to Google and Ada Logics for discovery and reporting.
2026-09-13 17:27:01 +01:00
Dan Brown 2c22c3bcb8 Sponsors: Added BookHost 2026-09-12 23:35:17 +01:00
Dan Brown 1498c2fa35 JS: Fixed failing test after lexical changes 2026-09-09 10:18:14 +01:00
Dan Brown 17f5e9bfa7 Lexical: Fixed node resizer not reacting to content size changes 2026-09-09 10:10:48 +01:00
Dan Brown b869c6a78e Lexical: Prevented link entity selector overwriting existing link text
It now retains existing input where set.
This also updates the modal click handling with an extra click source
check to handle cases where a mousedown event is not emitted, like on
select list dismissals.
2026-09-08 00:28:47 +01:00
Dan Brown 1902a291b3 Lexical: Fixed ability to cut/copy/drag+drop details nodes
Required updating the selection management to ensure they are selected
upon mousedown, for when a drag operation starts.
Also added draggable management, which we have to avoid having there
when open unless a drag is started, otherwise contents are not editable
in chromium browsers.
2026-09-07 19:37:26 +01:00
Dan Brown 88e7748621 Lexical: Set details node as a shadow root
Fixes issues with list creation inside details elements.
2026-09-07 17:11:03 +01:00
Dan Brown ff9755a32d Lexical: Fixed modals closing on clicks starting from within modals
Specifically on chromium browsers. Firefox was fine before.
Changes tested across both.
2026-09-07 16:13:09 +01:00
Dan Brown bb76d14f82 Lexical: Updated pop up form fields to be wider
Better matches the old editor, and makes long input data like URLs more
usable.
2026-09-07 15:56:20 +01:00
Dan Brown e08f11d6ff Lexical: Added clipboard/drag handling for single nodes
Fixes behaviour when using cut/copy/drag for items like images or code
blocks.

Also updates history handling to not ignore additions where original
content remains unchanged.
2026-09-07 12:24:28 +01:00
Dan Brown f8c2ada021 Lexical: Fixed difference in line break in-editor & on export
Aligned the linebreak exportdom behaviour to align with how the
reconciler displays line breaks in the editor, by adding an extra line
break to each series of line breaks, so they're now visually the same
across editor and export.
2026-09-06 19:19:44 +01:00
Dan Brown df40d8c08a Lexical: Made callout formatting in lists more reliable
Updates the callout toggle action to consider callouts in lists (and
other callouts) when making changes.
2026-09-05 18:52:49 +01:00
Dan Brown 9b56295dfd Lexical: Fixed formatting on reverse selection ranges in lists
Block formatting on range selection could break when made from bottom to
top, due to using the first selected for insertion position instead of
the first in the doc structure.
2026-09-05 18:15:57 +01:00
Dan Brown e573d2458b Lexical: Added enter/shift+enter handling for images in list items
Added testing to cover
2026-09-04 15:16:01 +01:00
Dan Brown 74e271c639 Lexical: Added missing code block direction handling
Adds some base text direction handling to decorator nodes which can be
used by nodes where it makes sense, like for the code block node.
2026-09-03 19:18:07 +01:00
Dan Brown 4d5e9fc8c4 Lexical: Fixed re-focus after modal in some cases
Updated code editor display so the editor area actually gains focus
again.
Updated modal handling to delegate focus handling to the editor if focus
was on the edit area before, to prevent cursor jumps to the start.
2026-09-03 18:53:08 +01:00
Dan Brown 13a1883b6c Page Filtering: Fixed table cell alignment being stripped
Cells could have an 'align' attribute, especially when created via
markdown. This updates the allow filtering to retain valid align values
on table cells.

For #6167
2026-09-03 13:19:07 +01:00
Dan Brown 18f8469a1c LDAP: Fixed handling of invalid group values
Updated LDAP group handling to properly handle empty group values by
checking the explode's count property instead of performing a general
array count.
Also updated logic with DN validation/filtering before LDAP calls are
made.

For #6088
2026-08-31 11:58:33 +01:00
Dan Brown 7539933d48 User Account: Require existing password on password change
For #6181
Just in users' my account area for now.
To add to admin-level actions in the future once we can better trace
session life.
Updated/added tests to cover.
2026-08-28 11:43:07 +01:00
Dan Brown 4a871811e9 API: Added changelog support to page create/update API
Also changed the UI based forms to submit as changelog instead of
summary to align with more sensible name used on the API.
Added testing to cover.

For #6162
2026-08-28 10:48:04 +01:00
Dan Brown f1fe98d194 Pages API: Added extra test to cover type mismatch scenario
Related to #6136
2026-08-28 10:25:39 +01:00
Dan Brown c70b299194 Merge pull request 'API Docs: Added new endpoints to download docs as html/json' (#6198) from api_docs_download into development
Reviewed-on: https://codeberg.org/bookstack/bookstack/pulls/6198
2026-08-27 00:03:57 +02:00
Dan Brown 8603266f77 API Docs: Covered download endpoints with tests 2026-08-26 22:30:07 +01:00
Dan Brown 35b6f57912 API Docs: Added new endpoints to download docs as html/json
Had to rename underlying controller method to prevent name clashing.
2026-08-26 15:20:36 +01:00
Dan Brown fac26126d5 PHPStan: Fixed found issues after merge 2026-08-26 10:30:57 +01:00
Dan Brown b4894ee23e Merge pull request 'Maintenance: PHPStan Level 5' (#6143) from phpstan_june26 into development
Reviewed-on: https://codeberg.org/bookstack/bookstack/pulls/6143
2026-08-25 14:11:51 +02:00
Dan Brown ff21f6b97c Merge pull request 'Configurable block layouts' (#6179) from sidebar_management into development
Reviewed-on: https://codeberg.org/bookstack/bookstack/pulls/6179
2026-08-25 14:11:14 +02:00
Dan Brown a5261f100d Merge pull request 'Added page scroll based progress indicator' (#6176) from progress_indicator into development
Reviewed-on: https://codeberg.org/bookstack/bookstack/pulls/6176
2026-08-25 14:09:10 +02:00
Dan Brown 2d6e60a9b3 Merge branch 'sec_aug26' into development 2026-08-24 13:25:55 +01:00
Dan Brown df5f7749fc Deps: Updated php packages, updated translators and licenses
Pre v26.05.4 release
2026-08-24 11:44:08 +01:00
Crowdin Bot 316f52f894 New Crowdin translations by GitHub Action 2026-08-24 04:30:57 +00:00
Dan Brown e5a2832970 Page filtering: Fixed allow list stripping sftp and fragment links
Actually registered the SFTP protocol with HTMLPurifier to allow SFTP
links.
Replaced the default MakeAbsolute URI filter for HTMLPurifier so that
fragment based links are allowed, and are not forced to have a base URL
and/or protocol.

For #6178, Related to #6186
2026-08-24 00:03:06 +01:00
Dan Brown 0365dcc0b1 Page Drafts: Applied draft owner check to more endpoints
As a follow-up to e3068369a2, this applies
the draft ownership check to various other draft endpoints.

Thanks again to SVO for reporting.
2026-08-23 18:08:46 +01:00
Dan Brown 82a8cc35cf Recycle Bin: Ensure permissions are updated for deleted items
Fixed lack of permission update scope in permission builder where
trashed pages on chapter permission updates would not get permission
updates.

Also added permission rebuild on restore as an extra assurance.
Added tests to cover.

Thanks to SVO — svo.com.br for reporting.
2026-08-23 14:24:34 +01:00
Dan Brown 8f8a6ebf6a Content filtering: Fixed sftp protocols being removed
For #6186
2026-08-22 22:55:08 +01:00
Dan Brown e210cc32e4 ZIP Imports: Prevented non-image creation via book cover
- Updates ZIP imports to validate that actual mime type of book cover
  images to ensure they are a supported image file.
- Updates lower level ImageStorage to validate extensions of images when
  cleaning their name pre-storage.
- Updates ZIP import Image and Book handling so book cover and image
  files have their extension forced from file mime types in the same
  way.

Added testing to cover.

Thanks to the submersion.ai security research team for reporting.
2026-08-22 18:46:31 +01:00
Dan Brown b1991143b0 Search: Added draft filtering to generic entity list query
The lack of the filter could result in draft pages, from other users,
showing in locations like search results.

Thanks to Ahmed Ibrahim (github.com/skeletonsec) for reporting.
2026-08-21 12:07:25 +01:00
Dan Brown e3068369a2 Pages: Prevent update of non-draft pages via draft publish
To prevent the ability to use the draft publish endpoint on non-draft
pages which the user may not have the ability to update by default.

Thanks to SVO for reporting.
2026-08-20 09:55:50 +01:00