devise_invitable 2.0.5 → 2.0.6

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
  SHA256:
3
- metadata.gz: 0517f954240bfc3c1fd255df0d502d5fdbd461d4e695cd0c5ec725854af50dcf
4
- data.tar.gz: 239b887a32e66dbc38fbf1e04625def2f1dea325fcc6d20af0e1befd066dd000
3
+ metadata.gz: 3803fa69fe6bdecc811ab934878cc365f31ae0a124e54bbde34ad967752f1d3c
4
+ data.tar.gz: df5c2b785956d22e8bf69d644326605a649f1fd76b1d19af04d4bcd48a3c15f6
5
5
  SHA512:
6
- metadata.gz: 957006ebe6e94715459f941b52004a1002e72005e9344baca46679398bc34e360604e3a8a205d9099a4ff5015be597c1c02a89055137db6c12f10ecf03949db7
7
- data.tar.gz: 17200aa6cf76d5abf07de1e4c0987f197140087a7a3210df0bf948a6098602eeeab05d65983cc69ef2185f2de741813ebc778a28d476a86bc5b1527bbd918f4c
6
+ metadata.gz: 925df2c1ef1a893f9e4d9b376b298fa5e21a4c516d8829d7990aa5e5b4a18a7d288d209658f38a1793c51b5a4fca83cbff814a19f2e725ddd8baa4307f448092
7
+ data.tar.gz: 4380da8ff7d5ff6e680393ab8f8935dae7b10e3d50271fdfaa839d0968caad99a56282ba6765b3d18f2f70090796c607c0198dc3932f3ac21f24821a8635a4e5
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 2.0.6
2
+ - Fix submit form failure with turbolinks, fixes ([#865](https://github.com/scambra/devise_invitable/issues/865))
3
+ - Fix obsolete symbols in German translation ([#864](https://github.com/scambra/devise_invitable/pull/864))
4
+
1
5
  ## 2.0.5
2
6
  - Fix NoMethodError in random_password when validatable is not used ([#850](https://github.com/scambra/devise_invitable/pull/850))
3
7
 
data/README.rdoc CHANGED
@@ -35,14 +35,14 @@ Replace MODEL by the class name you want to add DeviseInvitable, like <tt>User</
35
35
 
36
36
  Follow the walkthrough for Devise and after it's done, follow this walkthrough.
37
37
 
38
- == Devise Configuration
38
+ ==== Devise Configuration
39
39
  Add <tt>:invitable</tt> to the <tt>devise</tt> call in your model (we’re assuming here you already have a User model with some Devise modules):
40
40
 
41
41
  class User < ActiveRecord::Base
42
42
  devise :database_authenticatable, :confirmable, :invitable
43
43
  end
44
44
 
45
- == ActiveRecord Migration
45
+ ==== ActiveRecord Migration
46
46
  Add <tt>t.invitable</tt> to your Devise model migration:
47
47
 
48
48
  create_table :users do
@@ -217,6 +217,61 @@ Here is an example of what your application controller might need to include in
217
217
  devise_parameter_sanitizer.permit(:accept_invitation, keys: [:first_name, :last_name, :phone])
218
218
  end
219
219
 
220
+ Here is an example setting a User's first name, last name, and role for a custom invitation:
221
+
222
+ #Configuring the InvitationsController to accept :first_name, :last_name, and :role
223
+
224
+ class Users::InvitationsController < Devise::InvitationsController
225
+ before_action :configure_permitted_parameters
226
+
227
+ protected
228
+
229
+ # Permit the new params here.
230
+ def configure_permitted_parameters
231
+ devise_parameter_sanitizer.permit(:invite, keys: [:first_name, :last_name, :role])
232
+ end
233
+ end
234
+
235
+ #Define your roles in the User model
236
+
237
+ class User < ApplicationRecord
238
+ has_many :models
239
+
240
+ enum role: {Role 1 Name: 0, Role 2 Name: 1, Role 3 Name: 2, etc...}
241
+ end
242
+
243
+ #In the Invitation view
244
+
245
+ <h2><%= t "devise.invitations.new.header" %></h2>
246
+
247
+ <%= form_for(resource, as: resource_name, url: invitation_path(resource_name), html: { method: :post }) do |f| %>
248
+ <%= render "devise/shared/error_messages", resource: resource %>
249
+ <% resource.class.invite_key_fields.each do |field| -%>
250
+ <div class="field">
251
+ <%= f.label field %><br />
252
+ <%= f.text_field field %>
253
+ </div>
254
+ <% end %>
255
+
256
+ <div class="field">
257
+ <%= f.label :first_name %>
258
+ <%= f.text_field :first_name %>
259
+ </div>
260
+
261
+ <div class="field">
262
+ <%= f.label :last_name %>
263
+ <%= f.text_field :last_name %>
264
+ </div>
265
+
266
+ <div class="field">
267
+ <%= f.label :role %>
268
+ <%= f.select :role, options_for_select(User.roles.map { |key, value| [key.humanize, key] }), {prompt: "Select Role"} %>
269
+ </div>
270
+
271
+ <div class="actions">
272
+ <%= f.submit t("devise.invitations.new.submit_button") %>
273
+ </div>
274
+ <% end %>
220
275
 
221
276
  == Usage
222
277
 
@@ -31,7 +31,7 @@ class Devise::InvitationsController < DeviseController
31
31
  respond_with resource, location: after_invite_path_for(current_inviter, resource)
32
32
  end
33
33
  else
34
- respond_with_navigational(resource) { render :new }
34
+ respond_with_navigational(resource) { render :new, status: :unprocessable_entity }
35
35
  end
36
36
  end
37
37
 
@@ -63,7 +63,7 @@ class Devise::InvitationsController < DeviseController
63
63
  end
64
64
  else
65
65
  resource.invitation_token = raw_invitation_token
66
- respond_with_navigational(resource) { render :edit }
66
+ respond_with_navigational(resource) { render :edit, status: :unprocessable_entity }
67
67
  end
68
68
  end
69
69
 
@@ -1,31 +1,31 @@
1
- de:
2
- devise:
3
- failure:
4
- invited: "Du hast bereits eine Einladung erhalten. Nimm die Einladung an um dein Nutzerkonto zu erstellen."
5
- invitations:
6
- send_instructions: "Eine Einladung wurde an %{email} verschickt."
7
- invitation_token_invalid: "Der Einladungs-Code ist ungültig!"
8
- updated: "Dein Passwort wurde gesetzt. Du bist nun angemeldet."
9
- updated_not_active: "Dein Passwort wurde gesetzt."
10
- no_invitations_remaining: "Es gibt keine weiteren Einladungen"
11
- invitation_removed: "Deine Einladung wurde gelöscht."
12
- new:
13
- header: "Einladung schicken"
14
- submit_button: "Einladung schicken"
15
- edit:
16
- header: "Setze ein Passwort"
17
- submit_button: "Passwort setzen"
18
- mailer:
19
- invitation_instructions:
20
- subject: "Einladung"
21
- hello: "Hallo %{email}"
22
- someone_invited_you: "Jemand hat dich zu %{url} eingeladen. Du kannst die Einladung mit dem Link unten annehmen."
23
- accept: "Einladung annehmen"
24
- accept_until: "Diese Einladung ist gültig bis zum %{due_date}."
25
- ignore: "Wenn du die Einladung nicht annehmen willst, ignoriere diese E-Mail einfach.<br />\nEs wird kein Benutzerkonto erstellt solange du nicht die Einladung mi↪ttels des Links oben annimmst."
26
- time:
27
- formats:
28
- devise:
29
- mailer:
30
- invitation_instructions:
31
- accept_until_format: "%d. %B %Y %H:%M"
1
+ de:
2
+ devise:
3
+ failure:
4
+ invited: "Du hast bereits eine Einladung erhalten. Nimm die Einladung an um dein Nutzerkonto zu erstellen."
5
+ invitations:
6
+ send_instructions: "Eine Einladung wurde an %{email} verschickt."
7
+ invitation_token_invalid: "Der Einladungs-Code ist ungültig!"
8
+ updated: "Dein Passwort wurde gesetzt. Du bist nun angemeldet."
9
+ updated_not_active: "Dein Passwort wurde gesetzt."
10
+ no_invitations_remaining: "Es gibt keine weiteren Einladungen"
11
+ invitation_removed: "Deine Einladung wurde gelöscht."
12
+ new:
13
+ header: "Einladung schicken"
14
+ submit_button: "Einladung schicken"
15
+ edit:
16
+ header: "Setze ein Passwort"
17
+ submit_button: "Passwort setzen"
18
+ mailer:
19
+ invitation_instructions:
20
+ subject: "Einladung"
21
+ hello: "Hallo %{email}"
22
+ someone_invited_you: "Jemand hat dich zu %{url} eingeladen. Du kannst die Einladung mit dem Link unten annehmen."
23
+ accept: "Einladung annehmen"
24
+ accept_until: "Diese Einladung ist gültig bis zum %{due_date}."
25
+ ignore: "Wenn du die Einladung nicht annehmen willst, ignoriere diese E-Mail einfach. Es wird kein Benutzerkonto erstellt solange du nicht die Einladung mittels des Links oben annimmst."
26
+ time:
27
+ formats:
28
+ devise:
29
+ mailer:
30
+ invitation_instructions:
31
+ accept_until_format: "%d. %B %Y %H:%M"
@@ -158,7 +158,8 @@ module Devise
158
158
  self.downcase_keys if new_record_and_responds_to?(:downcase_keys)
159
159
  self.strip_whitespace if new_record_and_responds_to?(:strip_whitespace)
160
160
 
161
- if save(validate: false)
161
+ validate = options.key?(:validate) ? options[:validate] : self.class.validate_on_invite
162
+ if save(validate: validate)
162
163
  self.invited_by.decrement_invitation_limit! if !was_invited and self.invited_by.present?
163
164
  deliver_invitation(options) unless skip_invitation
164
165
  end
@@ -324,7 +325,7 @@ module Devise
324
325
  end
325
326
 
326
327
  yield invitable if block_given?
327
- mail = invitable.invite!(nil, options) if invitable.errors.empty?
328
+ mail = invitable.invite!(nil, options.merge(validate: false)) if invitable.errors.empty?
328
329
  [invitable, mail]
329
330
  end
330
331
 
@@ -1,3 +1,3 @@
1
1
  module DeviseInvitable
2
- VERSION = '2.0.5'.freeze
2
+ VERSION = '2.0.6'.freeze
3
3
  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: 2.0.5
4
+ version: 2.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergio Cambra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-19 00:00:00.000000000 Z
11
+ date: 2021-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionmailer
@@ -186,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
186
  - !ruby/object:Gem::Version
187
187
  version: '0'
188
188
  requirements: []
189
- rubygems_version: 3.0.8
189
+ rubygems_version: 3.0.9
190
190
  signing_key:
191
191
  specification_version: 4
192
192
  summary: An invitation strategy for Devise