audited
audited copied to clipboard
Crash with set_callback: undefined method `append' for nil:NilClass (NoMethodError)
Hi, I'm trying to add audited gem to redmine 4.1 through separate plugin(I'm the plugin author):
https://github.com/RealEnder/redmine_auditlog
This is done with simple monkey patch like this:
init.rb
Group.send(:include, RedmineAuditlog::AuditlogPatch)
redmine_auditlog.rb:
module RedmineAuditlog
module AuditlogPatch
def self.included(base)
base.class_eval do
unloadable # Send unloadable so it will not be unloaded in development
audited
end
end
end
With redmine versions before 4.x this worked, but with 4.0.x/4.1.x I'm getting this error:
Traceback (most recent call last):
54: from bin/rails:4:in `<main>'
53: from bin/rails:4:in `require'
52: from /usr/local/lib/ruby/gems/2.5.0/gems/railties-5.2.4.2/lib/rails/commands.rb:18:in `<top (required)>'
51: from /usr/local/lib/ruby/gems/2.5.0/gems/railties-5.2.4.2/lib/rails/command.rb:46:in `invoke'
50: from /usr/local/lib/ruby/gems/2.5.0/gems/railties-5.2.4.2/lib/rails/command/base.rb:69:in `perform'
49: from /usr/local/lib/ruby/gems/2.5.0/gems/thor-1.0.1/lib/thor.rb:392:in `dispatch'
48: from /usr/local/lib/ruby/gems/2.5.0/gems/thor-1.0.1/lib/thor/invocation.rb:127:in `invoke_command'
47: from /usr/local/lib/ruby/gems/2.5.0/gems/thor-1.0.1/lib/thor/command.rb:27:in `run'
46: from /usr/local/lib/ruby/gems/2.5.0/gems/railties-5.2.4.2/lib/rails/commands/generate/generate_command.rb:21:in `perform'
45: from /usr/local/lib/ruby/gems/2.5.0/gems/railties-5.2.4.2/lib/rails/command/actions.rb:15:in `require_application_and_environment!'
44: from /usr/local/lib/ruby/gems/2.5.0/gems/railties-5.2.4.2/lib/rails/command/actions.rb:28:in `require_environment!'
43: from /usr/local/lib/ruby/gems/2.5.0/gems/railties-5.2.4.2/lib/rails/application.rb:337:in `require_environment!'
42: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:291:in `require'
41: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:257:in `load_dependency'
40: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:291:in `block in require'
39: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:291:in `require'
38: from /opt/redmine-4.1.1/config/environment.rb:16:in `<top (required)>'
37: from /usr/local/lib/ruby/gems/2.5.0/gems/railties-5.2.4.2/lib/rails/application.rb:361:in `initialize!'
36: from /usr/local/lib/ruby/gems/2.5.0/gems/railties-5.2.4.2/lib/rails/initializable.rb:60:in `run_initializers'
35: from /usr/local/lib/ruby/2.5.0/tsort.rb:205:in `tsort_each'
34: from /usr/local/lib/ruby/2.5.0/tsort.rb:226:in `tsort_each'
33: from /usr/local/lib/ruby/2.5.0/tsort.rb:347:in `each_strongly_connected_component'
32: from /usr/local/lib/ruby/2.5.0/tsort.rb:347:in `call'
31: from /usr/local/lib/ruby/2.5.0/tsort.rb:347:in `each'
30: from /usr/local/lib/ruby/2.5.0/tsort.rb:349:in `block in each_strongly_connected_component'
29: from /usr/local/lib/ruby/2.5.0/tsort.rb:431:in `each_strongly_connected_component_from'
28: from /usr/local/lib/ruby/2.5.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
27: from /usr/local/lib/ruby/2.5.0/tsort.rb:228:in `block in tsort_each'
26: from /usr/local/lib/ruby/gems/2.5.0/gems/railties-5.2.4.2/lib/rails/initializable.rb:61:in `block in run_initializers'
25: from /usr/local/lib/ruby/gems/2.5.0/gems/railties-5.2.4.2/lib/rails/initializable.rb:32:in `run'
24: from /usr/local/lib/ruby/gems/2.5.0/gems/railties-5.2.4.2/lib/rails/initializable.rb:32:in `instance_exec'
23: from /usr/local/lib/ruby/gems/2.5.0/gems/railties-5.2.4.2/lib/rails/application/finisher.rb:63:in `block in <module:Finisher>'
22: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/reloader.rb:89:in `prepare!'
21: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/callbacks.rb:131:in `run_callbacks'
20: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/callbacks.rb:513:in `invoke_before'
19: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/callbacks.rb:513:in `each'
18: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/callbacks.rb:513:in `block in invoke_before'
17: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/callbacks.rb:199:in `block in halting'
16: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/callbacks.rb:605:in `block in default_terminator'
15: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/callbacks.rb:605:in `catch'
14: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/callbacks.rb:606:in `block (2 levels) in default_terminator'
13: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/callbacks.rb:198:in `block (2 levels) in halting'
12: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/callbacks.rb:426:in `block in make_lambda'
11: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/callbacks.rb:426:in `instance_exec'
10: from /opt/redmine-4.1.1/plugins/redmine_auditlog/init.rb:61:in `block (2 levels) in <top (required)>'
9: from /opt/redmine-4.1.1/plugins/redmine_auditlog/init.rb:61:in `include'
8: from /opt/redmine-4.1.1/plugins/redmine_auditlog/lib/redmine_auditlog.rb:14:in `included'
7: from /opt/redmine-4.1.1/plugins/redmine_auditlog/lib/redmine_auditlog.rb:14:in `class_eval'
6: from /opt/redmine-4.1.1/plugins/redmine_auditlog/lib/redmine_auditlog.rb:16:in `block in included'
5: from /usr/local/lib/ruby/gems/2.5.0/gems/audited-4.9.0/lib/audited/auditor.rb:81:in `audited'
4: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/callbacks.rb:674:in `set_callback'
3: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/callbacks.rb:625:in `__update_callbacks'
2: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/callbacks.rb:625:in `reverse_each'
1: from /usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/callbacks.rb:627:in `block in __update_callbacks'
/usr/local/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/callbacks.rb:675:in `block in set_callback': undefined method `append' for nil:NilClass (NoMethodError)
User and Group classes are inherited from Principal class, which is inherited from ActiveRecord::Base Tried with current 4.9 audited. The env: Redmine version 4.1.1.stable Ruby version 2.5.1-p57 (2018-03-29) [x86_64-linux] Rails version 5.2.4.2
Just wanted to add my voice to this that it would be really nice to figure out and fix. This audit plugin is very important to Redmine security.