Skip to content

Commit 4a01031

Browse files
committed
Fix LoadError during startup with Redmine trunk r21288 redmica#33
1 parent 62bb13e commit 4a01031

9 files changed

+46
-44
lines changed

app/models/filter_rule.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def valid_access?(remote_ip)
2020

2121
remote_ip_addr = IPAddr.new(remote_ip)
2222

23-
always_allowed_ip_list = IPFilterConfig['always_allowed_ip_list'] || []
23+
always_allowed_ip_list = RedmineIpFilter::IpFilterConfig['always_allowed_ip_list'] || []
2424
(self.allowed_ip_list | always_allowed_ip_list).any? do |ip|
2525
begin
2626
IPAddr.new(ip).include?(remote_ip_addr)

init.rb

+3-7
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
# frozen_string_literal: true
22

3-
require_dependency 'redmine_ip_filter_hook_listener'
4-
require_dependency 'ip_filter_config'
3+
require File.expand_path('../lib/redmine_ip_filter/ip_filter_config', __FILE__)
4+
require File.expand_path('../lib/redmine_ip_filter/application_controller_patch', __FILE__)
5+
require File.expand_path('../lib/redmine_ip_filter/hook_listener', __FILE__)
56

67
Redmine::Plugin.register :redmine_ip_filter do
78
name 'Redmine Ip Filter'
@@ -14,8 +15,3 @@
1415
menu :admin_menu, :redmine_ip_filter, { controller: :filter_rules, action: :edit }, caption: :label_ip_filter, :html => { :class => 'icon icon-ip-filter' }
1516
settings :default => { 'allowed_ips' => '' }
1617
end
17-
18-
Rails.configuration.to_prepare do
19-
require_dependency 'application_controller_patch'
20-
ApplicationController.send(:include, RedmineIPFilter::ApplicationControllerPatch)
21-
end

lib/ip_filter_config.rb

-19
This file was deleted.

lib/application_controller_patch.rb lib/redmine_ip_filter/application_controller_patch.rb

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# frozen_string_literal: true
22

3-
require_dependency 'application_controller'
3+
require 'application_controller'
44

5-
module RedmineIPFilter
5+
module RedmineIpFilter
66
module ApplicationControllerPatch
77
def self.included(base)
88
base.send(:include, InstanceMethod)
@@ -31,3 +31,5 @@ def check_remote_ip
3131
end
3232
end
3333
end
34+
35+
ApplicationController.send(:include, RedmineIpFilter::ApplicationControllerPatch)
+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# frozen_string_literal: true
2+
3+
module RedmineIpFilter
4+
class HookListener < Redmine::Hook::ViewListener
5+
def view_layouts_base_html_head(context)
6+
stylesheet_link_tag 'redmine_ip_filter', plugin: :redmine_ip_filter
7+
end
8+
end
9+
end
+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
module RedmineIpFilter
2+
class IpFilterConfig
3+
@@instance = nil
4+
@@config = {}
5+
6+
def self.[](key)
7+
@@instance ||= new
8+
@@config[key]
9+
end
10+
11+
def initialize
12+
file = "#{Rails.root}/plugins/redmine_ip_filter/config/ip_filter_config.yml"
13+
if File.file?(file)
14+
config = YAML.load_file(file)
15+
if config.is_a?(Hash) && config.has_key?(Rails.env)
16+
@@config = config[Rails.env]
17+
end
18+
end
19+
end
20+
end
21+
end

lib/redmine_ip_filter_hook_listener.rb

-7
This file was deleted.

test/unit/filter_rule_test.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ def test_valid_access_returns_true_remote_ip_includes_allowed_ip
3838
end
3939

4040
def test_valid_access_returns_true_remote_ip_includes_always_allowed_ip
41-
#IPFilterConfig.class_variable_set :@@config, {'always_allowed_ip_list' => ['33.44.55.66']}
42-
IPFilterConfig.stubs(:'[]').with('always_allowed_ip_list').returns(['33.44.55.66', '44.55.66.77'])
41+
#RedmineIpFilter::IpFilterConfig.class_variable_set :@@config, {'always_allowed_ip_list' => ['33.44.55.66']}
42+
RedmineIpFilter::IpFilterConfig.stubs(:'[]').with('always_allowed_ip_list').returns(['33.44.55.66', '44.55.66.77'])
4343
assert @filter_rule.valid_access?('33.44.55.66')
4444
assert @filter_rule.valid_access?('44.55.66.77')
4545
end
+6-6
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
require File.expand_path('../../../test_helper', __FILE__)
22

3-
class IPFilterConfigTest < ActiveSupport::TestCase
3+
class IpFilterConfigTest < ActiveSupport::TestCase
44

55
def setup
6-
IPFilterConfig.class_variable_set :@@instance, nil
7-
IPFilterConfig.class_variable_set :@@config, {}
6+
RedmineIpFilter::IpFilterConfig.class_variable_set :@@instance, nil
7+
RedmineIpFilter::IpFilterConfig.class_variable_set :@@config, {}
88
@config_file = "#{Rails.root}/plugins/redmine_ip_filter/config/ip_filter_config.yml"
99
@yml_data = YAML.load_file(File.dirname(__FILE__) + '/../../config/ip_filter_config.yml')
1010
end
@@ -13,19 +13,19 @@ def test_always_allowed_ip_list
1313
File.stubs(:file?).with(@config_file).returns(true)
1414
YAML.stubs(:load_file).with(@config_file).returns(@yml_data)
1515

16-
assert_equal ['127.0.0.1', '10.0.0.0/8'], IPFilterConfig['always_allowed_ip_list']
16+
assert_equal ['127.0.0.1', '10.0.0.0/8'], RedmineIpFilter::IpFilterConfig['always_allowed_ip_list']
1717
end
1818

1919
def test_always_allowed_ip_list_empty_when_configuration_blank
2020
File.stubs(:file?).with(@config_file).returns(true)
2121
YAML.stubs(:load_file).with(@config_file).returns('')
2222

23-
assert_nil IPFilterConfig['always_allowed_ip_list']
23+
assert_nil RedmineIpFilter::IpFilterConfig['always_allowed_ip_list']
2424
end
2525

2626
def test_always_allowed_ip_list_empty_when_configuration_file_does_not_exist
2727
File.stubs(:file?).with(@config_file).returns(false)
2828

29-
assert_nil IPFilterConfig['always_allowed_ip_list']
29+
assert_nil RedmineIpFilter::IpFilterConfig['always_allowed_ip_list']
3030
end
3131
end

0 commit comments

Comments
 (0)