devise-radius-authenticatable 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. data/.gitignore +7 -0
  2. data/.rspec +2 -0
  3. data/.travis.yml +5 -0
  4. data/Gemfile +3 -0
  5. data/MIT-LICENSE +21 -0
  6. data/README.md +83 -0
  7. data/Rakefile +16 -0
  8. data/devise-radius-authenticatable.gemspec +32 -0
  9. data/lib/devise/models/radius_authenticatable.rb +131 -0
  10. data/lib/devise/radius_authenticatable/version.rb +5 -0
  11. data/lib/devise/radius_authenticatable.rb +32 -0
  12. data/lib/devise/strategies/radius_authenticatable.rb +27 -0
  13. data/lib/devise-radius-authenticatable.rb +2 -0
  14. data/lib/generators/devise_radius_authenticatable/install_generator.rb +78 -0
  15. data/spec/devise/models/radius_authenticatable_spec.rb +136 -0
  16. data/spec/factories/admins.rb +10 -0
  17. data/spec/fixtures/devise.rb +238 -0
  18. data/spec/generators/install_generator_spec.rb +46 -0
  19. data/spec/integration/radius_authenticatable_spec.rb +101 -0
  20. data/spec/rails_app/.gitignore +15 -0
  21. data/spec/rails_app/Gemfile +4 -0
  22. data/spec/rails_app/Rakefile +7 -0
  23. data/spec/rails_app/app/assets/images/rails.png +0 -0
  24. data/spec/rails_app/app/assets/javascripts/application.js +15 -0
  25. data/spec/rails_app/app/assets/stylesheets/application.css +13 -0
  26. data/spec/rails_app/app/controllers/admins_controller.rb +83 -0
  27. data/spec/rails_app/app/controllers/application_controller.rb +11 -0
  28. data/spec/rails_app/app/helpers/application_helper.rb +2 -0
  29. data/spec/rails_app/app/mailers/.gitkeep +0 -0
  30. data/spec/rails_app/app/models/.gitkeep +0 -0
  31. data/spec/rails_app/app/models/admin.rb +13 -0
  32. data/spec/rails_app/app/views/admins/_form.html.erb +17 -0
  33. data/spec/rails_app/app/views/admins/edit.html.erb +6 -0
  34. data/spec/rails_app/app/views/admins/index.html.erb +21 -0
  35. data/spec/rails_app/app/views/admins/new.html.erb +5 -0
  36. data/spec/rails_app/app/views/admins/show.html.erb +5 -0
  37. data/spec/rails_app/app/views/devise/confirmations/new.html.erb +12 -0
  38. data/spec/rails_app/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  39. data/spec/rails_app/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  40. data/spec/rails_app/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  41. data/spec/rails_app/app/views/devise/passwords/edit.html.erb +16 -0
  42. data/spec/rails_app/app/views/devise/passwords/new.html.erb +12 -0
  43. data/spec/rails_app/app/views/devise/registrations/edit.html.erb +25 -0
  44. data/spec/rails_app/app/views/devise/registrations/new.html.erb +18 -0
  45. data/spec/rails_app/app/views/devise/sessions/new.html.erb +17 -0
  46. data/spec/rails_app/app/views/devise/shared/_links.erb +25 -0
  47. data/spec/rails_app/app/views/devise/unlocks/new.html.erb +12 -0
  48. data/spec/rails_app/app/views/layouts/application.html.erb +25 -0
  49. data/spec/rails_app/config/application.rb +62 -0
  50. data/spec/rails_app/config/boot.rb +6 -0
  51. data/spec/rails_app/config/database.yml +25 -0
  52. data/spec/rails_app/config/environment.rb +5 -0
  53. data/spec/rails_app/config/environments/development.rb +37 -0
  54. data/spec/rails_app/config/environments/production.rb +67 -0
  55. data/spec/rails_app/config/environments/test.rb +37 -0
  56. data/spec/rails_app/config/initializers/backtrace_silencers.rb +7 -0
  57. data/spec/rails_app/config/initializers/devise.rb +278 -0
  58. data/spec/rails_app/config/initializers/inflections.rb +15 -0
  59. data/spec/rails_app/config/initializers/mime_types.rb +5 -0
  60. data/spec/rails_app/config/initializers/secret_token.rb +7 -0
  61. data/spec/rails_app/config/initializers/session_store.rb +8 -0
  62. data/spec/rails_app/config/initializers/wrap_parameters.rb +14 -0
  63. data/spec/rails_app/config/locales/devise.en.yml +58 -0
  64. data/spec/rails_app/config/locales/en.yml +5 -0
  65. data/spec/rails_app/config/routes.rb +66 -0
  66. data/spec/rails_app/config.ru +4 -0
  67. data/spec/rails_app/db/migrate/20120627042556_devise_create_admins.rb +48 -0
  68. data/spec/rails_app/db/schema.rb +37 -0
  69. data/spec/rails_app/db/seeds.rb +7 -0
  70. data/spec/rails_app/lib/assets/.gitkeep +0 -0
  71. data/spec/rails_app/lib/tasks/.gitkeep +0 -0
  72. data/spec/rails_app/public/404.html +26 -0
  73. data/spec/rails_app/public/422.html +26 -0
  74. data/spec/rails_app/public/500.html +25 -0
  75. data/spec/rails_app/public/favicon.ico +0 -0
  76. data/spec/rails_app/public/robots.txt +5 -0
  77. data/spec/rails_app/script/rails +6 -0
  78. data/spec/spec_helper.rb +25 -0
  79. data/spec/support/devise_helpers.rb +18 -0
  80. data/spec/support/generator_helpers.rb +19 -0
  81. data/spec/support/radius_helpers.rb +84 -0
  82. metadata +389 -0
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1,25 @@
1
+ ENV["RAILS_ENV"] ||= 'test'
2
+
3
+ require 'rails_app/config/environment'
4
+
5
+ require 'rspec/rails'
6
+ require 'ammeter/init'
7
+ require 'factory_girl'
8
+
9
+ # Load in all of our supporting code
10
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
11
+ Dir["#{File.dirname(__FILE__)}/factories/**/*.rb"].each {|f| require f}
12
+
13
+ # Make sure to get the database migrated
14
+ ActiveRecord::Migration.verbose = false
15
+ ActiveRecord::Base.logger = Logger.new(nil)
16
+ ActiveRecord::Migrator.migrate(File.expand_path("../rails_app/db/migrate/", __FILE__))
17
+
18
+ # RSpec Configuration
19
+ RSpec.configure do |config|
20
+ config.use_transactional_fixtures = true
21
+ config.treat_symbols_as_metadata_keys_with_true_values = true
22
+ config.run_all_when_everything_filtered = true
23
+ config.filter_run :focus
24
+ config.order = 'random'
25
+ end
@@ -0,0 +1,18 @@
1
+ module DeviseHelpers
2
+ # Execute the block setting the given values and restoring old values after
3
+ # the block is executed.
4
+ def swap(object, new_values)
5
+ old_values = {}
6
+ new_values.each do |key, value|
7
+ old_values[key] = object.send key
8
+ object.send :"#{key}=", value
9
+ end
10
+ yield
11
+ ensure
12
+ old_values.each do |key, value|
13
+ object.send :"#{key}=", value
14
+ end
15
+ end
16
+ end
17
+
18
+ RSpec::configure { |c| c.include DeviseHelpers }
@@ -0,0 +1,19 @@
1
+ module GeneratorHelpers
2
+ DESTINATION_PATH = File.expand_path("../../../tmp", __FILE__)
3
+ FIXTURES_PATH = File.expand_path("../../fixtures", __FILE__)
4
+
5
+ def prepare_devise
6
+ initializers_path = File.join(DESTINATION_PATH, 'config/initializers')
7
+ FileUtils.mkpath(initializers_path)
8
+ FileUtils.cp(File.join(FIXTURES_PATH, 'devise.rb'), initializers_path)
9
+ end
10
+ end
11
+
12
+ RSpec::configure do |c|
13
+ c.include GeneratorHelpers, :type => :generator, :example_group => {
14
+ :file_path => /spec[\\\/]generators/
15
+ }
16
+
17
+ c.before(:all, :type => :generator) { destination GeneratorHelpers::DESTINATION_PATH }
18
+ c.before(:each, :type => :generator) { prepare_devise }
19
+ end
@@ -0,0 +1,84 @@
1
+ class Radiustar::Request
2
+ def initialize(url, options = {})
3
+ RadiusServer.instance.create_request(url, options)
4
+ end
5
+
6
+ def authenticate(username, password, secret)
7
+ RadiusServer.instance.authenticate(username, password)
8
+ end
9
+ end
10
+
11
+ class RadiusServer
12
+ attr_reader :url, :options
13
+
14
+ def self.instance
15
+ @@server ||= new
16
+ end
17
+
18
+ def initialize
19
+ clear_users
20
+ clear_request
21
+ end
22
+
23
+ def create_request(url, options)
24
+ @url = url
25
+ @options = options
26
+ end
27
+
28
+ def clear_request
29
+ @url = nil
30
+ @options = nil
31
+ end
32
+
33
+ def add_user(username, password, attributes = {})
34
+ @users[username] = {}
35
+ @users[username][:password] = password
36
+ if attributes.empty?
37
+ @users[username][:attributes] = {
38
+ 'User-Name' => username,
39
+ 'Filter-Id' => 60
40
+ }
41
+ else
42
+ @users[username][:attributes] = attributes
43
+ end
44
+ end
45
+
46
+ def clear_users
47
+ @users = {}
48
+ end
49
+
50
+ def attributes(username)
51
+ @users[username][:attributes]
52
+ end
53
+
54
+ def authenticate(username, password)
55
+ if @users[username] && @users[username][:password] == password
56
+ { :code => 'Access-Accept' }.merge(@users[username][:attributes])
57
+ else
58
+ { :code => 'Access-Reject' }
59
+ end
60
+ end
61
+ end
62
+
63
+ module RadiusHelpers
64
+ def radius_server
65
+ RadiusServer.instance
66
+ end
67
+
68
+ def create_radius_user(username, password, attributes = {})
69
+ RadiusServer.instance.add_user(username, password, attributes)
70
+ end
71
+
72
+ def clear_radius_users
73
+ RadiusServer.instance.clear_users
74
+ end
75
+ end
76
+
77
+ RSpec::configure do |c|
78
+ c.include RadiusHelpers
79
+
80
+ c.after(:each) do
81
+ RadiusServer.instance.clear_request
82
+ RadiusServer.instance.clear_users
83
+ end
84
+ end
metadata ADDED
@@ -0,0 +1,389 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: devise-radius-authenticatable
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Calvin Bascom
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-07-05 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: devise
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '2.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '2.0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: radiustar
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 0.0.6
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 0.0.6
46
+ - !ruby/object:Gem::Dependency
47
+ name: rake
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '0.9'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '0.9'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rails
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '3.2'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '3.2'
78
+ - !ruby/object:Gem::Dependency
79
+ name: jquery-rails
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: '2.0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: '2.0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: sqlite3
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: '1.3'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: '1.3'
110
+ - !ruby/object:Gem::Dependency
111
+ name: rspec
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '2.10'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: '2.10'
126
+ - !ruby/object:Gem::Dependency
127
+ name: rspec-rails
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: '2.10'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: '2.10'
142
+ - !ruby/object:Gem::Dependency
143
+ name: factory_girl
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ~>
148
+ - !ruby/object:Gem::Version
149
+ version: '3.4'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: '3.4'
158
+ - !ruby/object:Gem::Dependency
159
+ name: capybara
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ~>
164
+ - !ruby/object:Gem::Version
165
+ version: '1.1'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ version: '1.1'
174
+ - !ruby/object:Gem::Dependency
175
+ name: launchy
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ - !ruby/object:Gem::Dependency
191
+ name: ammeter
192
+ requirement: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ~>
196
+ - !ruby/object:Gem::Version
197
+ version: '0.2'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ~>
204
+ - !ruby/object:Gem::Version
205
+ version: '0.2'
206
+ description: A new authentication strategy named radius_authenticatable is added to
207
+ the list of warden strategies when the model requests it. The radius server information
208
+ is configured through the devise initializer. When a user attempts to authenticate
209
+ via radius, the radiustar gem is used to perform the authentication with the radius
210
+ server. This authentication strategy can be used in place of the database_authenticatable
211
+ or alongside it depending on the needs of the application.
212
+ email: cbascom@gmail.com
213
+ executables: []
214
+ extensions: []
215
+ extra_rdoc_files: []
216
+ files:
217
+ - .gitignore
218
+ - .rspec
219
+ - .travis.yml
220
+ - Gemfile
221
+ - MIT-LICENSE
222
+ - README.md
223
+ - Rakefile
224
+ - devise-radius-authenticatable.gemspec
225
+ - lib/devise-radius-authenticatable.rb
226
+ - lib/devise/models/radius_authenticatable.rb
227
+ - lib/devise/radius_authenticatable.rb
228
+ - lib/devise/radius_authenticatable/version.rb
229
+ - lib/devise/strategies/radius_authenticatable.rb
230
+ - lib/generators/devise_radius_authenticatable/install_generator.rb
231
+ - spec/devise/models/radius_authenticatable_spec.rb
232
+ - spec/factories/admins.rb
233
+ - spec/fixtures/devise.rb
234
+ - spec/generators/install_generator_spec.rb
235
+ - spec/integration/radius_authenticatable_spec.rb
236
+ - spec/rails_app/.gitignore
237
+ - spec/rails_app/Gemfile
238
+ - spec/rails_app/Rakefile
239
+ - spec/rails_app/app/assets/images/rails.png
240
+ - spec/rails_app/app/assets/javascripts/application.js
241
+ - spec/rails_app/app/assets/stylesheets/application.css
242
+ - spec/rails_app/app/controllers/admins_controller.rb
243
+ - spec/rails_app/app/controllers/application_controller.rb
244
+ - spec/rails_app/app/helpers/application_helper.rb
245
+ - spec/rails_app/app/mailers/.gitkeep
246
+ - spec/rails_app/app/models/.gitkeep
247
+ - spec/rails_app/app/models/admin.rb
248
+ - spec/rails_app/app/views/admins/_form.html.erb
249
+ - spec/rails_app/app/views/admins/edit.html.erb
250
+ - spec/rails_app/app/views/admins/index.html.erb
251
+ - spec/rails_app/app/views/admins/new.html.erb
252
+ - spec/rails_app/app/views/admins/show.html.erb
253
+ - spec/rails_app/app/views/devise/confirmations/new.html.erb
254
+ - spec/rails_app/app/views/devise/mailer/confirmation_instructions.html.erb
255
+ - spec/rails_app/app/views/devise/mailer/reset_password_instructions.html.erb
256
+ - spec/rails_app/app/views/devise/mailer/unlock_instructions.html.erb
257
+ - spec/rails_app/app/views/devise/passwords/edit.html.erb
258
+ - spec/rails_app/app/views/devise/passwords/new.html.erb
259
+ - spec/rails_app/app/views/devise/registrations/edit.html.erb
260
+ - spec/rails_app/app/views/devise/registrations/new.html.erb
261
+ - spec/rails_app/app/views/devise/sessions/new.html.erb
262
+ - spec/rails_app/app/views/devise/shared/_links.erb
263
+ - spec/rails_app/app/views/devise/unlocks/new.html.erb
264
+ - spec/rails_app/app/views/layouts/application.html.erb
265
+ - spec/rails_app/config.ru
266
+ - spec/rails_app/config/application.rb
267
+ - spec/rails_app/config/boot.rb
268
+ - spec/rails_app/config/database.yml
269
+ - spec/rails_app/config/environment.rb
270
+ - spec/rails_app/config/environments/development.rb
271
+ - spec/rails_app/config/environments/production.rb
272
+ - spec/rails_app/config/environments/test.rb
273
+ - spec/rails_app/config/initializers/backtrace_silencers.rb
274
+ - spec/rails_app/config/initializers/devise.rb
275
+ - spec/rails_app/config/initializers/inflections.rb
276
+ - spec/rails_app/config/initializers/mime_types.rb
277
+ - spec/rails_app/config/initializers/secret_token.rb
278
+ - spec/rails_app/config/initializers/session_store.rb
279
+ - spec/rails_app/config/initializers/wrap_parameters.rb
280
+ - spec/rails_app/config/locales/devise.en.yml
281
+ - spec/rails_app/config/locales/en.yml
282
+ - spec/rails_app/config/routes.rb
283
+ - spec/rails_app/db/migrate/20120627042556_devise_create_admins.rb
284
+ - spec/rails_app/db/schema.rb
285
+ - spec/rails_app/db/seeds.rb
286
+ - spec/rails_app/lib/assets/.gitkeep
287
+ - spec/rails_app/lib/tasks/.gitkeep
288
+ - spec/rails_app/public/404.html
289
+ - spec/rails_app/public/422.html
290
+ - spec/rails_app/public/500.html
291
+ - spec/rails_app/public/favicon.ico
292
+ - spec/rails_app/public/robots.txt
293
+ - spec/rails_app/script/rails
294
+ - spec/spec_helper.rb
295
+ - spec/support/devise_helpers.rb
296
+ - spec/support/generator_helpers.rb
297
+ - spec/support/radius_helpers.rb
298
+ homepage: http://github.com/cbascom/devise-radius-authenticatable
299
+ licenses: []
300
+ post_install_message:
301
+ rdoc_options: []
302
+ require_paths:
303
+ - lib
304
+ required_ruby_version: !ruby/object:Gem::Requirement
305
+ none: false
306
+ requirements:
307
+ - - ! '>='
308
+ - !ruby/object:Gem::Version
309
+ version: '0'
310
+ required_rubygems_version: !ruby/object:Gem::Requirement
311
+ none: false
312
+ requirements:
313
+ - - ! '>='
314
+ - !ruby/object:Gem::Version
315
+ version: '0'
316
+ requirements: []
317
+ rubyforge_project:
318
+ rubygems_version: 1.8.24
319
+ signing_key:
320
+ specification_version: 3
321
+ summary: Devise extension to allow authentication via Radius
322
+ test_files:
323
+ - spec/devise/models/radius_authenticatable_spec.rb
324
+ - spec/factories/admins.rb
325
+ - spec/fixtures/devise.rb
326
+ - spec/generators/install_generator_spec.rb
327
+ - spec/integration/radius_authenticatable_spec.rb
328
+ - spec/rails_app/.gitignore
329
+ - spec/rails_app/Gemfile
330
+ - spec/rails_app/Rakefile
331
+ - spec/rails_app/app/assets/images/rails.png
332
+ - spec/rails_app/app/assets/javascripts/application.js
333
+ - spec/rails_app/app/assets/stylesheets/application.css
334
+ - spec/rails_app/app/controllers/admins_controller.rb
335
+ - spec/rails_app/app/controllers/application_controller.rb
336
+ - spec/rails_app/app/helpers/application_helper.rb
337
+ - spec/rails_app/app/mailers/.gitkeep
338
+ - spec/rails_app/app/models/.gitkeep
339
+ - spec/rails_app/app/models/admin.rb
340
+ - spec/rails_app/app/views/admins/_form.html.erb
341
+ - spec/rails_app/app/views/admins/edit.html.erb
342
+ - spec/rails_app/app/views/admins/index.html.erb
343
+ - spec/rails_app/app/views/admins/new.html.erb
344
+ - spec/rails_app/app/views/admins/show.html.erb
345
+ - spec/rails_app/app/views/devise/confirmations/new.html.erb
346
+ - spec/rails_app/app/views/devise/mailer/confirmation_instructions.html.erb
347
+ - spec/rails_app/app/views/devise/mailer/reset_password_instructions.html.erb
348
+ - spec/rails_app/app/views/devise/mailer/unlock_instructions.html.erb
349
+ - spec/rails_app/app/views/devise/passwords/edit.html.erb
350
+ - spec/rails_app/app/views/devise/passwords/new.html.erb
351
+ - spec/rails_app/app/views/devise/registrations/edit.html.erb
352
+ - spec/rails_app/app/views/devise/registrations/new.html.erb
353
+ - spec/rails_app/app/views/devise/sessions/new.html.erb
354
+ - spec/rails_app/app/views/devise/shared/_links.erb
355
+ - spec/rails_app/app/views/devise/unlocks/new.html.erb
356
+ - spec/rails_app/app/views/layouts/application.html.erb
357
+ - spec/rails_app/config.ru
358
+ - spec/rails_app/config/application.rb
359
+ - spec/rails_app/config/boot.rb
360
+ - spec/rails_app/config/database.yml
361
+ - spec/rails_app/config/environment.rb
362
+ - spec/rails_app/config/environments/development.rb
363
+ - spec/rails_app/config/environments/production.rb
364
+ - spec/rails_app/config/environments/test.rb
365
+ - spec/rails_app/config/initializers/backtrace_silencers.rb
366
+ - spec/rails_app/config/initializers/devise.rb
367
+ - spec/rails_app/config/initializers/inflections.rb
368
+ - spec/rails_app/config/initializers/mime_types.rb
369
+ - spec/rails_app/config/initializers/secret_token.rb
370
+ - spec/rails_app/config/initializers/session_store.rb
371
+ - spec/rails_app/config/initializers/wrap_parameters.rb
372
+ - spec/rails_app/config/locales/devise.en.yml
373
+ - spec/rails_app/config/locales/en.yml
374
+ - spec/rails_app/config/routes.rb
375
+ - spec/rails_app/db/migrate/20120627042556_devise_create_admins.rb
376
+ - spec/rails_app/db/schema.rb
377
+ - spec/rails_app/db/seeds.rb
378
+ - spec/rails_app/lib/assets/.gitkeep
379
+ - spec/rails_app/lib/tasks/.gitkeep
380
+ - spec/rails_app/public/404.html
381
+ - spec/rails_app/public/422.html
382
+ - spec/rails_app/public/500.html
383
+ - spec/rails_app/public/favicon.ico
384
+ - spec/rails_app/public/robots.txt
385
+ - spec/rails_app/script/rails
386
+ - spec/spec_helper.rb
387
+ - spec/support/devise_helpers.rb
388
+ - spec/support/generator_helpers.rb
389
+ - spec/support/radius_helpers.rb