devise_invitable 1.7.0 → 1.7.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of devise_invitable might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5e72545e92c36829500f558b2a4ce744e80f0533
4
- data.tar.gz: 7d510da1d72dc8ae814e5162447b9e39b3c8b021
3
+ metadata.gz: b83b5f1ceec909cc73063d89575fce5bcf50c473
4
+ data.tar.gz: f495b7eeebe7e5c70d3181747b25ea802a8f656f
5
5
  SHA512:
6
- metadata.gz: 9340104f4b675e9664640f91a86596a03cba5de2755c146d53bba967d26a772c43f2e7a3e474404f4eec87346a2791a0a84fe7c72483797456bdec7883c9bee9
7
- data.tar.gz: f2d38857bede06c7348f2552f7230ed1e67c5caa9ea20ec80aa5eb7d4b7352f2ffe579e3654f615c46489c13ce7db68927058487b0fb9c72df63e9cda995dbd3
6
+ metadata.gz: d27498b5bf7c89b29d8cb15b34df681a3aa3fdbb639ee6b73cbb93eaf61eccc5ff255b6016447d57b8b1ee54bd2fa6bd54d23c79f107d4dff21fe70b3489bcb8
7
+ data.tar.gz: cc70998322befe8502e6787d863e9ce0569d3c718eac7c6f7c31dcf17a0f1ad665eaf83f46ffb64719c961b20e8cfe968624d953387b04a0ed062bea42dc602d
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ = 1.7.1
2
+ - Allow to set invited_by_* options on model
3
+ - created_by_invite scope and test method checks invitation_created_at, because invitation_sent_at can be nil if skip_invitation is used
4
+
1
5
  = 1.7.0
2
6
 
3
7
  - Drop devise < 4 support
data/README.rdoc CHANGED
@@ -70,13 +70,13 @@ or for a model that already exists, define a migration to add DeviseInvitable to
70
70
  add_column :users, :invited_by_id, :integer
71
71
  add_column :users, :invited_by_type, :string
72
72
  add_index :users, :invitation_token, :unique => true
73
+
74
+ # Allow null encrypted_password
75
+ change_column_null :users, :encrypted_password, :string, true
76
+ # Allow null password_salt (add it if you are using Devise's encryptable module)
77
+ change_column_null :users, :password_salt, :string, true
73
78
  end
74
79
 
75
- # Allow null encrypted_password
76
- change_column :users, :encrypted_password, :string, :null => true
77
- # Allow null password_salt (add it if you are using Devise's encryptable module)
78
- change_column :users, :password_salt, :string, :null => true
79
-
80
80
  If you previously used devise_invitable with a :limit on :invitation_token, remove it:
81
81
 
82
82
  def up
@@ -216,18 +216,12 @@ There are just two actions in DeviseInvitable that allows any set of parameters
216
216
 
217
217
  Here is an example of what your application controller might need to include in order to add these parameters to the invitation view:
218
218
 
219
- before_filter :configure_permitted_parameters, if: :devise_controller?
219
+ before_action :configure_permitted_parameters, if: :devise_controller?
220
220
 
221
221
  protected
222
222
 
223
223
  def configure_permitted_parameters
224
- # Only add some parameters
225
- devise_parameter_sanitizer.for(:accept_invitation).concat [:first_name, :last_name, :phone]
226
- # Override accepted parameters
227
- devise_parameter_sanitizer.for(:accept_invitation) do |u|
228
- u.permit(:first_name, :last_name, :phone, :password, :password_confirmation,
229
- :invitation_token)
230
- end
224
+ devise_parameter_sanitizer.permit(:accept_invitation, keys: [:first_name, :last_name, :phone])
231
225
  end
232
226
 
233
227
 
@@ -415,9 +409,9 @@ https://github.com/scambra/devise_invitable/wiki
415
409
 
416
410
  == Testing
417
411
 
418
- To test DeviseInvitable for the ActiveRecord ORM with RVM, Ruby 2.0.0:
412
+ To test DeviseInvitable for the ActiveRecord ORM with RVM, Ruby 2.2.2:
419
413
 
420
- rvm use 2.0.0
414
+ rvm use 2.2.2
421
415
  rvm gemset create devise_invitable
422
416
  rvm gemset use devise_invitable
423
417
  gem install bundler
@@ -44,7 +44,7 @@ class Devise::InvitationsController < DeviseController
44
44
 
45
45
  # GET /resource/invitation/accept?invitation_token=abcdef
46
46
  def edit
47
- set_minimum_password_length if respond_to? :set_minimum_password_length
47
+ set_minimum_password_length
48
48
  resource.invitation_token = params[:invitation_token]
49
49
  render :edit
50
50
  end
@@ -52,11 +52,11 @@ module Devise
52
52
 
53
53
  scope :no_active_invitation, lambda { where(:invitation_token => nil) }
54
54
  if defined?(Mongoid) && defined?(Mongoid::Document) && self < Mongoid::Document
55
- scope :created_by_invite, lambda { where(:invitation_sent_at.ne => nil) }
55
+ scope :created_by_invite, lambda { where(:invitation_created_at.ne => nil) }
56
56
  scope :invitation_not_accepted, lambda { where(:invitation_accepted_at => nil, :invitation_token.ne => nil) }
57
57
  scope :invitation_accepted, lambda { where(:invitation_accepted_at.ne => nil) }
58
58
  else
59
- scope :created_by_invite, lambda { where(arel_table[:invitation_sent_at].not_eq(nil)) }
59
+ scope :created_by_invite, lambda { where(arel_table[:invitation_created_at].not_eq(nil)) }
60
60
  scope :invitation_not_accepted, lambda { where(arel_table[:invitation_token].not_eq(nil)).where(:invitation_accepted_at => nil) }
61
61
  scope :invitation_accepted, lambda { where(arel_table[:invitation_accepted_at].not_eq(nil)) }
62
62
 
@@ -102,7 +102,7 @@ module Devise
102
102
 
103
103
  # Verify wheather a user is created by invitation, irrespective to invitation status
104
104
  def created_by_invite?
105
- invitation_sent_at.present?
105
+ invitation_created_at.present?
106
106
  end
107
107
 
108
108
  # Verifies whether a user has been invited or not
@@ -306,7 +306,8 @@ module Devise
306
306
  end
307
307
 
308
308
  def invite!(attributes={}, invited_by=nil, options = {}, &block)
309
- _invite(attributes.with_indifferent_access, invited_by, options, &block).first
309
+ attr_hash = ActiveSupport::HashWithIndifferentAccess.new(attributes.to_h)
310
+ _invite(attr_hash, invited_by, options, &block).first
310
311
  end
311
312
 
312
313
  def invite_mail!(attributes={}, invited_by=nil, options = {}, &block)
@@ -359,6 +360,9 @@ module Devise
359
360
  Devise::Models.config(self, :invitation_limit)
360
361
  Devise::Models.config(self, :invite_key)
361
362
  Devise::Models.config(self, :resend_invitation)
363
+ Devise::Models.config(self, :invited_by_class_name)
364
+ Devise::Models.config(self, :invited_by_foreign_key)
365
+ Devise::Models.config(self, :invited_by_counter_cache)
362
366
  Devise::Models.config(self, :allow_insecure_sign_in_after_accept)
363
367
  Devise::Models.config(self, :require_password_on_accepting)
364
368
 
@@ -1,3 +1,3 @@
1
1
  module DeviseInvitable
2
- VERSION = '1.7.0'
2
+ VERSION = '1.7.1'
3
3
  end
@@ -136,14 +136,14 @@ class InvitableTest < ActiveSupport::TestCase
136
136
  User.stubs(:invite_for).returns(nil)
137
137
  user = User.invite!(:email => "valid@email.com")
138
138
 
139
- assert_equal user.invitation_due_at, nil
139
+ assert_nil user.invitation_due_at
140
140
  end
141
141
 
142
142
  test 'should return nil for invitation due date when invite_for is 0' do
143
143
  User.stubs(:invite_for).returns(0)
144
144
  user = User.invite!(email: 'valid@email.com')
145
145
 
146
- assert_equal user.invitation_due_at, nil
146
+ assert_nil user.invitation_due_at
147
147
  end
148
148
 
149
149
  test 'should never generate the same invitation token for different users' do
@@ -575,7 +575,7 @@ class InvitableTest < ActiveSupport::TestCase
575
575
  test 'user.invite! should not set the invited_by attribute if not passed' do
576
576
  user = new_user
577
577
  user.invite!
578
- assert_equal nil, user.invited_by
578
+ assert_nil user.invited_by
579
579
  end
580
580
 
581
581
  test 'user.invite! should set the invited_by attribute if passed' do
@@ -628,7 +628,12 @@ class InvitableTest < ActiveSupport::TestCase
628
628
  end
629
629
 
630
630
  def assert_callbacks_status(callback, user, fired)
631
- assert_equal fired, user.send("#{callback}_callback_works".to_sym)
631
+ result = user.send("#{callback}_callback_works".to_sym)
632
+ if fired.nil?
633
+ assert_nil result
634
+ else
635
+ assert_equal fired, result
636
+ end
632
637
  end
633
638
 
634
639
  test "user.invite! should downcase the class's case_insensitive_keys" do
@@ -28,7 +28,7 @@ RailsApp::Application.configure do
28
28
  # like if you have constraints or database-specific column types
29
29
  # config.active_record.schema_format = :sql
30
30
 
31
- if Rails.version >= '4.2' && config.respond_to?(:active_record)
31
+ if Rails.version =~ /^4\.2/ && config.respond_to?(:active_record)
32
32
  config.active_record.raise_in_transactional_callbacks = true
33
33
  end
34
34
 
data/test/test_helper.rb CHANGED
@@ -25,13 +25,15 @@ class ActionController::TestCase
25
25
  else
26
26
  include Devise::TestHelpers
27
27
  end
28
- if Rails.version >= '5.0.0'
29
- self.use_transactional_tests = true
30
- else
31
- begin
32
- require 'test_after_commit'
33
- self.use_transactional_fixtures = true
34
- rescue LoadError
28
+ if defined? ActiveRecord
29
+ if Rails.version >= '5.0.0'
30
+ self.use_transactional_tests = true
31
+ else
32
+ begin
33
+ require 'test_after_commit'
34
+ self.use_transactional_fixtures = true
35
+ rescue LoadError
36
+ end
35
37
  end
36
38
  end
37
39
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise_invitable
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergio Cambra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-04 00:00:00.000000000 Z
11
+ date: 2017-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 4.0.0
33
+ version: 4.1.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 4.0.0
40
+ version: 4.1.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: devise
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -155,7 +155,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
155
155
  requirements:
156
156
  - - ">="
157
157
  - !ruby/object:Gem::Version
158
- version: 1.8.6
158
+ version: 2.1.0
159
159
  required_rubygems_version: !ruby/object:Gem::Requirement
160
160
  requirements:
161
161
  - - ">="