configvars_rails 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +7 -0
- data/VERSION +1 -1
- data/configvars_rails.gemspec +46 -49
- data/lib/configvars_rails/controller.rb +19 -1
- data/lib/configvars_rails/generators/templates/config_vars_controller.rb +2 -12
- data/test/config_vars_controller_api_test.rb +6 -0
- metadata +13 -9
- data/.gitignore +0 -24
data/README.rdoc
CHANGED
@@ -45,6 +45,13 @@ username:password combo is config:vars. The credentials can be tweaked by
|
|
45
45
|
(you guessed!) changing the config_vars.http_user and config_vars.http_password
|
46
46
|
configuration variables.
|
47
47
|
|
48
|
+
You can get HTTP Basic authentication for your other actions by calling
|
49
|
+
config_vars_auth in your controllers, as if it was before_filter. This is
|
50
|
+
particularly handy as a quick patch the authorization issues that come up when
|
51
|
+
open-sourcing an application that's running in production.
|
52
|
+
config_vars_auth, :except => :index
|
53
|
+
|
54
|
+
|
48
55
|
== Note on Patches/Pull Requests
|
49
56
|
|
50
57
|
* Fork the project.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|
data/configvars_rails.gemspec
CHANGED
@@ -1,78 +1,75 @@
|
|
1
1
|
# Generated by jeweler
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{configvars_rails}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.4.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Victor Costan"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-03-09}
|
13
13
|
s.description = %q{This gem provides a model and simple controller for
|
14
14
|
storing global application configuration in a database. This allows the
|
15
15
|
configuration to change without source code modifications.}
|
16
16
|
s.email = %q{victor@costan.us}
|
17
17
|
s.extra_rdoc_files = [
|
18
18
|
"LICENSE",
|
19
|
-
|
19
|
+
"README.rdoc"
|
20
20
|
]
|
21
21
|
s.files = [
|
22
|
-
".
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
"test/test_helper.rb"
|
22
|
+
".project",
|
23
|
+
"LICENSE",
|
24
|
+
"README.rdoc",
|
25
|
+
"Rakefile",
|
26
|
+
"VERSION",
|
27
|
+
"app/helpers/config_vars_helper.rb",
|
28
|
+
"configvars_rails.gemspec",
|
29
|
+
"lib/configvars_rails.rb",
|
30
|
+
"lib/configvars_rails/controller.rb",
|
31
|
+
"lib/configvars_rails/descriptor.rb",
|
32
|
+
"lib/configvars_rails/engine.rb",
|
33
|
+
"lib/configvars_rails/generators/all_generator.rb",
|
34
|
+
"lib/configvars_rails/generators/templates/001_create_config_vars.rb",
|
35
|
+
"lib/configvars_rails/generators/templates/config_var.rb",
|
36
|
+
"lib/configvars_rails/generators/templates/config_vars.yml",
|
37
|
+
"lib/configvars_rails/generators/templates/config_vars/edit.html.erb",
|
38
|
+
"lib/configvars_rails/generators/templates/config_vars/index.html.erb",
|
39
|
+
"lib/configvars_rails/generators/templates/config_vars_controller.rb",
|
40
|
+
"lib/configvars_rails/generators/templates/config_vars_controller_test.rb",
|
41
|
+
"lib/configvars_rails/generators/templates/config_vars_initializer.rb",
|
42
|
+
"lib/configvars_rails/model.rb",
|
43
|
+
"lib/configvars_rails/routes.rb",
|
44
|
+
"test/config_var_test.rb",
|
45
|
+
"test/config_vars_controller_api_test.rb",
|
46
|
+
"test/descriptor_test.rb",
|
47
|
+
"test/helpers/application_controller.rb",
|
48
|
+
"test/helpers/db_setup.rb",
|
49
|
+
"test/helpers/initializers.rb",
|
50
|
+
"test/helpers/routes.rb",
|
51
|
+
"test/helpers/view_helpers.rb",
|
52
|
+
"test/routes_test.rb",
|
53
|
+
"test/test_helper.rb"
|
55
54
|
]
|
56
55
|
s.homepage = %q{http://github.com/pwnall/configvars_rails}
|
57
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
58
56
|
s.require_paths = ["lib"]
|
59
|
-
s.rubygems_version = %q{1.
|
57
|
+
s.rubygems_version = %q{1.6.0}
|
60
58
|
s.summary = %q{Global configuration variables for Rails 3 applications.}
|
61
59
|
s.test_files = [
|
62
60
|
"test/config_var_test.rb",
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
61
|
+
"test/config_vars_controller_api_test.rb",
|
62
|
+
"test/descriptor_test.rb",
|
63
|
+
"test/helpers/application_controller.rb",
|
64
|
+
"test/helpers/db_setup.rb",
|
65
|
+
"test/helpers/initializers.rb",
|
66
|
+
"test/helpers/routes.rb",
|
67
|
+
"test/helpers/view_helpers.rb",
|
68
|
+
"test/routes_test.rb",
|
69
|
+
"test/test_helper.rb"
|
72
70
|
]
|
73
71
|
|
74
72
|
if s.respond_to? :specification_version then
|
75
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
76
73
|
s.specification_version = 3
|
77
74
|
|
78
75
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
@@ -23,6 +23,12 @@ module ControllerClassMethods
|
|
23
23
|
def config_vars_controller
|
24
24
|
include ControllerInstanceMethods
|
25
25
|
end
|
26
|
+
|
27
|
+
# HTTP Basic for controller actions, using config_vars credentials.
|
28
|
+
def config_vars_auth(*args)
|
29
|
+
include AuthInstanceMethods
|
30
|
+
before_filter :config_vars_http_basic_check, *args
|
31
|
+
end
|
26
32
|
end
|
27
33
|
|
28
34
|
# Included in controllers that call config_vars_controller.
|
@@ -95,7 +101,19 @@ module ControllerInstanceMethods
|
|
95
101
|
format.html { redirect_to(config_vars_url) }
|
96
102
|
end
|
97
103
|
end
|
98
|
-
end
|
104
|
+
end # module ConfigvarsRails::Session::ControllerInstanceMethods
|
105
|
+
|
106
|
+
# Included in controllers that call config_vars_controller.
|
107
|
+
module AuthInstanceMethods
|
108
|
+
def config_vars_http_basic_check
|
109
|
+
authenticate_or_request_with_http_basic(
|
110
|
+
ConfigVar['config_vars.http_realm']) do |user, password|
|
111
|
+
user == ConfigVar['config_vars.http_user'] &&
|
112
|
+
password == ConfigVar['config_vars.http_password']
|
113
|
+
end
|
114
|
+
end
|
115
|
+
private :config_vars_http_basic_check
|
116
|
+
end # module ConfigvarsRails::Session::AclInstanceMethods
|
99
117
|
|
100
118
|
ActionController::Base.send :include, ControllerMixin
|
101
119
|
|
@@ -1,16 +1,6 @@
|
|
1
1
|
# Viewing and changing configuration variables.
|
2
2
|
class ConfigVarsController < ApplicationController
|
3
3
|
config_vars_controller
|
4
|
-
|
5
|
-
|
6
|
-
# around modifying them.
|
7
|
-
before_filter :http_basic_check
|
8
|
-
def http_basic_check
|
9
|
-
authenticate_or_request_with_http_basic(
|
10
|
-
ConfigVar['config_vars.http_realm']) do |user, password|
|
11
|
-
user == ConfigVar['config_vars.http_user'] &&
|
12
|
-
password == ConfigVar['config_vars.http_password']
|
13
|
-
end
|
14
|
-
end
|
15
|
-
private :http_basic_check
|
4
|
+
|
5
|
+
config_vars_auth
|
16
6
|
end
|
@@ -67,6 +67,12 @@ class ConfigVarsControllerApiTest < ActionController::TestCase
|
|
67
67
|
assert_redirected_to config_vars_url
|
68
68
|
end
|
69
69
|
|
70
|
+
test "cannot access config vars without authentication" do
|
71
|
+
request.env.delete 'HTTP_AUTHORIZATION'
|
72
|
+
get :index
|
73
|
+
assert_response :unauthorized
|
74
|
+
end
|
75
|
+
|
70
76
|
# Verbatim, from ActiveController's own unit tests.
|
71
77
|
def encode_credentials(username, password)
|
72
78
|
"Basic #{ActiveSupport::Base64.encode64("#{username}:#{password}")}"
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: configvars_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 15
|
5
|
+
prerelease:
|
5
6
|
segments:
|
6
7
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 0.
|
8
|
+
- 4
|
9
|
+
- 0
|
10
|
+
version: 0.4.0
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Victor Costan
|
@@ -14,7 +15,7 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date:
|
18
|
+
date: 2011-03-09 00:00:00 -05:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
@@ -25,6 +26,7 @@ dependencies:
|
|
25
26
|
requirements:
|
26
27
|
- - ">="
|
27
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 7
|
28
30
|
segments:
|
29
31
|
- 3
|
30
32
|
- 0
|
@@ -40,6 +42,7 @@ dependencies:
|
|
40
42
|
requirements:
|
41
43
|
- - ">="
|
42
44
|
- !ruby/object:Gem::Version
|
45
|
+
hash: 27
|
43
46
|
segments:
|
44
47
|
- 1
|
45
48
|
- 3
|
@@ -60,7 +63,6 @@ extra_rdoc_files:
|
|
60
63
|
- LICENSE
|
61
64
|
- README.rdoc
|
62
65
|
files:
|
63
|
-
- .gitignore
|
64
66
|
- .project
|
65
67
|
- LICENSE
|
66
68
|
- README.rdoc
|
@@ -98,8 +100,8 @@ homepage: http://github.com/pwnall/configvars_rails
|
|
98
100
|
licenses: []
|
99
101
|
|
100
102
|
post_install_message:
|
101
|
-
rdoc_options:
|
102
|
-
|
103
|
+
rdoc_options: []
|
104
|
+
|
103
105
|
require_paths:
|
104
106
|
- lib
|
105
107
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -107,6 +109,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
107
109
|
requirements:
|
108
110
|
- - ">="
|
109
111
|
- !ruby/object:Gem::Version
|
112
|
+
hash: 3
|
110
113
|
segments:
|
111
114
|
- 0
|
112
115
|
version: "0"
|
@@ -115,13 +118,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
115
118
|
requirements:
|
116
119
|
- - ">="
|
117
120
|
- !ruby/object:Gem::Version
|
121
|
+
hash: 3
|
118
122
|
segments:
|
119
123
|
- 0
|
120
124
|
version: "0"
|
121
125
|
requirements: []
|
122
126
|
|
123
127
|
rubyforge_project:
|
124
|
-
rubygems_version: 1.
|
128
|
+
rubygems_version: 1.6.0
|
125
129
|
signing_key:
|
126
130
|
specification_version: 3
|
127
131
|
summary: Global configuration variables for Rails 3 applications.
|
data/.gitignore
DELETED