devise_invitable 0.3.0 → 0.3.1
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.
- data/Gemfile +3 -0
- data/Gemfile.lock +108 -0
- data/README.rdoc +13 -1
- data/Rakefile +4 -3
- data/VERSION +1 -1
- data/app/controllers/{invitations_controller.rb → devise/invitations_controller.rb} +1 -1
- data/app/views/devise/invitations/edit.html.erb +14 -0
- data/app/views/devise/invitations/new.html.erb +12 -0
- data/app/views/{devise_mailer → devise/mailer}/invitation.html.erb +0 -0
- data/{lib/devise_invitable → config}/locales/en.yml +3 -0
- data/devise_invitable.gemspec +48 -35
- data/lib/devise_invitable.rb +4 -1
- data/lib/devise_invitable/controllers/helpers.rb +3 -2
- data/lib/devise_invitable/controllers/url_helpers.rb +21 -17
- data/lib/devise_invitable/mailer.rb +5 -7
- data/lib/devise_invitable/model.rb +5 -4
- data/lib/devise_invitable/rails.rb +13 -2
- data/lib/devise_invitable/routes.rb +6 -25
- data/lib/devise_invitable/schema.rb +2 -2
- data/test/integration/invitable_test.rb +31 -44
- data/test/integration_tests_helper.rb +22 -3
- data/test/mailers/invitation_test.rb +4 -4
- data/test/model_tests_helper.rb +1 -1
- data/test/models/invitable_test.rb +6 -6
- data/test/models_test.rb +1 -5
- data/test/rails_app/app/controllers/application_controller.rb +1 -8
- data/test/rails_app/app/helpers/application_helper.rb +0 -1
- data/test/rails_app/app/models/user.rb +1 -1
- data/test/rails_app/app/views/layouts/application.html.erb +15 -0
- data/test/rails_app/config.ru +4 -0
- data/test/rails_app/config/application.rb +45 -0
- data/test/rails_app/config/boot.rb +13 -110
- data/test/rails_app/config/environment.rb +4 -43
- data/test/rails_app/config/environments/development.rb +22 -13
- data/test/rails_app/config/environments/production.rb +41 -20
- data/test/rails_app/config/environments/test.rb +35 -28
- data/test/rails_app/config/initializers/backtrace_silencers.rb +1 -1
- data/test/rails_app/config/initializers/devise.rb +82 -45
- data/test/rails_app/config/initializers/inflections.rb +10 -2
- data/test/rails_app/config/initializers/mime_types.rb +5 -0
- data/test/rails_app/config/initializers/secret_token.rb +7 -0
- data/test/rails_app/config/initializers/session_store.rb +2 -9
- data/test/rails_app/config/locales/en.yml +5 -0
- data/test/rails_app/config/routes.rb +3 -2
- data/test/routes_test.rb +4 -4
- data/test/test_helper.rb +7 -36
- metadata +85 -33
- data/app/views/invitations/edit.html.erb +0 -14
- data/app/views/invitations/new.html.erb +0 -12
- data/test/rails_app/config/initializers/new_rails_defaults.rb +0 -21
- data/test/rails_app/vendor/plugins/devise_invitable/init.rb +0 -1
@@ -1,2 +1,10 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# Be sure to restart your server when you modify this file.
|
2
|
+
|
3
|
+
# Add new inflection rules using the following format
|
4
|
+
# (all these examples are active by default):
|
5
|
+
# ActiveSupport::Inflector.inflections do |inflect|
|
6
|
+
# inflect.plural /^(ox)$/i, '\1en'
|
7
|
+
# inflect.singular /^(ox)en/i, '\1'
|
8
|
+
# inflect.irregular 'person', 'people'
|
9
|
+
# inflect.uncountable %w( fish sheep )
|
10
|
+
# end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
# Be sure to restart your server when you modify this file.
|
2
|
+
|
3
|
+
# Your secret key for verifying the integrity of signed cookies.
|
4
|
+
# If you change this key, all old signed cookies will become invalid!
|
5
|
+
# Make sure the secret is at least 30 characters and all random,
|
6
|
+
# no regular words or you'll be exposed to dictionary attacks.
|
7
|
+
RailsApp::Application.config.secret_token = 'e997edf9d7eba5cf89a76a046fa53f5d66261d22cfcf29e3f538c75ad2d175b106bd5d099f44f6ce34ad3b3162d71cfaa37d2d4f4b38645288331427b4c2a607'
|
@@ -1,15 +1,8 @@
|
|
1
1
|
# Be sure to restart your server when you modify this file.
|
2
2
|
|
3
|
-
|
4
|
-
# If you change this key, all old sessions will become invalid!
|
5
|
-
# Make sure the secret is at least 30 characters and all random,
|
6
|
-
# no regular words or you'll be exposed to dictionary attacks.
|
7
|
-
ActionController::Base.session = {
|
8
|
-
:key => '_rails_app_session',
|
9
|
-
:secret => '89e8147901a0d7c221ac130e0ded3eeab6dab4a97127255909f08fedaae371918b41dec9d4d75c5b27a55c3772d43c2b6a3cbac232c5cc2ce4b8ec22242f5e60'
|
10
|
-
}
|
3
|
+
RailsApp::Application.config.session_store :cookie_store, :key => '_test_app_session'
|
11
4
|
|
12
5
|
# Use the database for sessions instead of the cookie-based default,
|
13
6
|
# which shouldn't be used to store highly confidential information
|
14
7
|
# (create the session table with "rake db:sessions:create")
|
15
|
-
#
|
8
|
+
# RailsApp::Application.config.session_store :active_record_store
|
data/test/routes_test.rb
CHANGED
@@ -3,18 +3,18 @@ require 'test/test_helper'
|
|
3
3
|
class MapRoutingTest < ActionController::TestCase
|
4
4
|
|
5
5
|
test 'map new user invitation' do
|
6
|
-
assert_recognizes({:controller => 'invitations', :action => 'new'}, {:path => 'users/invitation/new', :method => :get})
|
6
|
+
assert_recognizes({:controller => 'devise/invitations', :action => 'new'}, {:path => 'users/invitation/new', :method => :get})
|
7
7
|
end
|
8
8
|
|
9
9
|
test 'map create user invitation' do
|
10
|
-
assert_recognizes({:controller => 'invitations', :action => 'create'}, {:path => 'users/invitation', :method => :post})
|
10
|
+
assert_recognizes({:controller => 'devise/invitations', :action => 'create'}, {:path => 'users/invitation', :method => :post})
|
11
11
|
end
|
12
12
|
|
13
13
|
test 'map accept user invitation' do
|
14
|
-
assert_recognizes({:controller => 'invitations', :action => 'edit'}, 'users/invitation/accept')
|
14
|
+
assert_recognizes({:controller => 'devise/invitations', :action => 'edit'}, 'users/invitation/accept')
|
15
15
|
end
|
16
16
|
|
17
17
|
test 'map update user invitation' do
|
18
|
-
assert_recognizes({:controller => 'invitations', :action => 'update'}, {:path => 'users/invitation', :method => :put})
|
18
|
+
assert_recognizes({:controller => 'devise/invitations', :action => 'update'}, {:path => 'users/invitation', :method => :put})
|
19
19
|
end
|
20
20
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,16 +1,10 @@
|
|
1
1
|
ENV["RAILS_ENV"] = "test"
|
2
|
-
require
|
2
|
+
require 'rails_app/config/environment'
|
3
3
|
|
4
|
-
require 'test_help'
|
5
|
-
require '
|
6
|
-
|
7
|
-
require
|
8
|
-
require File.join(File.dirname(__FILE__), '..', 'lib', 'devise', 'controllers', 'helpers')
|
9
|
-
ActionView::Base.send :include, Devise::Controllers::UrlHelpers
|
10
|
-
|
11
|
-
path = File.join(File.dirname(__FILE__), '..', 'app', 'views')
|
12
|
-
ActionController::Base.view_paths << path
|
13
|
-
Devise::Mailer.view_paths << path
|
4
|
+
require 'rails/test_help'
|
5
|
+
require 'bundler'
|
6
|
+
Bundler.setup(:default, :development)
|
7
|
+
require 'capybara/rails'
|
14
8
|
|
15
9
|
ActionMailer::Base.delivery_method = :test
|
16
10
|
ActionMailer::Base.perform_deliveries = true
|
@@ -29,30 +23,7 @@ ActiveRecord::Schema.define(:version => 1) do
|
|
29
23
|
t.timestamps
|
30
24
|
end
|
31
25
|
end
|
32
|
-
class User
|
33
|
-
devise :database_authenticatable, :invitable
|
34
|
-
end
|
35
|
-
ActionController::Routing::Routes.draw do |map|
|
36
|
-
map.devise_for :users
|
37
|
-
end
|
38
|
-
require File.join(File.dirname(__FILE__), '..', 'app', 'controllers', 'invitations_controller')
|
39
|
-
InvitationsController.send :include, Devise::Controllers::Helpers
|
40
|
-
|
41
|
-
Webrat.configure do |config|
|
42
|
-
config.mode = :rails
|
43
|
-
config.open_error_files = false
|
44
|
-
end
|
45
26
|
|
46
|
-
class
|
47
|
-
|
48
|
-
self.use_instantiated_fixtures = false
|
49
|
-
|
50
|
-
def assert_not(assertion, message = nil)
|
51
|
-
assert !assertion, message
|
52
|
-
end
|
53
|
-
|
54
|
-
def assert_not_blank(assertion)
|
55
|
-
assert !assertion.blank?
|
56
|
-
end
|
57
|
-
alias :assert_present :assert_not_blank
|
27
|
+
class ActionDispatch::IntegrationTest
|
28
|
+
include Capybara
|
58
29
|
end
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devise_invitable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 17
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 3
|
8
|
-
-
|
9
|
-
version: 0.3.
|
9
|
+
- 1
|
10
|
+
version: 0.3.1
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Sergio Cambra
|
@@ -14,47 +15,87 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2010-
|
18
|
+
date: 2010-09-13 00:00:00 +02:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: mocha
|
22
23
|
prerelease: false
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
24
26
|
requirements:
|
25
27
|
- - ">="
|
26
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 43
|
27
30
|
segments:
|
28
31
|
- 0
|
29
|
-
|
32
|
+
- 9
|
33
|
+
- 8
|
34
|
+
version: 0.9.8
|
30
35
|
type: :development
|
31
36
|
version_requirements: *id001
|
32
37
|
- !ruby/object:Gem::Dependency
|
33
|
-
name:
|
38
|
+
name: capybara
|
34
39
|
prerelease: false
|
35
40
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
36
42
|
requirements:
|
37
43
|
- - ">="
|
38
44
|
- !ruby/object:Gem::Version
|
45
|
+
hash: 1
|
39
46
|
segments:
|
40
47
|
- 0
|
41
|
-
|
48
|
+
- 3
|
49
|
+
- 9
|
50
|
+
version: 0.3.9
|
42
51
|
type: :development
|
43
52
|
version_requirements: *id002
|
44
53
|
- !ruby/object:Gem::Dependency
|
45
|
-
name:
|
54
|
+
name: rails
|
46
55
|
prerelease: false
|
47
56
|
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
hash: 7
|
62
|
+
segments:
|
63
|
+
- 3
|
64
|
+
- 0
|
65
|
+
- 0
|
66
|
+
version: 3.0.0
|
67
|
+
type: :development
|
68
|
+
version_requirements: *id003
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: sqlite3-ruby
|
71
|
+
prerelease: false
|
72
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
hash: 3
|
78
|
+
segments:
|
79
|
+
- 0
|
80
|
+
version: "0"
|
81
|
+
type: :development
|
82
|
+
version_requirements: *id004
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: devise
|
85
|
+
prerelease: false
|
86
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
48
88
|
requirements:
|
49
89
|
- - ~>
|
50
90
|
- !ruby/object:Gem::Version
|
91
|
+
hash: 19
|
51
92
|
segments:
|
52
93
|
- 1
|
53
94
|
- 1
|
54
95
|
- 0
|
55
96
|
version: 1.1.0
|
56
97
|
type: :runtime
|
57
|
-
version_requirements: *
|
98
|
+
version_requirements: *id005
|
58
99
|
description: It adds support for send invitations by email (it requires to be authenticated) and accept the invitation setting the password
|
59
100
|
email: sergio@entrecables.com
|
60
101
|
executables: []
|
@@ -67,20 +108,22 @@ extra_rdoc_files:
|
|
67
108
|
files:
|
68
109
|
- .document
|
69
110
|
- .gitignore
|
111
|
+
- Gemfile
|
112
|
+
- Gemfile.lock
|
70
113
|
- LICENSE
|
71
114
|
- README.rdoc
|
72
115
|
- Rakefile
|
73
116
|
- VERSION
|
74
|
-
- app/controllers/invitations_controller.rb
|
75
|
-
- app/views/
|
76
|
-
- app/views/invitations/
|
77
|
-
- app/views/
|
117
|
+
- app/controllers/devise/invitations_controller.rb
|
118
|
+
- app/views/devise/invitations/edit.html.erb
|
119
|
+
- app/views/devise/invitations/new.html.erb
|
120
|
+
- app/views/devise/mailer/invitation.html.erb
|
121
|
+
- config/locales/en.yml
|
78
122
|
- devise_invitable.gemspec
|
79
123
|
- init.rb
|
80
124
|
- lib/devise_invitable.rb
|
81
125
|
- lib/devise_invitable/controllers/helpers.rb
|
82
126
|
- lib/devise_invitable/controllers/url_helpers.rb
|
83
|
-
- lib/devise_invitable/locales/en.yml
|
84
127
|
- lib/devise_invitable/mailer.rb
|
85
128
|
- lib/devise_invitable/model.rb
|
86
129
|
- lib/devise_invitable/rails.rb
|
@@ -99,6 +142,9 @@ files:
|
|
99
142
|
- test/rails_app/app/helpers/application_helper.rb
|
100
143
|
- test/rails_app/app/models/user.rb
|
101
144
|
- test/rails_app/app/views/home/index.html.erb
|
145
|
+
- test/rails_app/app/views/layouts/application.html.erb
|
146
|
+
- test/rails_app/config.ru
|
147
|
+
- test/rails_app/config/application.rb
|
102
148
|
- test/rails_app/config/boot.rb
|
103
149
|
- test/rails_app/config/database.yml
|
104
150
|
- test/rails_app/config/environment.rb
|
@@ -108,10 +154,11 @@ files:
|
|
108
154
|
- test/rails_app/config/initializers/backtrace_silencers.rb
|
109
155
|
- test/rails_app/config/initializers/devise.rb
|
110
156
|
- test/rails_app/config/initializers/inflections.rb
|
111
|
-
- test/rails_app/config/initializers/
|
157
|
+
- test/rails_app/config/initializers/mime_types.rb
|
158
|
+
- test/rails_app/config/initializers/secret_token.rb
|
112
159
|
- test/rails_app/config/initializers/session_store.rb
|
160
|
+
- test/rails_app/config/locales/en.yml
|
113
161
|
- test/rails_app/config/routes.rb
|
114
|
-
- test/rails_app/vendor/plugins/devise_invitable/init.rb
|
115
162
|
- test/routes_test.rb
|
116
163
|
- test/test_helper.rb
|
117
164
|
has_rdoc: true
|
@@ -124,50 +171,55 @@ rdoc_options:
|
|
124
171
|
require_paths:
|
125
172
|
- lib
|
126
173
|
required_ruby_version: !ruby/object:Gem::Requirement
|
174
|
+
none: false
|
127
175
|
requirements:
|
128
176
|
- - ">="
|
129
177
|
- !ruby/object:Gem::Version
|
178
|
+
hash: 3
|
130
179
|
segments:
|
131
180
|
- 0
|
132
181
|
version: "0"
|
133
182
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
183
|
+
none: false
|
134
184
|
requirements:
|
135
185
|
- - ">="
|
136
186
|
- !ruby/object:Gem::Version
|
187
|
+
hash: 3
|
137
188
|
segments:
|
138
189
|
- 0
|
139
190
|
version: "0"
|
140
191
|
requirements: []
|
141
192
|
|
142
193
|
rubyforge_project:
|
143
|
-
rubygems_version: 1.3.
|
194
|
+
rubygems_version: 1.3.7
|
144
195
|
signing_key:
|
145
196
|
specification_version: 3
|
146
197
|
summary: An invitation strategy for devise
|
147
198
|
test_files:
|
199
|
+
- test/test_helper.rb
|
148
200
|
- test/integration/invitable_test.rb
|
149
|
-
- test/
|
150
|
-
- test/
|
151
|
-
- test/
|
152
|
-
- test/models/invitable_test.rb
|
153
|
-
- test/models_test.rb
|
201
|
+
- test/routes_test.rb
|
202
|
+
- test/rails_app/app/helpers/application_helper.rb
|
203
|
+
- test/rails_app/app/models/user.rb
|
154
204
|
- test/rails_app/app/controllers/admins_controller.rb
|
155
205
|
- test/rails_app/app/controllers/application_controller.rb
|
156
206
|
- test/rails_app/app/controllers/home_controller.rb
|
157
207
|
- test/rails_app/app/controllers/users_controller.rb
|
158
|
-
- test/rails_app/
|
159
|
-
- test/rails_app/
|
160
|
-
- test/rails_app/config/
|
208
|
+
- test/rails_app/config/initializers/devise.rb
|
209
|
+
- test/rails_app/config/initializers/inflections.rb
|
210
|
+
- test/rails_app/config/initializers/mime_types.rb
|
211
|
+
- test/rails_app/config/initializers/secret_token.rb
|
212
|
+
- test/rails_app/config/initializers/session_store.rb
|
213
|
+
- test/rails_app/config/initializers/backtrace_silencers.rb
|
161
214
|
- test/rails_app/config/environment.rb
|
162
|
-
- test/rails_app/config/environments/development.rb
|
163
215
|
- test/rails_app/config/environments/production.rb
|
164
216
|
- test/rails_app/config/environments/test.rb
|
165
|
-
- test/rails_app/config/
|
166
|
-
- test/rails_app/config/initializers/inflections.rb
|
167
|
-
- test/rails_app/config/initializers/new_rails_defaults.rb
|
168
|
-
- test/rails_app/config/initializers/session_store.rb
|
169
|
-
- test/rails_app/config/initializers/devise.rb
|
217
|
+
- test/rails_app/config/environments/development.rb
|
170
218
|
- test/rails_app/config/routes.rb
|
171
|
-
- test/rails_app/
|
172
|
-
- test/
|
173
|
-
- test/
|
219
|
+
- test/rails_app/config/application.rb
|
220
|
+
- test/rails_app/config/boot.rb
|
221
|
+
- test/integration_tests_helper.rb
|
222
|
+
- test/model_tests_helper.rb
|
223
|
+
- test/models_test.rb
|
224
|
+
- test/mailers/invitation_test.rb
|
225
|
+
- test/models/invitable_test.rb
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<h2>Set your password</h2>
|
2
|
-
|
3
|
-
<% form_for resource_name, resource, :url => invitation_path(resource_name), :html => { :method => :put } do |f| %>
|
4
|
-
<%= f.error_messages %>
|
5
|
-
<%= f.hidden_field :invitation_token %>
|
6
|
-
|
7
|
-
<p><%= f.label :password %></p>
|
8
|
-
<p><%= f.password_field :password %></p>
|
9
|
-
|
10
|
-
<p><%= f.label :password_confirmation %></p>
|
11
|
-
<p><%= f.password_field :password_confirmation %></p>
|
12
|
-
|
13
|
-
<p><%= f.submit "Set my password" %></p>
|
14
|
-
<% end %>
|
@@ -1,12 +0,0 @@
|
|
1
|
-
<h2>Send invitation</h2>
|
2
|
-
|
3
|
-
<% form_for resource_name, resource, :url => invitation_path(resource_name) do |f| %>
|
4
|
-
<%= f.error_messages %>
|
5
|
-
|
6
|
-
<p><%= f.label :email %></p>
|
7
|
-
<p><%= f.text_field :email %></p>
|
8
|
-
|
9
|
-
<p><%= f.submit "Send an invitation" %></p>
|
10
|
-
<% end %>
|
11
|
-
|
12
|
-
<%= link_to "Home", after_sign_in_path_for(resource_name) %><br />
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# Be sure to restart your server when you modify this file.
|
2
|
-
|
3
|
-
# These settings change the behavior of Rails 2 apps and will be defaults
|
4
|
-
# for Rails 3. You can remove this initializer when Rails 3 is released.
|
5
|
-
|
6
|
-
if defined?(ActiveRecord)
|
7
|
-
# Include Active Record class name as root for JSON serialized output.
|
8
|
-
ActiveRecord::Base.include_root_in_json = true
|
9
|
-
|
10
|
-
# Store the full class name (including module namespace) in STI type column.
|
11
|
-
ActiveRecord::Base.store_full_sti_class = true
|
12
|
-
end
|
13
|
-
|
14
|
-
ActionController::Routing.generate_best_match = false
|
15
|
-
|
16
|
-
# Use ISO 8601 format for JSON serialized times and dates.
|
17
|
-
ActiveSupport.use_standard_json_time_format = true
|
18
|
-
|
19
|
-
# Don't escape HTML entities in JSON, leave that for the #json_escape helper.
|
20
|
-
# if you're including raw json in an HTML page.
|
21
|
-
ActiveSupport.escape_html_entities_in_json = false
|
@@ -1 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), '../../../../../init')
|