mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-07 03:09:44 +03:00
SSO Acccount re-creation improvement, matched user re-connects to previously "deleted" user #3337
Closed
opened 2026-02-05 06:24:09 +03:00 by OVERLORD
·
4 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
🔨 Feature Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/BookStack#3337
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 @BloodyIron on GitHub (Nov 9, 2022).
Describe the feature you'd like
In our scenario we are using SSO-only for authentication, via SAML, and users typically don't even enter their creds if they use a browser with the SSO session already active, but otherwise if they are prompted they would enter the same credentials every time. That may seem a bit redundant to state, but also keep in mind that the credentials are unique to the human, namely the E-Mail address to identify them (through SAML SSO), in our case Google Workspace.
In our testing environment, I've deleted accounts repeatedly to have me (or others) log back in to test some slight changes (recently fixing how full names are properly defined for users). However, as a result of this, any previous content or whatnot tied to the account before deletion is now completely orphaned. Some of which cannot be re-assigned, such as comments.
What I would like to see is a setting for SSO/SAML or somewhere, whereby if the system re-creates the user with the identical Central Authentication identity (in this case SSO SAML entity) that the human/user re-attaches to the previous user (shell user) and not a new user created (incremental user identity number). This way that user regains all the content they were authors for, and such, transparently.
I don't yet know if there are scenarios in production where deleting and remaking the user is preferable, but if we were to have to do it, it would lead to bigger and bigger problems over time as more content is in Bookstack. It would be great to retain those associations in such a scenario. Or at least have a way to "enable" such behaviour within the Bookstack ecosystem.
Describe the benefits this would bring to existing BookStack users
This would reduce friction when administrative (IT) staff need to rebuild a user's profile for any reason, by having previous ownership reliably transition.
Can the goal of this request already be achieved via other means?
Not that I can see at this time.
Have you searched for an existing open/closed issue?
How long have you been using BookStack?
0 to 6 months
Additional context
Not sure the best way to reliably do this from a technical perspective, apart from unique identity mapping, or maybe if there's also an option for admins to manually override if it fails.
@ssddanbrown commented on GitHub (Nov 9, 2022):
Hi @BloodyIron, Not sure I understand the scenario here. Why are you deleting users if they're likely to login again?
The user deletion is intended to be destructive and records are deleted. There is no shell user to connect back up to, apart from some potential lingering ids on related tables.
@BloodyIron commented on GitHub (Nov 9, 2022):
In this particular case I was deleting users to re-test provisioning, specifically because the FirstName and LastName was not being correctly updated (my own configuration mistake), so deleting the user with the intent the re-provisioning would happen next login. I don't really intend for user deletion to be a regular occurrence, but if there is ever a scenario where it happens, it seems like having a way to connect the same user entity to the previous userID# (within Bookstack) is worthwhile to regain content ownership (also consider you cannot change ownership for comments, like you can for pages).
I guess I'm more speaking to the linkering id's and such ;)
@ssddanbrown commented on GitHub (Nov 9, 2022):
Okay. to be honest I really intend the delete operation to be a delete. Attempting to re-join with old lingering IDs would just be messy and there'd be questions around expectations since there'd be things we can't restore for that user.
I think something like #3564 would be a better underlying approach to meet the core desire here. If that was implemented then you can take an approach of disabling user accounts instead of deleting then, so user account details can be retained and re-enabled later on.
@ssddanbrown commented on GitHub (Dec 12, 2022):
I'm going to go ahead and close this off since this specific logic is not something I'd look to support in the core project as per my comments above.