Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions devise_zxcvbn.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
spec.require_paths = ["lib"]

spec.add_development_dependency "activemodel"
spec.add_development_dependency "actionview"
spec.add_development_dependency "bundler"
spec.add_development_dependency "rake"
spec.add_development_dependency "rspec"
Expand Down
3 changes: 2 additions & 1 deletion lib/devise_zxcvbn/model.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ module Devise
module Models
module Zxcvbnable
extend ActiveSupport::Concern
include ActionView::Helpers::DateHelper

delegate :min_password_score, to: "self.class"
delegate :zxcvbn_tester, to: "self.class"
Expand Down Expand Up @@ -53,7 +54,7 @@ def zxcvbn_feedback
end

def time_to_crack
password_score.crack_times_display["offline_fast_hashing_1e10_per_second"]
distance_of_time_in_words(Time.now, Time.now + password_score.crack_times_seconds["offline_fast_hashing_1e10_per_second"], include_seconds: true)
end

class_methods do
Expand Down
3 changes: 3 additions & 0 deletions spec/devise_zxcvbn/model_spec.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
require 'active_model'
require 'action_view'
require 'devise'
require 'devise_zxcvbn'
require 'devise_zxcvbn/model'
Expand All @@ -24,6 +25,7 @@ def skip_password_complexity?

expect(password_score.score).to eq(4)
expect(password_score.crack_times_display['offline_fast_hashing_1e10_per_second']).to eq('12 days')
expect(user.send(:time_to_crack)).to eq('12 days')
end
end

Expand All @@ -35,6 +37,7 @@ def skip_password_complexity?

expect(password_score.score).to eq(0)
expect(password_score.crack_times_display['offline_fast_hashing_1e10_per_second']).to eq('less than a second')
expect(user.send(:time_to_crack)).to eq('less than 5 seconds')
end
end
end
Expand Down