Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
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", "~> 1.3"
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