devise_password_sharing_extension 0.0.13 → 0.0.14

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6782c1a303c8ac25e05dc3f385783ca076b72b78
4
+ data.tar.gz: 189356f3f553182673115e0152204c5a3d2497d6
5
+ SHA512:
6
+ metadata.gz: 3ef9aa78d831dcdb916b6236cabc80520e1de9cc9779f0a2d8748480892e184504d01d8e160e26f537b8d6c253fd2365df65a7490f42d2a4e33a0a7214f55c68
7
+ data.tar.gz: 976f54777a6abce88fdadf53669cee9dcf025a1eb2f6c90978bda875c350c473be7135c2953dabed8b521ea76ec4c4c347b9dd37d42a11b8998ae3364fd099ba
@@ -2,11 +2,15 @@ require 'geoip'
2
2
  require 'devise'
3
3
  require 'devise_password_sharing_extension/schema'
4
4
  require 'devise_password_sharing_extension/rails'
5
+ # require 'devise_password_sharing_extension/resque_job'
5
6
 
6
7
  module Devise
7
8
  mattr_accessor :enable_banning
8
9
  @@enable_banning = true
9
10
 
11
+ mattr_accessor :banning_handler
12
+ @@banning_handler = nil
13
+
10
14
  mattr_accessor :geoip_database
11
15
  @@geoip_database = '/var/tmp/geoip.dat'
12
16
 
@@ -17,4 +21,4 @@ module Devise
17
21
  @@number_of_cities = 10
18
22
  end
19
23
 
20
- Devise.add_module(:password_sharing, :model => 'devise_password_sharing_extension/models/password_sharing')
24
+ Devise.add_module(:password_sharing, model: 'devise_password_sharing_extension/models/password_sharing')
@@ -1,12 +1,15 @@
1
- Warden::Manager.after_set_user(:except => :fetch) do |record, warden, options|
1
+ Warden::Manager.after_set_user(except: :fetch) do |record, warden, options|
2
2
  if record.respond_to?(:password_sharing?) && warden.authenticated?(options[:scope])
3
- record.create_login_event!(warden.request)
4
-
5
- if record.password_sharing?
6
- record.ban_for_password_sharing!
7
- scope = options[:scope]
8
- warden.logout(scope)
9
- throw :warden, :scope => scope, :message => 'Account banned for password sharing.'
3
+ if handler = Devise.banning_handler
4
+ handler.call(record, warden.request.remote_ip)
5
+ else
6
+ record.create_login_event!(warden.request.remote_ip)
7
+ if record.password_sharing?
8
+ record.ban_for_password_sharing!
9
+ scope = options[:scope]
10
+ warden.logout(scope)
11
+ throw :warden, :scope => scope, :message => 'Account banned for password sharing.'
12
+ end
10
13
  end
11
14
  end
12
15
  end
@@ -7,6 +7,7 @@ module Devise
7
7
 
8
8
  module ClassMethods
9
9
  Devise::Models.config(self, :enable_banning)
10
+ Devise::Models.config(self, :banning_handler)
10
11
  Devise::Models.config(self, :geoip_database)
11
12
  Devise::Models.config(self, :time_frame)
12
13
  Devise::Models.config(self, :number_of_cities)
@@ -19,18 +20,18 @@ module Devise
19
20
  @@white_listed_ips = YAML::load(File.read(Rails.root.join('config', 'white_listed_ips.yml')))
20
21
  end
21
22
 
22
- def create_login_event!(request)
23
- unless @@white_listed_ips.include?(request.remote_ip)
23
+ def create_login_event!(remote_ip)
24
+ unless @@white_listed_ips.include?(remote_ip)
24
25
  database = GeoIP.new(self.class.geoip_database)
25
- if geo = database.city(request.remote_ip)
26
+ if geo = database.city(remote_ip)
26
27
  begin
27
28
  login_events.create!(
28
- :ip_address => request.remote_ip,
29
- :latitude => geo.latitude,
30
- :longitude => geo.longitude,
31
- :city => geo.city_name.encode('US-ASCII', :undef => :replace),
32
- :country_code => geo.country_code2.encode('US-ASCII', :undef => :replace),
33
- :region_name => geo.region_name.encode('US-ASCII', :undef => :replace))
29
+ ip_address: remote_ip,
30
+ latitude: geo.latitude,
31
+ longitude: geo.longitude,
32
+ city: geo.city_name.encode('US-ASCII', undef: :replace),
33
+ country_code: geo.country_code2.encode('US-ASCII', undef: :replace),
34
+ region_name: geo.region_name.encode('US-ASCII', undef: :replace))
34
35
  rescue ActiveRecord::RecordInvalid => e
35
36
  # Just move on and be nice.
36
37
  Rails.logger.info("Problem with geo: #{geo.inspect}")
@@ -42,7 +43,7 @@ module Devise
42
43
  def ban_for_password_sharing!
43
44
  return unless self.class.enable_banning
44
45
  self.banned_for_password_sharing_at = Time.now
45
- save(:validate => false)
46
+ save(validate: false)
46
47
  end
47
48
 
48
49
  def password_sharing?
@@ -1,3 +1,3 @@
1
1
  module DevisePasswordSharingExtension
2
- VERSION = '0.0.13'
2
+ VERSION = '0.0.14'
3
3
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise_password_sharing_extension
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.13
5
- prerelease:
4
+ version: 0.0.14
6
5
  platform: ruby
7
6
  authors:
8
7
  - Russ Smith
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-08-07 00:00:00.000000000 Z
11
+ date: 2014-09-09 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,39 +27,34 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rails
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: 3.0.0
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: 3.0.0
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: devise
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: 2.0.0
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: 2.0.0
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: geoip
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ~>
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ~>
76
67
  - !ruby/object:Gem::Version
@@ -98,6 +89,7 @@ files:
98
89
  - README.rdoc
99
90
  homepage: https://github.com/russ/devise_password_sharing_extension
100
91
  licenses: []
92
+ metadata: {}
101
93
  post_install_message:
102
94
  rdoc_options:
103
95
  - --main
@@ -106,21 +98,20 @@ rdoc_options:
106
98
  require_paths:
107
99
  - lib
108
100
  required_ruby_version: !ruby/object:Gem::Requirement
109
- none: false
110
101
  requirements:
111
- - - ! '>='
102
+ - - '>='
112
103
  - !ruby/object:Gem::Version
113
104
  version: 1.8.6
114
105
  required_rubygems_version: !ruby/object:Gem::Requirement
115
- none: false
116
106
  requirements:
117
- - - ! '>='
107
+ - - '>='
118
108
  - !ruby/object:Gem::Version
119
109
  version: 1.3.6
120
110
  requirements: []
121
111
  rubyforge_project:
122
- rubygems_version: 1.8.23
112
+ rubygems_version: 2.0.3
123
113
  signing_key:
124
- specification_version: 3
114
+ specification_version: 4
125
115
  summary: A devise extension to curb password sharing.
126
116
  test_files: []
117
+ has_rdoc: