Warn when Audited.current_user_method references undefined method#773
Open
55728 wants to merge 1 commit intocollectiveidea:mainfrom
Open
Warn when Audited.current_user_method references undefined method#77355728 wants to merge 1 commit intocollectiveidea:mainfrom
55728 wants to merge 1 commit intocollectiveidea:mainfrom
Conversation
When Audited.current_user_method is configured with a method name that the controller does not respond to, audited silently returns nil, resulting in audit records with a nil user. This makes misconfiguration difficult to detect. This change emits a warning via Kernel#warn when the configured method is not defined on the controller, while preserving the existing behavior of recording a nil user. Ref collectiveidea#772
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.
Problem
When `Audited.current_user_method` is set to a method that doesn't exist on the controller, audited silently falls back to `nil`, resulting in audit records with no user. This makes misconfiguration very difficult to detect, especially in compliance-critical applications (#772).
Solution
Emit a warning via `Kernel#warn` when the configured method is not defined on the controller, while preserving the existing behavior of recording a nil user. This avoids breaking existing applications while making the misconfiguration visible in logs.
A future major version could consider raising an error instead.
Ref #772