cookie_crypt 1.1.4 → 1.2.0

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: 84e632676b78ea76d8a02e60db8662e89a2d3d7f
4
- data.tar.gz: 395894fa59ff78d985228ab89d4a102fd421841f
3
+ metadata.gz: c7577d9bb79387e429db3b9fc80d12fef8baf8c0
4
+ data.tar.gz: 55d8bc3a279e9ac333015defdbdf624511dd0f56
5
5
  SHA512:
6
- metadata.gz: 4fac98960b7f25f2c419e80851834c0f2bfbdf69567058fd22eec5ad2fc7b75a4ee19f51e7da5d6054465837edaf86eeabf88ad928d9834dfcdb9a3ae13ea0e3
7
- data.tar.gz: 1e045a35ed0deb4071c665824116b3efc8636e2f8be396ec6f055923d4373a7743b2d9b5c9387263ffc4b3a9178c2890103f4c54bcd3ef685cd5f2d72aba6683
6
+ metadata.gz: c2fff4e687726ac1882bd082c042668c59c887696e01305d7d3c6b469328c0f7232f0a12c068ae32b566d4d60aa4cc44e72538044281a8958c1dc7b9a8267f2e
7
+ data.tar.gz: 62d200a43750fae54643231b38bbfbe745a3f6896ba125d789f1a6d83be5e7f3880e61a870fdaa1d833e1a516c2b4c8fb5f14e8ad54954f8851df0bb7183c6e0
data/README.md CHANGED
@@ -29,7 +29,9 @@ In order to add encrypted cookie two factor authorization to a model, run the co
29
29
  bundle exec rails g cookie_crypt MODEL
30
30
 
31
31
  Where MODEL is your model name (e.g. User or Admin). This generator will add `:cookie_cryptable` to your model
32
- and create a migration in `db/migrate/`, which will add the required columns to your table.
32
+ and create a migration in `db/migrate/`, which will add the required columns to your table. It will also generate
33
+ cookie crypt views in app/views/devise/cookie_crypt. You can delete these views if you'd rather just use the default
34
+ ones served from the gem.
33
35
 
34
36
  ### NOTE!
35
37
 
@@ -124,7 +126,7 @@ the question-auth.
124
126
  * Default is 3
125
127
  * The maximum number of tries a user has before they are locked out of cookie crypt and unable to fully login.
126
128
  * cookie_deletion_time_frame
127
- * Default is '30.days.from.now'
129
+ * Default is '30.days.from_now'
128
130
  * Must be a string that evaluates to a date in the future.
129
131
 
130
132
  ### Rationalle
@@ -26,6 +26,7 @@ class Devise::CookieCryptController < DeviseController
26
26
  else
27
27
  flash[:notice] = "Signed In Successfully, now going through two factor authentication."
28
28
  @user = resource
29
+ @request_path = request.fullpath.split('?').first
29
30
  render template: "devise/cookie_crypt/show"
30
31
  end
31
32
  end
@@ -55,10 +56,10 @@ class Devise::CookieCryptController < DeviseController
55
56
  resource.save
56
57
 
57
58
  authentication_success
58
- else
59
+ else #normal login attempts
59
60
 
60
61
  if matching_answers?(h)
61
- generate_cookie
62
+ generate_cookie unless params[:do_not_save_cookie]
62
63
  update_resource_cycle(h)
63
64
  log_agent_to_resource
64
65
  authentication_success
@@ -9,6 +9,6 @@
9
9
  <%=text_field_tag "security_answer_#{session[:cookie_crypt_questions_count]}", nil, size: 50, name: "security[security_answer_#{session[:cookie_crypt_questions_count]}]" %>
10
10
  <br></br>
11
11
 
12
- <%= link_to "Remove this question / answer pair?", "#{request.fullpath}?remove=#{session[:cookie_crypt_questions_count]}", remote: true %>
12
+ <%= link_to "Remove this question / answer pair?", "#{@request_path}?remove=#{session[:cookie_crypt_questions_count]}", remote: true %>
13
13
  <br></br>
14
14
  </div>
@@ -23,7 +23,7 @@
23
23
 
24
24
  <% if @user.class.enable_custom_question_counts %>
25
25
  <div id="cookie_crypt_additions_binder"></div>
26
- <%= link_to "Add more security questions and answers?", "#{request.fullpath}", remote: true %>
26
+ <%= link_to "Add more security questions and answers?", @request_path, remote: true %>
27
27
  <br></br>
28
28
  <% end %>
29
29
 
@@ -60,7 +60,7 @@
60
60
 
61
61
  <% if @user.class.enable_custom_question_counts %>
62
62
  <div id="cookie_crypt_additions_binder"></div>
63
- <%= link_to "Add more security questions and answers?", "#{request.fullpath}", remote: true %>
63
+ <%= link_to "Add more security questions and answers?", @request_path, remote: true %>
64
64
  <br></br>
65
65
  <% end %>
66
66
 
@@ -68,17 +68,15 @@
68
68
  <br></br>
69
69
  <% else %>
70
70
 
71
- <% h = Hash.class_eval(@user.security_hash) %>
72
-
73
- <% @questions.each do |q| %>
71
+ <% #Begin 1.2 changes %>
74
72
 
75
- <h2><%="#{q}"%></h2>
73
+ <div id="cookie_crypt_login_binder">
76
74
 
77
- <%=text_field_tag h.key(q).gsub('question','answer'), nil, size: 50, name: "security_answers[#{h.key(q).gsub('question','answer')}]" %>
75
+ <%= render partial: 'private_login_questions' %>
78
76
 
79
- <br></br>
77
+ </div>
80
78
 
81
- <% end %>
79
+ <% #End 1.2 Changes %>
82
80
 
83
81
  <% end %>
84
82
 
@@ -1,5 +1,11 @@
1
1
  <% if params[:remove] %>
2
2
  $('#security_binder_<%= params[:remove] %>').remove();
3
+ <% elsif params[:bind_public_form] %>
4
+ $('#cookie_crypt_login_binder').empty();
5
+ $('#cookie_crypt_login_binder').append('<%= escape_javascript(render partial: "public_login_questions")%>');
6
+ <% elsif params[:bind_private_form] %>
7
+ $('#cookie_crypt_login_binder').empty();
8
+ $('#cookie_crypt_login_binder').append('<%= escape_javascript(render partial: "private_login_questions")%>');
3
9
  <% else %>
4
10
  <% session[:cookie_crypt_questions_count] ||= @user.class.cookie_crypt_minimum_questions %>
5
11
  <% session[:cookie_crypt_questions_count] += 1 %>
@@ -1,3 +1,3 @@
1
1
  module CookieCrypt
2
- VERSION = "1.1.4"
2
+ VERSION = "1.2.0"
3
3
  end
@@ -17,6 +17,7 @@ module ActiveRecord
17
17
 
18
18
  def copy_cookie_crypt_migration_1_0
19
19
  if ActiveRecord::Base.class_eval("#{table_name.camelize.singularize}.inspect['security_question_one: string'].blank?") &&
20
+ ActiveRecord::Base.class_eval("#{table_name.camelize.singularize}.inspect['security_hash: text'].blank?") &&
20
21
  !@ignore_other_migrations
21
22
 
22
23
  migration_template "migration.rb", "db/migrate/cookie_crypt_add_to_#{table_name}"
@@ -6,7 +6,8 @@ module CookieCryptable
6
6
 
7
7
  #BEGIN 1.0 generator
8
8
  def inject_1_0_cookie_crypt_content
9
- if ActiveRecord::Base.class_eval("#{table_name.camelize.singularize}.inspect['security_question_one: string'].blank?")
9
+ if ActiveRecord::Base.class_eval("#{table_name.camelize.singularize}.inspect['security_question_one: string'].blank?") &&
10
+ ActiveRecord::Base.class_eval("#{table_name.camelize.singularize}.inspect['security_hash: text'].blank?")
10
11
  puts "Beginning 1.0 content injection..."
11
12
  paths = [File.join("app", "models", "#{file_path}.rb"),File.join("config", "initializers", "devise.rb")]
12
13
  inject_into_file(paths[0], "cookie_cryptable, :", :after => "devise :") if File.exists?(paths[0])
@@ -20,13 +21,15 @@ module CookieCryptable
20
21
 
21
22
  source_root File.expand_path('../../../../app/views/devise/cookie_crypt', __FILE__)
22
23
 
23
- def generate_1_0_files
24
+ def generate_1_0_view_files
24
25
  Dir.mkdir("app/views/devise") unless Dir.exists?("app/views/devise")
25
26
  unless Dir.exists?("app/views/devise/cookie_crypt")
26
27
  puts "Beginning 1.0 views creation..."
27
28
  Dir.mkdir("app/views/devise/cookie_crypt")
28
29
  copy_file "max_login_attempts_reached.html.erb", "app/views/devise/cookie_crypt/max_login_attempts_reached.html.erb"
29
30
  copy_file "show.html.erb", "app/views/devise/cookie_crypt/show.html.erb"
31
+
32
+ $load_all_views = true
30
33
  end
31
34
  end
32
35
 
@@ -55,11 +58,13 @@ module CookieCryptable
55
58
 
56
59
  source_root File.expand_path('../../../../app/views/devise/cookie_crypt', __FILE__)
57
60
 
58
- def generate_1_1_files
61
+ def generate_1_1_view_files
59
62
  unless File.exist?("app/views/devise/cookie_crypt/show.js.erb")
60
63
  puts "Beginning 1.1 views creation..."
61
64
  copy_file "show.js.erb", "app/views/devise/cookie_crypt/show.js.erb"
62
65
  copy_file "_extra_fields.html.erb", "app/views/devise/cookie_crypt/_extra_fields.html.erb"
66
+ copy_file "_private_login_questions.html.erb", "app/views/devise/cookie_crypt/_private_login_questions.html.erb"
67
+ copy_file "_public_login_questions.html.erb", "app/views/devise/cookie_crypt/_public_login_questions.html.erb"
63
68
  File.delete("app/views/devise/cookie_crypt/show.html.erb")
64
69
  copy_file "show.html.erb", "app/views/devise/cookie_crypt/show.html.erb"
65
70
  end
@@ -90,6 +95,46 @@ module CookieCryptable
90
95
  end
91
96
  end
92
97
 
98
+ def generate_1_2_view_files
99
+ $load_all_views ||= false
100
+ unless File.exist?("app/views/devise/cookie_crypt/_private_login_questions.html.erb")
101
+ unless $load_all_views
102
+ copy_new_files = false
103
+ puts "Enter O || o || overwrite to overwrite the view files in app/views/devise/cookie_crypt\n"
104
+ puts "Enter CO || co || copyover to write new files to app/views/devise/cookie_crypt (you will need to update show.js.erb and show.html.haml yourself)\n"
105
+ puts "Enter N || n || no to not generate anything\n"
106
+ puts "Input:"
107
+ input = STDIN.gets.chomp
108
+ end
109
+
110
+ if (input =~ /O|o|overwrite/) == 0
111
+ puts "Beginning 1.2 views creation..."
112
+ File.delete("app/views/devise/cookie_crypt/show.js.erb")
113
+ copy_file "show.js.erb", "app/views/devise/cookie_crypt/show.js.erb"
114
+ File.delete("app/views/devise/cookie_crypt/show.html.erb")
115
+ copy_file "show.html.erb", "app/views/devise/cookie_crypt/show.html.erb"
116
+ File.delete("app/views/devise/cookie_crypt/_extra_fields.html.erb")
117
+ copy_new_files = true
118
+ elsif (input =~ /CO|co|copyover/) == 0
119
+ puts "Beginning 1.2 views creation...(please update the view files yourself)"
120
+ copy_file "show.js.erb", "app/views/devise/cookie_crypt/(copy_into_your)show.js.erb"
121
+ copy_file "show.html.erb", "app/views/devise/cookie_crypt/(copy_into_your)show.html.erb"
122
+ copy_file "_extra_fields.html.erb", "app/views/devise/cookie_crypt/(copy_into_your)_extra_fields.html.erb"
123
+ copy_new_files = true
124
+ elsif $load_all_views
125
+ puts "Beginning 1.2 views creation..."
126
+ copy_new_files = true
127
+ else
128
+ puts "Not updating view files.\nIf you dont want to deal with the cookie_crypt views, you can delete app/views/devise/cookie_crypt and the gem will serve the data."
129
+ end
130
+
131
+ if copy_new_files
132
+ copy_file "_private_login_questions.html.erb", "app/views/devise/cookie_crypt/_private_login_questions.html.erb"
133
+ copy_file "_public_login_questions.html.erb", "app/views/devise/cookie_crypt/_public_login_questions.html.erb"
134
+ end
135
+ end
136
+ end
137
+
93
138
  hook_for :orm
94
139
  end
95
140
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cookie_crypt
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitrii Golub
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-01-21 00:00:00.000000000 Z
12
+ date: 2014-05-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -138,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
138
  version: '0'
139
139
  requirements: []
140
140
  rubyforge_project: cookie_crypt
141
- rubygems_version: 2.0.6
141
+ rubygems_version: 2.1.11
142
142
  signing_key:
143
143
  specification_version: 4
144
144
  summary: Encrypted cookie two factor authentication plugin for devise