devise_password_sharing_extension 0.0.1

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.
Files changed (62) hide show
  1. data/.document +5 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +17 -0
  4. data/Gemfile.lock +163 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.rdoc +33 -0
  7. data/Rakefile +42 -0
  8. data/VERSION +1 -0
  9. data/app/models/login_event.rb +15 -0
  10. data/devise_password_sharing_extension.gemspec +166 -0
  11. data/lib/devise_password_sharing_extension.rb +20 -0
  12. data/lib/devise_password_sharing_extension/hooks/password_sharing.rb +12 -0
  13. data/lib/devise_password_sharing_extension/models/password_sharing.rb +51 -0
  14. data/lib/devise_password_sharing_extension/rails.rb +4 -0
  15. data/lib/devise_password_sharing_extension/schema.rb +9 -0
  16. data/lib/devise_password_sharing_extension/version.rb +3 -0
  17. data/lib/generators/active_record/devise_password_sharing_extension_generator.rb +14 -0
  18. data/lib/generators/active_record/templates/migration.rb +26 -0
  19. data/lib/generators/devise_password_sharing_extension/devise_password_sharing_extension_generator.rb +16 -0
  20. data/lib/generators/devise_password_sharing_extension/install_generator.rb +23 -0
  21. data/lib/generators/devise_password_sharing_extension/templates/white_listed_ips.yml +1 -0
  22. data/spec/models/login_event_spec.rb +10 -0
  23. data/spec/models/password_sharing_spec.rb +54 -0
  24. data/spec/orm/active_record.rb +3 -0
  25. data/spec/rails_app/.gitignore +5 -0
  26. data/spec/rails_app/app/assets/images/rails.png +0 -0
  27. data/spec/rails_app/app/assets/javascripts/application.js +9 -0
  28. data/spec/rails_app/app/assets/stylesheets/application.css +7 -0
  29. data/spec/rails_app/app/controllers/application_controller.rb +3 -0
  30. data/spec/rails_app/app/controllers/home_controller.rb +9 -0
  31. data/spec/rails_app/app/helpers/application_helper.rb +2 -0
  32. data/spec/rails_app/app/mailers/.gitkeep +0 -0
  33. data/spec/rails_app/app/models/user.rb +7 -0
  34. data/spec/rails_app/app/views/home/index.html.erb +1 -0
  35. data/spec/rails_app/app/views/home/secure.html.erb +1 -0
  36. data/spec/rails_app/app/views/layouts/application.html.erb +14 -0
  37. data/spec/rails_app/config.ru +4 -0
  38. data/spec/rails_app/config/application.rb +19 -0
  39. data/spec/rails_app/config/boot.rb +6 -0
  40. data/spec/rails_app/config/database.yml +22 -0
  41. data/spec/rails_app/config/environment.rb +5 -0
  42. data/spec/rails_app/config/environments/development.rb +30 -0
  43. data/spec/rails_app/config/environments/production.rb +60 -0
  44. data/spec/rails_app/config/environments/test.rb +39 -0
  45. data/spec/rails_app/config/initializers/backtrace_silencers.rb +7 -0
  46. data/spec/rails_app/config/initializers/devise.rb +184 -0
  47. data/spec/rails_app/config/initializers/inflections.rb +10 -0
  48. data/spec/rails_app/config/initializers/mime_types.rb +5 -0
  49. data/spec/rails_app/config/initializers/secret_token.rb +7 -0
  50. data/spec/rails_app/config/initializers/session_store.rb +8 -0
  51. data/spec/rails_app/config/initializers/wrap_parameters.rb +14 -0
  52. data/spec/rails_app/config/locales/en.yml +5 -0
  53. data/spec/rails_app/config/mongoid.yml +12 -0
  54. data/spec/rails_app/config/routes.rb +5 -0
  55. data/spec/rails_app/config/white_listed_ips.yml +1 -0
  56. data/spec/rails_app/db/migrate/20111019173200_create_tables.rb +29 -0
  57. data/spec/rails_app/db/seeds.rb +7 -0
  58. data/spec/rails_app/script/rails +6 -0
  59. data/spec/request_spec.rb +49 -0
  60. data/spec/spec_helper.rb +25 -0
  61. data/spec/support/fixtures.rb +32 -0
  62. metadata +361 -0
@@ -0,0 +1,25 @@
1
+ ENV["RAILS_ENV"] = "test"
2
+
3
+ $:.unshift File.dirname(__FILE__)
4
+
5
+ require 'rails_app/config/environment'
6
+ require 'orm/active_record'
7
+ require 'rails/test_help'
8
+ require 'rspec'
9
+ require 'shoulda'
10
+ require 'capybara/rails'
11
+ require 'capybara/rspec'
12
+
13
+ # Requires supporting files with custom matchers and macros, etc,
14
+ # in ./support/ and its subdirectories.
15
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
16
+
17
+ RSpec.configure do |config|
18
+ config.filter_run :focus => true
19
+ config.run_all_when_everything_filtered = true
20
+
21
+ config.before(:each) do
22
+ User.destroy_all
23
+ LoginEvent.destroy_all
24
+ end
25
+ end
@@ -0,0 +1,32 @@
1
+ class Request < Struct.new(:remote_ip); end
2
+
3
+ def mock_geo_database(attributes = {})
4
+ attributes[:latitude] ||= 0.0
5
+ attributes[:longitude] ||= 0.0
6
+ attributes[:city] ||= 'City'
7
+ attributes[:country_code] ||= 'USA'
8
+ attributes[:region_name] ||= 'NV'
9
+
10
+ geo_database_mock, geo_mock = mock('GeoIP'), mock('Geo')
11
+
12
+ geo_mock.stub(:latitude).and_return(attributes[:latitude])
13
+ geo_mock.stub(:longitude).and_return(attributes[:longitude])
14
+ geo_mock.stub(:city_name).and_return(attributes[:city])
15
+ geo_mock.stub(:country_code2).and_return(attributes[:country_code])
16
+ geo_mock.stub(:region_name).and_return(attributes[:region_name])
17
+
18
+ geo_database_mock.stub(:city).and_return(geo_mock)
19
+ GeoIP.stub(:new).and_return(geo_database_mock)
20
+ end
21
+
22
+ def request_fixture(remote_ip = '192.168.1.1')
23
+ Request.new(remote_ip)
24
+ end
25
+
26
+ def user_fixture(attributes = {})
27
+ User.create!(
28
+ { :username => 'test',
29
+ :email => 'test@test.com',
30
+ :password => 'password',
31
+ :password_confirmation => 'password' }.merge(attributes))
32
+ end
metadata ADDED
@@ -0,0 +1,361 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: devise_password_sharing_extension
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Russ Smith
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-10-25 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: devise_password_sharing_extension
16
+ requirement: &70130545964920 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70130545964920
25
+ - !ruby/object:Gem::Dependency
26
+ name: sqlite3
27
+ requirement: &70130545964440 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70130545964440
36
+ - !ruby/object:Gem::Dependency
37
+ name: mongoid
38
+ requirement: &70130545963940 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: '2.0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70130545963940
47
+ - !ruby/object:Gem::Dependency
48
+ name: bson_ext
49
+ requirement: &70130545963460 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70130545963460
58
+ - !ruby/object:Gem::Dependency
59
+ name: rake
60
+ requirement: &70130545962980 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - =
64
+ - !ruby/object:Gem::Version
65
+ version: 0.8.7
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70130545962980
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: &70130545962500 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: 2.3.0
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70130545962500
80
+ - !ruby/object:Gem::Dependency
81
+ name: bundler
82
+ requirement: &70130545962020 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ version: 1.0.0
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *70130545962020
91
+ - !ruby/object:Gem::Dependency
92
+ name: jeweler
93
+ requirement: &70130545961540 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ~>
97
+ - !ruby/object:Gem::Version
98
+ version: 1.6.4
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *70130545961540
102
+ - !ruby/object:Gem::Dependency
103
+ name: rcov
104
+ requirement: &70130545961060 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: *70130545961060
113
+ - !ruby/object:Gem::Dependency
114
+ name: shoulda
115
+ requirement: &70130545960580 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ~>
119
+ - !ruby/object:Gem::Version
120
+ version: 2.11.3
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: *70130545960580
124
+ - !ruby/object:Gem::Dependency
125
+ name: capybara
126
+ requirement: &70130545960100 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: 1.1.1
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: *70130545960100
135
+ - !ruby/object:Gem::Dependency
136
+ name: launchy
137
+ requirement: &70130545959620 !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ type: :development
144
+ prerelease: false
145
+ version_requirements: *70130545959620
146
+ - !ruby/object:Gem::Dependency
147
+ name: sqlite3
148
+ requirement: &70130545944520 !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: *70130545944520
157
+ - !ruby/object:Gem::Dependency
158
+ name: mongoid
159
+ requirement: &70130545943980 !ruby/object:Gem::Requirement
160
+ none: false
161
+ requirements:
162
+ - - ~>
163
+ - !ruby/object:Gem::Version
164
+ version: '2.0'
165
+ type: :development
166
+ prerelease: false
167
+ version_requirements: *70130545943980
168
+ - !ruby/object:Gem::Dependency
169
+ name: bson_ext
170
+ requirement: &70130545943480 !ruby/object:Gem::Requirement
171
+ none: false
172
+ requirements:
173
+ - - ~>
174
+ - !ruby/object:Gem::Version
175
+ version: '1.3'
176
+ type: :development
177
+ prerelease: false
178
+ version_requirements: *70130545943480
179
+ - !ruby/object:Gem::Dependency
180
+ name: rake
181
+ requirement: &70130545942820 !ruby/object:Gem::Requirement
182
+ none: false
183
+ requirements:
184
+ - - =
185
+ - !ruby/object:Gem::Version
186
+ version: 0.8.7
187
+ type: :development
188
+ prerelease: false
189
+ version_requirements: *70130545942820
190
+ - !ruby/object:Gem::Dependency
191
+ name: rspec
192
+ requirement: &70130545942340 !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ~>
196
+ - !ruby/object:Gem::Version
197
+ version: 2.3.0
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: *70130545942340
201
+ - !ruby/object:Gem::Dependency
202
+ name: bundler
203
+ requirement: &70130545941820 !ruby/object:Gem::Requirement
204
+ none: false
205
+ requirements:
206
+ - - ~>
207
+ - !ruby/object:Gem::Version
208
+ version: 1.0.0
209
+ type: :development
210
+ prerelease: false
211
+ version_requirements: *70130545941820
212
+ - !ruby/object:Gem::Dependency
213
+ name: jeweler
214
+ requirement: &70130545941320 !ruby/object:Gem::Requirement
215
+ none: false
216
+ requirements:
217
+ - - ~>
218
+ - !ruby/object:Gem::Version
219
+ version: 1.6.4
220
+ type: :development
221
+ prerelease: false
222
+ version_requirements: *70130545941320
223
+ - !ruby/object:Gem::Dependency
224
+ name: rcov
225
+ requirement: &70130545940800 !ruby/object:Gem::Requirement
226
+ none: false
227
+ requirements:
228
+ - - ! '>='
229
+ - !ruby/object:Gem::Version
230
+ version: '0'
231
+ type: :development
232
+ prerelease: false
233
+ version_requirements: *70130545940800
234
+ - !ruby/object:Gem::Dependency
235
+ name: shoulda
236
+ requirement: &70130545940240 !ruby/object:Gem::Requirement
237
+ none: false
238
+ requirements:
239
+ - - ~>
240
+ - !ruby/object:Gem::Version
241
+ version: 2.11.3
242
+ type: :development
243
+ prerelease: false
244
+ version_requirements: *70130545940240
245
+ - !ruby/object:Gem::Dependency
246
+ name: capybara
247
+ requirement: &70130545939680 !ruby/object:Gem::Requirement
248
+ none: false
249
+ requirements:
250
+ - - ~>
251
+ - !ruby/object:Gem::Version
252
+ version: 1.1.1
253
+ type: :development
254
+ prerelease: false
255
+ version_requirements: *70130545939680
256
+ - !ruby/object:Gem::Dependency
257
+ name: launchy
258
+ requirement: &70130545939180 !ruby/object:Gem::Requirement
259
+ none: false
260
+ requirements:
261
+ - - ! '>='
262
+ - !ruby/object:Gem::Version
263
+ version: '0'
264
+ type: :development
265
+ prerelease: false
266
+ version_requirements: *70130545939180
267
+ description: Devise extension to curb password sharing.
268
+ email: russ@bashme.org
269
+ executables: []
270
+ extensions: []
271
+ extra_rdoc_files:
272
+ - LICENSE.txt
273
+ - README.rdoc
274
+ files:
275
+ - .document
276
+ - .rspec
277
+ - Gemfile
278
+ - Gemfile.lock
279
+ - LICENSE.txt
280
+ - README.rdoc
281
+ - Rakefile
282
+ - VERSION
283
+ - app/models/login_event.rb
284
+ - devise_password_sharing_extension.gemspec
285
+ - lib/devise_password_sharing_extension.rb
286
+ - lib/devise_password_sharing_extension/hooks/password_sharing.rb
287
+ - lib/devise_password_sharing_extension/models/password_sharing.rb
288
+ - lib/devise_password_sharing_extension/rails.rb
289
+ - lib/devise_password_sharing_extension/schema.rb
290
+ - lib/devise_password_sharing_extension/version.rb
291
+ - lib/generators/active_record/devise_password_sharing_extension_generator.rb
292
+ - lib/generators/active_record/templates/migration.rb
293
+ - lib/generators/devise_password_sharing_extension/devise_password_sharing_extension_generator.rb
294
+ - lib/generators/devise_password_sharing_extension/install_generator.rb
295
+ - lib/generators/devise_password_sharing_extension/templates/white_listed_ips.yml
296
+ - spec/models/login_event_spec.rb
297
+ - spec/models/password_sharing_spec.rb
298
+ - spec/orm/active_record.rb
299
+ - spec/rails_app/.gitignore
300
+ - spec/rails_app/app/assets/images/rails.png
301
+ - spec/rails_app/app/assets/javascripts/application.js
302
+ - spec/rails_app/app/assets/stylesheets/application.css
303
+ - spec/rails_app/app/controllers/application_controller.rb
304
+ - spec/rails_app/app/controllers/home_controller.rb
305
+ - spec/rails_app/app/helpers/application_helper.rb
306
+ - spec/rails_app/app/mailers/.gitkeep
307
+ - spec/rails_app/app/models/user.rb
308
+ - spec/rails_app/app/views/home/index.html.erb
309
+ - spec/rails_app/app/views/home/secure.html.erb
310
+ - spec/rails_app/app/views/layouts/application.html.erb
311
+ - spec/rails_app/config.ru
312
+ - spec/rails_app/config/application.rb
313
+ - spec/rails_app/config/boot.rb
314
+ - spec/rails_app/config/database.yml
315
+ - spec/rails_app/config/environment.rb
316
+ - spec/rails_app/config/environments/development.rb
317
+ - spec/rails_app/config/environments/production.rb
318
+ - spec/rails_app/config/environments/test.rb
319
+ - spec/rails_app/config/initializers/backtrace_silencers.rb
320
+ - spec/rails_app/config/initializers/devise.rb
321
+ - spec/rails_app/config/initializers/inflections.rb
322
+ - spec/rails_app/config/initializers/mime_types.rb
323
+ - spec/rails_app/config/initializers/secret_token.rb
324
+ - spec/rails_app/config/initializers/session_store.rb
325
+ - spec/rails_app/config/initializers/wrap_parameters.rb
326
+ - spec/rails_app/config/locales/en.yml
327
+ - spec/rails_app/config/mongoid.yml
328
+ - spec/rails_app/config/routes.rb
329
+ - spec/rails_app/config/white_listed_ips.yml
330
+ - spec/rails_app/db/migrate/20111019173200_create_tables.rb
331
+ - spec/rails_app/db/seeds.rb
332
+ - spec/rails_app/script/rails
333
+ - spec/request_spec.rb
334
+ - spec/spec_helper.rb
335
+ - spec/support/fixtures.rb
336
+ homepage: http://github.com/russ/devise_password_sharing_extension
337
+ licenses:
338
+ - MIT
339
+ post_install_message:
340
+ rdoc_options: []
341
+ require_paths:
342
+ - lib
343
+ required_ruby_version: !ruby/object:Gem::Requirement
344
+ none: false
345
+ requirements:
346
+ - - ! '>='
347
+ - !ruby/object:Gem::Version
348
+ version: '0'
349
+ required_rubygems_version: !ruby/object:Gem::Requirement
350
+ none: false
351
+ requirements:
352
+ - - ! '>='
353
+ - !ruby/object:Gem::Version
354
+ version: '0'
355
+ requirements: []
356
+ rubyforge_project:
357
+ rubygems_version: 1.8.10
358
+ signing_key:
359
+ specification_version: 3
360
+ summary: Devise extension to curb password sharing.
361
+ test_files: []