devise-security 0.11.0 → 0.11.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b562461dba8b930f89dd68682f11d354a83f7a28
4
- data.tar.gz: ffbac7216ea17728e7d483e846e63bfe773bbd8a
3
+ metadata.gz: 34e1123d37456a09b6554cde544c4e49c796447f
4
+ data.tar.gz: d3cc451de684f054e4404e9ce3d8a7a47ccc9b46
5
5
  SHA512:
6
- metadata.gz: 6031c3ac9f30e9d09501d90d2f263a2600f4919dd79f0b99275b2be4a93732b8a5eddbadf6c95e6a9ba117932cfaba5357cdeb0036b34b2810909f2536eb269b
7
- data.tar.gz: cd0a3386d268be89049f2fef0edf39b768d2b31b81335e79771d22b56c3575e34f23444b51a42006e0540b272df0602c323d35e60e31d06f1d916902633ae0a1
6
+ metadata.gz: 8f5c352c7234af43ab916d1b741799460289e96c843f9d90696f7bd8c2cc7b709009fbaf35ff61e99886c646941e2c186db43988f3ed64915ea7e80e491738a9
7
+ data.tar.gz: bcfff1037167e404e0998a225115713443675adfff7c3c13fa77a75611106286c1b33654ee3ec69280db693cbc4d234fa9b209377a8d1b38bd0441888ab98df3
data/.gitignore CHANGED
@@ -36,3 +36,4 @@ pkg
36
36
  log
37
37
  test/tmp/*
38
38
  *.gem
39
+ Gemfile.lock
@@ -1,4 +1,5 @@
1
1
  AllCops:
2
+ TargetRubyVersion: 2.2
2
3
  Include:
3
4
  - '**/Rakefile'
4
5
  - '**/config.ru'
@@ -0,0 +1 @@
1
+ 2.2.8
@@ -4,10 +4,9 @@ install: bundle install --jobs=3 --retry=3
4
4
  before_script: bundle install
5
5
  script: bundle exec rake
6
6
  rvm:
7
- - 2.1.8
8
- - 2.2.4
9
- - 2.3.4
10
- - 2.4.1
7
+ - 2.2.8
8
+ - 2.3.5
9
+ - 2.4.2
11
10
  - ruby-head
12
11
  matrix:
13
12
  allow_failures:
data/README.md CHANGED
@@ -22,7 +22,7 @@ Configuration and database schema for each module below.
22
22
 
23
23
  ## Getting started
24
24
 
25
- Devise Security Extension works with Devise on Rails 3.2 onwards. You can add it to your Gemfile after you successfully set up Devise (see [Devise documentation](https://github.com/plataformatec/devise)) with:
25
+ Devise Security works with Devise on Rails 3.2 onwards. You can add it to your Gemfile after you successfully set up Devise (see [Devise documentation](https://github.com/plataformatec/devise)) with:
26
26
 
27
27
  ```ruby
28
28
  gem 'devise-security'
@@ -30,14 +30,14 @@ gem 'devise-security'
30
30
 
31
31
  Run the bundle command to install it.
32
32
 
33
- After you installed Devise Security Extension you need to run the generator:
33
+ After you installed Devise Security you need to run the generator:
34
34
 
35
35
  ```console
36
- rails generate devise-security:install
36
+ rails generate devise_security:install
37
37
  ```
38
38
 
39
- The generator adds optional configurations to `config/initializers/devise.rb`. Enable
40
- the modules you wish to use in the initializer you are ready to add Devise Security Extension modules on top of Devise modules to any of your Devise models:
39
+ The generator adds optional configurations to `config/initializers/devise-security.rb`. Enable
40
+ the modules you wish to use in the initializer you are ready to add Devise Security modules on top of Devise modules to any of your Devise models:
41
41
 
42
42
  ```ruby
43
43
  devise :password_expirable, :secure_validatable, :password_archivable, :session_limitable, :expirable
@@ -111,7 +111,7 @@ gem 'easy_captcha'
111
111
  ```ruby
112
112
  rails generate easy_captcha:install
113
113
  ```
114
- 3. Enable captcha - see "Configuration" of Devise Security Extension above.
114
+ 3. Enable captcha - see "Configuration" of Devise Security above.
115
115
  4. Add the captcha in the generated devise views for each controller you have activated
116
116
  ```erb
117
117
  <p><%= captcha_tag %></p>
@@ -3,7 +3,7 @@ $LOAD_PATH.unshift(File.expand_path('../lib', __FILE__))
3
3
  require 'devise-security/version'
4
4
 
5
5
  Gem::Specification.new do |s|
6
- s.name = 'devise-security'
6
+ s.name = 'devise-security'
7
7
  s.version = DeviseSecurity::VERSION.dup
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.licenses = ['MIT']
@@ -11,24 +11,28 @@ Gem::Specification.new do |s|
11
11
  s.email = 'natebird@gmail.com'
12
12
  s.homepage = 'https://github.com/devise-security/devise-security'
13
13
  s.description = 'An enterprise security extension for devise, trying to meet industrial standard security demands for web applications.'
14
- s.authors = ['Marco Scholl', 'Alexander Dreher', 'Nate Bird']
14
+ s.authors = [
15
+ 'Marco Scholl', 'Alexander Dreher', 'Nate Bird', 'Dillon Welch'
16
+ ]
15
17
 
16
18
  s.files = `git ls-files`.split("\n")
17
19
  s.test_files = `git ls-files -- test/*`.split("\n")
18
20
  s.require_paths = ['lib']
19
- s.required_ruby_version = '>= 2.1.0'
21
+ s.required_ruby_version = '>= 2.2.2'
20
22
 
21
23
  if RUBY_VERSION >= '2.4'
22
24
  s.add_runtime_dependency 'rails', '>= 4.2.8', '< 6.0'
23
25
  else
24
26
  s.add_runtime_dependency 'railties', '>= 3.2.6', '< 6.0'
25
27
  end
26
- s.add_runtime_dependency 'devise', '>= 3.0.0', '< 5.0'
28
+ s.add_runtime_dependency 'devise', '>= 4.2.0', '< 5.0'
29
+
27
30
  s.add_development_dependency 'bundler', '>= 1.3.0', '< 2.0'
28
- s.add_development_dependency 'sqlite3', '~> 1.3', '>= 1.3.10'
29
- s.add_development_dependency 'rubocop', '~> 0'
30
- s.add_development_dependency 'minitest', '~> 5.0'
31
+ s.add_development_dependency 'coveralls', '~> 0.8'
31
32
  s.add_development_dependency 'easy_captcha', '~> 0'
33
+ s.add_development_dependency 'm'
34
+ s.add_development_dependency 'minitest', '~> 5.0'
32
35
  s.add_development_dependency 'rails_email_validator', '~> 0'
33
- s.add_development_dependency 'coveralls', '~> 0.8'
36
+ s.add_development_dependency 'rubocop', '~> 0'
37
+ s.add_development_dependency 'sqlite3', '~> 1.3', '>= 1.3.10'
34
38
  end
@@ -21,6 +21,21 @@ module DeviseSecurity
21
21
  end
22
22
  end
23
23
 
24
+ def valid_captcha_or_security_question?(resource, params)
25
+ valid_captcha_if_defined?(params[:captcha]) ||
26
+ valid_security_question_answer?(resource, params[:security_question_answer])
27
+ end
28
+
29
+ def valid_captcha_if_defined?(captcha)
30
+ defined?(verify_recaptcha) && verify_recaptcha ||
31
+ defined?(valid_captcha?) && valid_captcha?(captcha)
32
+ end
33
+
34
+ def valid_security_question_answer?(resource, answer)
35
+ resource.security_question_answer.present? &&
36
+ resource.security_question_answer == answer
37
+ end
38
+
24
39
  # controller instance methods
25
40
 
26
41
  private
@@ -29,9 +44,9 @@ module DeviseSecurity
29
44
  def handle_password_change
30
45
  return if warden.nil?
31
46
 
32
- if not devise_controller? and not ignore_password_expire? and not request.format.nil? and request.format.html?
47
+ if !devise_controller? && !ignore_password_expire? && !request.format.nil? && request.format.html?
33
48
  Devise.mappings.keys.flatten.any? do |scope|
34
- if signed_in?(scope) and warden.session(scope)['password_expired']
49
+ if signed_in?(scope) && warden.session(scope)['password_expired']
35
50
  # re-check to avoid infinite loop if date changed after login attempt
36
51
  if send(:"current_#{scope}").try(:need_change_password?)
37
52
  store_location_for(scope, request.original_fullpath) if request.get?
@@ -88,9 +103,6 @@ module DeviseSecurity
88
103
  def ignore_password_expire?
89
104
  false
90
105
  end
91
-
92
-
93
106
  end
94
107
  end
95
-
96
108
  end
@@ -11,20 +11,20 @@ module Devise
11
11
  end
12
12
 
13
13
  def validate_password_archive
14
- errors.add(:password, :taken_in_past) if encrypted_password_changed? and password_archive_included?
14
+ errors.add(:password, :taken_in_past) if encrypted_password_changed? && password_archive_included?
15
15
  end
16
16
 
17
17
  # validate is the password used in the past
18
18
  def password_archive_included?
19
19
  unless deny_old_passwords.is_a? 1.class
20
- if deny_old_passwords.is_a? TrueClass and archive_count > 0
20
+ if deny_old_passwords.is_a?(TrueClass) && archive_count > 0
21
21
  self.deny_old_passwords = archive_count
22
22
  else
23
23
  self.deny_old_passwords = 0
24
24
  end
25
25
  end
26
26
 
27
- if self.class.deny_old_passwords > 0 and not self.password.nil?
27
+ if self.class.deny_old_passwords > 0 && !self.password.nil?
28
28
  old_passwords_including_cur_change = self.old_passwords.order(:id).reverse_order.limit(self.class.deny_old_passwords).to_a
29
29
  old_passwords_including_cur_change << OldPassword.new(old_password_params) # include most recent change in list, but don't save it yet!
30
30
  old_passwords_including_cur_change.each do |old_password|
@@ -14,7 +14,7 @@ module Devise
14
14
  # is an password change required?
15
15
  def need_change_password?
16
16
  if expired_password_after_numeric?
17
- self.password_changed_at.nil? or self.password_changed_at < self.expire_password_after.seconds.ago
17
+ self.password_changed_at.nil? || self.password_changed_at < self.expire_password_after.seconds.ago
18
18
  else
19
19
  false
20
20
  end
@@ -48,7 +48,7 @@ module Devise
48
48
 
49
49
  # is password changed then update password_cahanged_at
50
50
  def update_password_changed
51
- self.password_changed_at = Time.now if (self.new_record? or self.encrypted_password_changed?) and not self.password_changed_at_changed?
51
+ self.password_changed_at = Time.now if (self.new_record? || self.encrypted_password_changed?) && !self.password_changed_at_changed?
52
52
  end
53
53
 
54
54
  def expired_password_after_numeric?
@@ -55,10 +55,10 @@ module Devise
55
55
  end
56
56
 
57
57
  def current_equal_password_validation
58
- if not self.new_record? and not self.encrypted_password_change.nil?
58
+ if !self.new_record? && !self.encrypted_password_change.nil?
59
59
  dummy = self.class.new
60
60
  dummy.encrypted_password = self.encrypted_password_change.first
61
- dummy.password_salt = self.password_salt_change.first if self.respond_to? :password_salt_change and not self.password_salt_change.nil?
61
+ dummy.password_salt = self.password_salt_change.first if self.respond_to?(:password_salt_change) && !self.password_salt_change.nil?
62
62
  self.errors.add(:password, :equal_to_current_password) if dummy.valid_password?(self.password)
63
63
  end
64
64
  end
@@ -3,7 +3,7 @@ module DeviseSecurity::Patches
3
3
  extend ActiveSupport::Concern
4
4
  included do
5
5
  define_method :create do
6
- if ((defined? verify_recaptcha) && (verify_recaptcha)) or ((defined? valid_captcha?) && (valid_captcha? params[:captcha]))
6
+ if valid_captcha_if_defined?(params[:captcha])
7
7
  self.resource = resource_class.send_confirmation_instructions(params[resource_name])
8
8
 
9
9
  if successfully_sent?(resource)
@@ -6,8 +6,7 @@ module DeviseSecurity::Patches
6
6
  # only find via email, not login
7
7
  resource = resource_class.find_or_initialize_with_error_by(:email, params[resource_name][:email], :not_found)
8
8
 
9
- if ((defined? verify_recaptcha) && (verify_recaptcha)) or ((defined? valid_captcha?) && (valid_captcha? params[:captcha])) or
10
- (resource.security_question_answer.present? and resource.security_question_answer == params[:security_question_answer])
9
+ if valid_captcha_or_security_question?(resource, params)
11
10
  self.resource = resource_class.send_confirmation_instructions(params[resource_name])
12
11
 
13
12
  if successfully_sent?(resource)
@@ -7,8 +7,9 @@ module DeviseSecurity::Patches
7
7
  end
8
8
 
9
9
  private
10
+
10
11
  def check_captcha
11
- return if ((defined? verify_recaptcha) && (verify_recaptcha)) || ((defined? valid_captcha?) && (valid_captcha? params[:captcha]))
12
+ return if valid_captcha_if_defined?(params[:captcha])
12
13
 
13
14
  flash[:alert] = t('devise.invalid_captcha') if is_navigational_format?
14
15
  respond_with({}, location: url_for(action: :new))
@@ -10,7 +10,7 @@ module DeviseSecurity::Patches
10
10
  def check_security_question
11
11
  # only find via email, not login
12
12
  resource = resource_class.find_or_initialize_with_error_by(:email, params[resource_name][:email], :not_found)
13
- return if (resource.security_question_answer.present? && resource.security_question_answer == params[:security_question_answer])
13
+ return if valid_security_question_answer?(resource, params[:security_question_answer])
14
14
 
15
15
  flash[:alert] = t('devise.invalid_security_question') if is_navigational_format?
16
16
  respond_with({}, location: url_for(action: :new))
@@ -3,7 +3,7 @@ module DeviseSecurity::Patches
3
3
  extend ActiveSupport::Concern
4
4
  included do
5
5
  define_method :create do
6
- if ((defined? verify_recaptcha) && (verify_recaptcha)) or ((defined? valid_captcha?) && (valid_captcha? params[:captcha]))
6
+ if valid_captcha_if_defined?(params[:captcha])
7
7
  self.resource = resource_class.send_reset_password_instructions(params[resource_name])
8
8
  if successfully_sent?(resource)
9
9
  respond_with({}, :location => new_session_path(resource_name))
@@ -6,8 +6,7 @@ module DeviseSecurity::Patches
6
6
  # only find via email, not login
7
7
  resource = resource_class.find_or_initialize_with_error_by(:email, params[resource_name][:email], :not_found)
8
8
 
9
- if ((defined? verify_recaptcha) && (verify_recaptcha)) or ((defined? valid_captcha?) && (valid_captcha? params[:captcha]))
10
- (resource.security_question_answer.present? and resource.security_question_answer == params[:security_question_answer])
9
+ if valid_captcha_or_security_question?(resource, params)
11
10
  self.resource = resource_class.send_reset_password_instructions(params[resource_name])
12
11
  if successfully_sent?(resource)
13
12
  respond_with({}, :location => new_session_path(resource_name))
@@ -5,7 +5,7 @@ module DeviseSecurity::Patches
5
5
  define_method :create do |&block|
6
6
  build_resource(sign_up_params)
7
7
 
8
- if ((defined? verify_recaptcha) && (verify_recaptcha)) or ((defined? valid_captcha?) && (valid_captcha? params[:captcha]))
8
+ if valid_captcha_if_defined?(params[:captcha])
9
9
  if resource.save
10
10
  block.call(resource) if block
11
11
  if resource.active_for_authentication?
@@ -21,7 +21,7 @@ module DeviseSecurity::Patches
21
21
  clean_up_passwords resource
22
22
  respond_with resource
23
23
  end
24
-
24
+
25
25
  else
26
26
  resource.errors.add :base, t('devise.invalid_captcha')
27
27
  clean_up_passwords resource
@@ -3,7 +3,7 @@ module DeviseSecurity::Patches
3
3
  extend ActiveSupport::Concern
4
4
  included do
5
5
  define_method :create do |&block|
6
- if ((defined? verify_recaptcha) && (verify_recaptcha)) or ((defined? valid_captcha?) && (valid_captcha? params[:captcha]))
6
+ if valid_captcha_if_defined?(params[:captcha])
7
7
  self.resource = warden.authenticate!(auth_options)
8
8
  set_flash_message(:notice, :signed_in) if is_flashing_format?
9
9
  sign_in(resource_name, resource)
@@ -14,7 +14,7 @@ module DeviseSecurity::Patches
14
14
  respond_with({}, :location => new_session_path(resource_name))
15
15
  end
16
16
  end
17
-
17
+
18
18
  # for bad protected use in controller
19
19
  define_method :auth_options do
20
20
  { :scope => resource_name, :recall => "#{controller_path}#new" }
@@ -3,7 +3,7 @@ module DeviseSecurity::Patches
3
3
  extend ActiveSupport::Concern
4
4
  included do
5
5
  define_method :create do
6
- if ((defined? verify_recaptcha) && (verify_recaptcha)) or ((defined? valid_captcha?) && (valid_captcha? params[:captcha]))
6
+ if valid_captcha_if_defined?(params[:captcha])
7
7
  self.resource = resource_class.send_unlock_instructions(params[resource_name])
8
8
  if successfully_sent?(resource)
9
9
  respond_with({}, :location => new_session_path(resource_name))
@@ -6,8 +6,7 @@ module DeviseSecurity::Patches
6
6
  # only find via email, not login
7
7
  resource = resource_class.find_or_initialize_with_error_by(:email, params[resource_name][:email], :not_found)
8
8
 
9
- if ((defined? verify_recaptcha) && (verify_recaptcha)) or ((defined? valid_captcha?) && (valid_captcha? params[:captcha]))
10
- (resource.security_question_answer.present? and resource.security_question_answer == params[:security_question_answer])
9
+ if valid_captcha_or_security_question?(resource, params)
11
10
  self.resource = resource_class.send_unlock_instructions(params[resource_name])
12
11
  if successfully_sent?(resource)
13
12
  respond_with({}, :location => new_session_path(resource_name))
@@ -1,3 +1,3 @@
1
1
  module DeviseSecurity
2
- VERSION = "0.11.0".freeze
2
+ VERSION = "0.11.1".freeze
3
3
  end
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
  require 'rails/generators/test_case'
3
- require 'generators/devise-security/install_generator'
3
+ require 'generators/devise_security/install_generator'
4
4
 
5
5
  class TestInstallGenerator < Rails::Generators::TestCase
6
6
  tests DeviseSecurity::Generators::InstallGenerator
@@ -6,7 +6,7 @@ class Devise::PasswordExpiredControllerTest < ActionController::TestCase
6
6
  setup do
7
7
  @request.env["devise.mapping"] = Devise.mappings[:user]
8
8
  @user = User.create(username: 'hello', email: 'hello@path.travel',
9
- password: '1234', password_changed_at: 3.months.ago)
9
+ password: '1234', password_changed_at: 4.months.ago)
10
10
 
11
11
  sign_in(@user)
12
12
  end
metadata CHANGED
@@ -1,16 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise-security
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.11.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marco Scholl
8
8
  - Alexander Dreher
9
9
  - Nate Bird
10
+ - Dillon Welch
10
11
  autorequire:
11
12
  bindir: bin
12
13
  cert_chain: []
13
- date: 2017-10-13 00:00:00.000000000 Z
14
+ date: 2018-01-30 00:00:00.000000000 Z
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: railties
@@ -38,7 +39,7 @@ dependencies:
38
39
  requirements:
39
40
  - - ">="
40
41
  - !ruby/object:Gem::Version
41
- version: 3.0.0
42
+ version: 4.2.0
42
43
  - - "<"
43
44
  - !ruby/object:Gem::Version
44
45
  version: '5.0'
@@ -48,7 +49,7 @@ dependencies:
48
49
  requirements:
49
50
  - - ">="
50
51
  - !ruby/object:Gem::Version
51
- version: 3.0.0
52
+ version: 4.2.0
52
53
  - - "<"
53
54
  - !ruby/object:Gem::Version
54
55
  version: '5.0'
@@ -73,27 +74,21 @@ dependencies:
73
74
  - !ruby/object:Gem::Version
74
75
  version: '2.0'
75
76
  - !ruby/object:Gem::Dependency
76
- name: sqlite3
77
+ name: coveralls
77
78
  requirement: !ruby/object:Gem::Requirement
78
79
  requirements:
79
80
  - - "~>"
80
81
  - !ruby/object:Gem::Version
81
- version: '1.3'
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- version: 1.3.10
82
+ version: '0.8'
85
83
  type: :development
86
84
  prerelease: false
87
85
  version_requirements: !ruby/object:Gem::Requirement
88
86
  requirements:
89
87
  - - "~>"
90
88
  - !ruby/object:Gem::Version
91
- version: '1.3'
92
- - - ">="
93
- - !ruby/object:Gem::Version
94
- version: 1.3.10
89
+ version: '0.8'
95
90
  - !ruby/object:Gem::Dependency
96
- name: rubocop
91
+ name: easy_captcha
97
92
  requirement: !ruby/object:Gem::Requirement
98
93
  requirements:
99
94
  - - "~>"
@@ -106,6 +101,20 @@ dependencies:
106
101
  - - "~>"
107
102
  - !ruby/object:Gem::Version
108
103
  version: '0'
104
+ - !ruby/object:Gem::Dependency
105
+ name: m
106
+ requirement: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ type: :development
112
+ prerelease: false
113
+ version_requirements: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
109
118
  - !ruby/object:Gem::Dependency
110
119
  name: minitest
111
120
  requirement: !ruby/object:Gem::Requirement
@@ -121,7 +130,7 @@ dependencies:
121
130
  - !ruby/object:Gem::Version
122
131
  version: '5.0'
123
132
  - !ruby/object:Gem::Dependency
124
- name: easy_captcha
133
+ name: rails_email_validator
125
134
  requirement: !ruby/object:Gem::Requirement
126
135
  requirements:
127
136
  - - "~>"
@@ -135,7 +144,7 @@ dependencies:
135
144
  - !ruby/object:Gem::Version
136
145
  version: '0'
137
146
  - !ruby/object:Gem::Dependency
138
- name: rails_email_validator
147
+ name: rubocop
139
148
  requirement: !ruby/object:Gem::Requirement
140
149
  requirements:
141
150
  - - "~>"
@@ -149,19 +158,25 @@ dependencies:
149
158
  - !ruby/object:Gem::Version
150
159
  version: '0'
151
160
  - !ruby/object:Gem::Dependency
152
- name: coveralls
161
+ name: sqlite3
153
162
  requirement: !ruby/object:Gem::Requirement
154
163
  requirements:
155
164
  - - "~>"
156
165
  - !ruby/object:Gem::Version
157
- version: '0.8'
166
+ version: '1.3'
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: 1.3.10
158
170
  type: :development
159
171
  prerelease: false
160
172
  version_requirements: !ruby/object:Gem::Requirement
161
173
  requirements:
162
174
  - - "~>"
163
175
  - !ruby/object:Gem::Version
164
- version: '0.8'
176
+ version: '1.3'
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: 1.3.10
165
180
  description: An enterprise security extension for devise, trying to meet industrial
166
181
  standard security demands for web applications.
167
182
  email: natebird@gmail.com
@@ -172,9 +187,9 @@ files:
172
187
  - ".document"
173
188
  - ".gitignore"
174
189
  - ".rubocop.yml"
190
+ - ".ruby-version"
175
191
  - ".travis.yml"
176
192
  - Gemfile
177
- - Gemfile.lock
178
193
  - LICENSE.txt
179
194
  - README.md
180
195
  - Rakefile
@@ -218,7 +233,7 @@ files:
218
233
  - lib/devise-security/routes.rb
219
234
  - lib/devise-security/schema.rb
220
235
  - lib/devise-security/version.rb
221
- - lib/generators/devise-security/install_generator.rb
236
+ - lib/generators/devise_security/install_generator.rb
222
237
  - lib/generators/templates/devise-security.rb
223
238
  - test/dummy/Rakefile
224
239
  - test/dummy/app/controllers/application_controller.rb
@@ -266,7 +281,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
266
281
  requirements:
267
282
  - - ">="
268
283
  - !ruby/object:Gem::Version
269
- version: 2.1.0
284
+ version: 2.2.2
270
285
  required_rubygems_version: !ruby/object:Gem::Requirement
271
286
  requirements:
272
287
  - - ">="
@@ -1,199 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- devise-security (0.11.0)
5
- devise (>= 3.0.0, < 5.0)
6
- railties (>= 3.2.6, < 6.0)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- actioncable (5.1.3)
12
- actionpack (= 5.1.3)
13
- nio4r (~> 2.0)
14
- websocket-driver (~> 0.6.1)
15
- actionmailer (5.1.3)
16
- actionpack (= 5.1.3)
17
- actionview (= 5.1.3)
18
- activejob (= 5.1.3)
19
- mail (~> 2.5, >= 2.5.4)
20
- rails-dom-testing (~> 2.0)
21
- actionpack (5.1.3)
22
- actionview (= 5.1.3)
23
- activesupport (= 5.1.3)
24
- rack (~> 2.0)
25
- rack-test (~> 0.6.3)
26
- rails-dom-testing (~> 2.0)
27
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
28
- actionview (5.1.3)
29
- activesupport (= 5.1.3)
30
- builder (~> 3.1)
31
- erubi (~> 1.4)
32
- rails-dom-testing (~> 2.0)
33
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
34
- activejob (5.1.3)
35
- activesupport (= 5.1.3)
36
- globalid (>= 0.3.6)
37
- activemodel (5.1.3)
38
- activesupport (= 5.1.3)
39
- activerecord (5.1.3)
40
- activemodel (= 5.1.3)
41
- activesupport (= 5.1.3)
42
- arel (~> 8.0)
43
- activesupport (5.1.3)
44
- concurrent-ruby (~> 1.0, >= 1.0.2)
45
- i18n (~> 0.7)
46
- minitest (~> 5.1)
47
- tzinfo (~> 1.1)
48
- arel (8.0.0)
49
- ast (2.3.0)
50
- bcrypt (3.1.11)
51
- builder (3.2.3)
52
- concurrent-ruby (1.0.5)
53
- coveralls (0.8.21)
54
- json (>= 1.8, < 3)
55
- simplecov (~> 0.14.1)
56
- term-ansicolor (~> 1.3)
57
- thor (~> 0.19.4)
58
- tins (~> 1.6)
59
- devise (4.3.0)
60
- bcrypt (~> 3.0)
61
- orm_adapter (~> 0.1)
62
- railties (>= 4.1.0, < 5.2)
63
- responders
64
- warden (~> 1.2.3)
65
- diff-lcs (1.3)
66
- docile (1.1.5)
67
- easy_captcha (0.6.5)
68
- bundler (>= 1.1.0)
69
- rails (>= 3.0.0)
70
- rmagick (>= 2.13.1)
71
- rspec-rails (>= 2.8.1)
72
- simplecov (>= 0.3.8)
73
- yard (>= 0.7.0)
74
- erubi (1.6.1)
75
- globalid (0.4.0)
76
- activesupport (>= 4.2.0)
77
- i18n (0.8.6)
78
- json (2.1.0)
79
- loofah (2.0.3)
80
- nokogiri (>= 1.5.9)
81
- mail (2.6.6)
82
- mime-types (>= 1.16, < 4)
83
- method_source (0.8.2)
84
- mime-types (3.1)
85
- mime-types-data (~> 3.2015)
86
- mime-types-data (3.2016.0521)
87
- mini_portile2 (2.2.0)
88
- minitest (5.10.3)
89
- nio4r (2.1.0)
90
- nokogiri (1.8.0)
91
- mini_portile2 (~> 2.2.0)
92
- orm_adapter (0.5.0)
93
- parallel (1.12.0)
94
- parser (2.4.0.0)
95
- ast (~> 2.2)
96
- powerpack (0.1.1)
97
- rack (2.0.3)
98
- rack-test (0.6.3)
99
- rack (>= 1.0)
100
- rails (5.1.3)
101
- actioncable (= 5.1.3)
102
- actionmailer (= 5.1.3)
103
- actionpack (= 5.1.3)
104
- actionview (= 5.1.3)
105
- activejob (= 5.1.3)
106
- activemodel (= 5.1.3)
107
- activerecord (= 5.1.3)
108
- activesupport (= 5.1.3)
109
- bundler (>= 1.3.0)
110
- railties (= 5.1.3)
111
- sprockets-rails (>= 2.0.0)
112
- rails-dom-testing (2.0.3)
113
- activesupport (>= 4.2.0)
114
- nokogiri (>= 1.6)
115
- rails-html-sanitizer (1.0.3)
116
- loofah (~> 2.0)
117
- rails_email_validator (0.1.4)
118
- activemodel (>= 3.0.0)
119
- railties (5.1.3)
120
- actionpack (= 5.1.3)
121
- activesupport (= 5.1.3)
122
- method_source
123
- rake (>= 0.8.7)
124
- thor (>= 0.18.1, < 2.0)
125
- rainbow (2.2.2)
126
- rake
127
- rake (12.0.0)
128
- responders (2.4.0)
129
- actionpack (>= 4.2.0, < 5.3)
130
- railties (>= 4.2.0, < 5.3)
131
- rmagick (2.16.0)
132
- rspec-core (3.6.0)
133
- rspec-support (~> 3.6.0)
134
- rspec-expectations (3.6.0)
135
- diff-lcs (>= 1.2.0, < 2.0)
136
- rspec-support (~> 3.6.0)
137
- rspec-mocks (3.6.0)
138
- diff-lcs (>= 1.2.0, < 2.0)
139
- rspec-support (~> 3.6.0)
140
- rspec-rails (3.6.1)
141
- actionpack (>= 3.0)
142
- activesupport (>= 3.0)
143
- railties (>= 3.0)
144
- rspec-core (~> 3.6.0)
145
- rspec-expectations (~> 3.6.0)
146
- rspec-mocks (~> 3.6.0)
147
- rspec-support (~> 3.6.0)
148
- rspec-support (3.6.0)
149
- rubocop (0.49.1)
150
- parallel (~> 1.10)
151
- parser (>= 2.3.3.1, < 3.0)
152
- powerpack (~> 0.1)
153
- rainbow (>= 1.99.1, < 3.0)
154
- ruby-progressbar (~> 1.7)
155
- unicode-display_width (~> 1.0, >= 1.0.1)
156
- ruby-progressbar (1.8.1)
157
- simplecov (0.14.1)
158
- docile (~> 1.1.0)
159
- json (>= 1.8, < 3)
160
- simplecov-html (~> 0.10.0)
161
- simplecov-html (0.10.2)
162
- sprockets (3.7.1)
163
- concurrent-ruby (~> 1.0)
164
- rack (> 1, < 3)
165
- sprockets-rails (3.2.0)
166
- actionpack (>= 4.0)
167
- activesupport (>= 4.0)
168
- sprockets (>= 3.0.0)
169
- sqlite3 (1.3.13)
170
- term-ansicolor (1.6.0)
171
- tins (~> 1.0)
172
- thor (0.19.4)
173
- thread_safe (0.3.6)
174
- tins (1.15.0)
175
- tzinfo (1.2.3)
176
- thread_safe (~> 0.1)
177
- unicode-display_width (1.3.0)
178
- warden (1.2.7)
179
- rack (>= 1.0)
180
- websocket-driver (0.6.5)
181
- websocket-extensions (>= 0.1.0)
182
- websocket-extensions (0.1.2)
183
- yard (0.9.9)
184
-
185
- PLATFORMS
186
- ruby
187
-
188
- DEPENDENCIES
189
- bundler (>= 1.3.0, < 2.0)
190
- coveralls (~> 0.8)
191
- devise-security!
192
- easy_captcha (~> 0)
193
- minitest (~> 5.0)
194
- rails_email_validator (~> 0)
195
- rubocop (~> 0)
196
- sqlite3 (~> 1.3, >= 1.3.10)
197
-
198
- BUNDLED WITH
199
- 1.15.3