mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-06 09:09:38 +03:00
Overview of assigned rights/roles for books, chapters, pages needed for security #1414
Open
opened 2026-02-05 00:50:12 +03:00 by OVERLORD
·
6 comments
No Branch/Tag Specified
development
further_theme_development
l10n_development
release
llm_only
vectors
v25-11
docker_env
drawio_rendering
user_permissions
ldap_host_failover
svg_image
prosemirror
captcha_example
fix/video-export
v25.12.3
v25.12.2
v25.12.1
v25.12
v25.11.6
v25.11.5
v25.11.4
v24.11.4
v25.11.3
v25.11.2
v25.11.1
v25.11
v25.07.3
v25.07.2
v25.07.1
v25.07
v25.05.2
v25.05.1
v25.05
v25.02.5
v25.02.4
v25.02.3
v25.02.2
v25.02.1
v25.02
v24.12.1
v24.12
v24.10.3
v24.10.2
v24.10.1
v24.10
v24.05.4
v24.05.3
v24.05.2
v24.05.1
v24.05
v24.02.3
v24.02.2
v24.02.1
v24.02
v23.12.3
v23.12.2
v23.12.1
v23.12
v23.10.4
v23.10.3
v23.10.2
v23.10.1
v23.10
v23.08.3
v23.08.2
v23.08.1
v23.08
v23.06.2
v23.06.1
v23.06
v23.05.2
v23.05.1
v23.05
v23.02.3
v23.02.2
v23.02.1
v23.02
v23.01.1
v23.01
v22.11.1
v22.11
v22.10.2
v22.10.1
v22.10
v22.09.1
v22.09
v22.07.3
v22.07.2
v22.07.1
v22.07
v22.06.2
v22.06.1
v22.06
v22.04.2
v22.04.1
v22.04
v22.03.1
v22.03
v22.02.3
v22.02.2
v22.02.1
v22.02
v21.12.5
v21.12.4
v21.12.3
v21.12.2
v21.12.1
v21.12
v21.11.3
v21.11.2
v21.11.1
v21.11
v21.10.3
v21.10.2
v21.10.1
v21.10
v21.08.6
v21.08.5
v21.08.4
v21.08.3
v21.08.2
v21.08.1
v21.08
v21.05.4
v21.05.3
v21.05.2
v21.05.1
v21.05
v21.04.6
v21.04.5
v21.04.4
v21.04.3
v21.04.2
v21.04.1
v21.04
v0.31.8
v0.31.7
v0.31.6
v0.31.5
v0.31.4
v0.31.3
v0.31.2
v0.31.1
v0.31.0
v0.30.7
v0.30.6
v0.30.5
v0.30.4
v0.30.3
v0.30.2
v0.30.1
v0.30.0
v0.29.3
v0.29.2
v0.29.1
v0.29.0
v0.28.3
v0.28.2
v0.28.1
v0.28.0
v0.27.5
v0.27.4
v0.27.3
v0.27.2
v0.27.1
v0.27
v0.26.4
v0.26.3
v0.26.2
v0.26.1
v0.26.0
v0.25.5
v0.25.4
v0.25.3
v0.25.2
v0.25.1
v0.25.0
v0.24.3
v0.24.2
v0.24.1
v0.24.0
v0.23.2
v0.23.1
v0.23.0
v0.22.0
v0.21.0
v0.20.3
v0.20.2
v0.20.1
v0.20.0
v0.19.0
v0.18.5
v0.18.4
v0.18.3
v0.18.2
v0.18.1
v0.18.0
v0.17.4
v0.17.3
v0.17.2
v0.17.1
v0.17.0
v0.16.3
v0.16.2
v0.16.1
v0.16.0
v0.15.3
v0.15.2
v0.15.1
v0.15.0
v0.14.3
v0.14.2
v0.14.1
v0.14.0
v0.13.1
v0.13.0
v0.12.2
v0.12.1
v0.12.0
v0.11.2
v0.11.1
v0.11.0
v0.10.0
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.2
v0.8.1
v0.8.0
v0.7.6
v0.7.5
v0.7.4
v0.7.3
0.7.2
v.0.7.1
v0.7.0
v0.6.3
v0.6.2
v0.6.1
v0.6.0
v0.5.0
Labels
Clear labels
🎨 Design
📖 Docs Update
🐛 Bug
🐛 Bug
:cat2:🐈 Possible duplicate
💿 Database
☕ Open to discussion
💻 Front-End
🐕 Support
🚪 Authentication
🌍 Translations
🔌 API Task
🏭 Back-End
⛲ Upstream
🔨 Feature Request
🛠️ Enhancement
🛠️ Enhancement
🛠️ Enhancement
❤️ Happy feedback
🔒 Security
🔍 Pending Validation
💆 UX
📝 WYSIWYG Editor
🌔 Out of scope
🔩 API Request
:octocat: Admin/Meta
🖌️ View Customization
❓ Question
🚀 Priority
🛡️ Blocked
🚚 Export System
♿ A11y
🔧 Maintenance
> Markdown Editor
pull-request
Mirrored from GitHub Pull Request
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/BookStack#1414
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Wookbert on GitHub (Oct 23, 2019).
Describe the feature you'd like
If I see it correctly, the way to make some content only available to some users, is to
Step 1) Create a role where only own content can be viewed, updated, deleted
Step 2) Assign that role (only) to the particular user
Step 3) Manage the rights of the book/chapter/page in mind on an individual level and assigning view rights etc. for the role created in step 1.
The big problem I see here, is that there is currently ZERO oversight in which content can be seen/updated/deleted by which user.
Imagine having a lot of content and many users ... with not all content meant to be seen by all users. Currently one has to check the rights/permissions book by book, chapter by chapter, page by page (if one assumes that one is actively using permissions and there’s perhaps more than one admin).
This is a security nightmare! So what’s badly needed is some sort of permissions overview or filter, showing which user can see/create/update/delete which content where. This should be of course visible to the Admins only.
The difficulty here is to come up with a handy design, as a simple table with books/chapters/page in X and users/rights in Y would/could end up in an insanely huge table.
A simplistic design would be to have a page which shows all book titles, whereas each book has a list of all user names which have any right to either the particular book itself in whole, a chapter or page within it. The admin then can click onto the book title to inspect the permissions in detail.
Describe the benefits this feature would bring to BookStack users
Security. Avoidance of the wrong people seeing content not meant for their eyes.
@Wookbert commented on GitHub (Oct 23, 2019):
Here’s an actually working Table of Content page my partner has created, to which we've added a user-filter, so we as admins can see who has access to what. Unaccessible content is ghosted and stroke through.
Usually we are also showing the headlines of each page as part of the Table of Contents (see the screenshot in my comment to issue# 616), but we've added a checkbox to hide those for the permissions view.
Although it's working, it is still in work in progress.
@CodeCommander commented on GitHub (Aug 29, 2020):
This looks really useful. Do you have a PR?
@Wookbert commented on GitHub (Aug 29, 2020):
PR like Pull Request?
@xsylx commented on GitHub (Aug 9, 2021):
@Wookbert : Does this fonctionnality has been raised to the BS code ? It's very useful and i would like to ask that fonctionnality, but you already do it ! :)
I think an other way to do that (perhaps easier) is to have "login as" function for admin users who wants to be in place of the end user for testing purpose.
@dexamenos commented on GitHub (Aug 9, 2021):
@SylvainGuibert unluckily, we have not created a PR
Our solution where above mentioned screenshots are taken from is actually a bloody hack running on a separate, virtual Apache, "location" (i.e. URL) is "blended" into/over BS installation; for the rights overview, we are scanning the BS SQL database. Security is -- again -- hacked by scanning the cache files with the auth tokens on the server directory. So not any kind of future proof towards any changes @ssddanbrown might do to the SQL structure or auth backend.
Besides, we do not have any knowledge of Laravel and composer, which is why it never ended into a PR.
However, having it in the BS code base would be more than welcome on our side. We might share the code however, if you would be able to bring it into BS code base. Lots of custom paths, SQL credentials etc. from our installation though.
@xsylx commented on GitHub (Aug 10, 2021):
@dexamenos : Thanks for your answer. Unfortunaly i haven't knoledge too for Laravel and composer :(
I'm still agree with you, this kind of functionnality on the BS source code could be great idea . Sometimes we need to be sure that's some shelve / books / chapter are not shared arroud all users !