devise_invitable 0.5.5 → 0.5.6
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.
Potentially problematic release.
This version of devise_invitable might be problematic. Click here for more details.
- data/README.rdoc +12 -0
- data/lib/devise_invitable/model.rb +16 -6
- data/lib/devise_invitable/version.rb +1 -1
- metadata +4 -4
data/README.rdoc
CHANGED
@@ -184,6 +184,18 @@ And include DeviseInvitable::Inviter module into Admin model:
|
|
184
184
|
include DeviseInvitable::Inviter
|
185
185
|
end
|
186
186
|
|
187
|
+
== Has many invitations
|
188
|
+
|
189
|
+
If you want to get all records invited by a resource, you should define has_many association in the model allowed to send invitations.
|
190
|
+
|
191
|
+
For the default behavior, define it like this:
|
192
|
+
|
193
|
+
has_many :invitations, :class_name => self.class.to_s, :as => :invited_by
|
194
|
+
|
195
|
+
For the previous example, where admins send invitations to users, define it like this:
|
196
|
+
|
197
|
+
has_many :invitations, :class_name => 'User', :as => :invited_by
|
198
|
+
|
187
199
|
== I18n
|
188
200
|
|
189
201
|
DeviseInvitable uses flash messages with I18n with the flash keys <tt>:send_instructions</tt>, <tt>:invitation_token_invalid</tt> and <tt>:updated</tt>. To customize your app, you can modify the generated locale file:
|
@@ -33,7 +33,7 @@ module Devise
|
|
33
33
|
def accept_invitation!
|
34
34
|
if self.invited? && self.valid?
|
35
35
|
self.invitation_token = nil
|
36
|
-
self.invitation_accepted_at = Time.now.utc
|
36
|
+
self.invitation_accepted_at = Time.now.utc if has_attribute? :invitation_accepted_at
|
37
37
|
self.save
|
38
38
|
end
|
39
39
|
end
|
@@ -51,7 +51,7 @@ module Devise
|
|
51
51
|
self.invitation_sent_at = Time.now.utc
|
52
52
|
if save(:validate => self.class.validate_on_invite)
|
53
53
|
self.invited_by.decrement_invitation_limit! if self.invited_by
|
54
|
-
|
54
|
+
deliver_invitation unless @skip_invitation
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
@@ -120,7 +120,7 @@ module Devise
|
|
120
120
|
# If user is found and still have pending invitation, email is resend unless
|
121
121
|
# resend_invitation is set to false
|
122
122
|
# Attributes must contain the user email, other attributes will be set in the record
|
123
|
-
def
|
123
|
+
def _invite(attributes={}, invited_by=nil, &block)
|
124
124
|
invitable = find_or_initialize_with_error_by(invite_key, attributes.delete(invite_key))
|
125
125
|
invitable.attributes = attributes
|
126
126
|
invitable.invited_by = invited_by
|
@@ -131,13 +131,23 @@ module Devise
|
|
131
131
|
invitable.errors.add(invite_key, :taken) unless invitable.invited? && self.resend_invitation
|
132
132
|
end
|
133
133
|
|
134
|
-
if invitable.errors.empty?
|
134
|
+
if self.validate_on_invite || invitable.errors.empty?
|
135
135
|
yield invitable if block_given?
|
136
|
-
invitable.invite!
|
136
|
+
mail = invitable.invite!
|
137
137
|
end
|
138
|
+
[invitable, mail]
|
139
|
+
end
|
140
|
+
|
141
|
+
def invite!(attributes={}, invited_by=nil, &block)
|
142
|
+
invitable, mail = _invite(attributes, invited_by, &block)
|
138
143
|
invitable
|
139
144
|
end
|
140
|
-
|
145
|
+
|
146
|
+
def invite_mail!(attributes={}, invited_by=nil, &block)
|
147
|
+
invitable, mail = _invite(attributes, invited_by, &block)
|
148
|
+
mail
|
149
|
+
end
|
150
|
+
|
141
151
|
# Attempt to find a user by it's invitation_token to set it's password.
|
142
152
|
# If a user is found, reset it's password and automatically try saving
|
143
153
|
# the record. If not user is found, returns a new user containing an
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devise_invitable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 5
|
9
|
-
-
|
10
|
-
version: 0.5.
|
9
|
+
- 6
|
10
|
+
version: 0.5.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Sergio Cambra
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-10-25 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: bundler
|