devise_invitable 1.7.5 → 2.0.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 +4 -4
- data/CHANGELOG.md +6 -0
- data/README.rdoc +75 -82
- data/app/controllers/devise/invitations_controller.rb +10 -10
- data/app/controllers/devise_invitable/registrations_controller.rb +1 -1
- data/app/views/devise/invitations/edit.html.erb +14 -8
- data/app/views/devise/invitations/new.html.erb +11 -7
- data/lib/devise_invitable.rb +3 -3
- data/lib/devise_invitable/controllers/helpers.rb +1 -1
- data/lib/devise_invitable/mailer.rb +1 -1
- data/lib/devise_invitable/mapping.rb +1 -1
- data/lib/devise_invitable/models.rb +17 -17
- data/lib/devise_invitable/routes.rb +4 -4
- data/lib/devise_invitable/version.rb +1 -1
- data/lib/generators/active_record/devise_invitable_generator.rb +3 -3
- data/lib/generators/devise_invitable/devise_invitable_generator.rb +4 -8
- data/lib/generators/devise_invitable/install_generator.rb +7 -11
- data/lib/generators/devise_invitable/templates/simple_form_for/invitations/edit.html.erb +10 -6
- data/lib/generators/devise_invitable/templates/simple_form_for/invitations/new.html.erb +10 -6
- data/lib/generators/devise_invitable/views_generator.rb +6 -6
- data/test/functional/registrations_controller_test.rb +24 -25
- data/test/integration/invitation_remove_test.rb +8 -8
- data/test/integration/invitation_test.rb +46 -46
- data/test/integration_tests_helper.rb +8 -8
- data/test/model_tests_helper.rb +5 -5
- data/test/models/invitable_test.rb +110 -110
- data/test/models_test.rb +3 -3
- data/test/orm/active_record.rb +2 -2
- data/test/orm/mongoid.rb +2 -2
- data/test/rails_app/app/controllers/admins_controller.rb +1 -1
- data/test/rails_app/app/controllers/application_controller.rb +1 -1
- data/test/rails_app/app/controllers/users_controller.rb +2 -2
- data/test/rails_app/app/models/admin.rb +7 -10
- data/test/rails_app/app/models/octopussy.rb +4 -4
- data/test/rails_app/app/models/user.rb +20 -20
- data/test/rails_app/app/views/admins/new.html.erb +9 -5
- data/test/rails_app/app/views/devise/sessions/new.html.erb +14 -6
- data/test/rails_app/app/views/free_invitations/new.html.erb +9 -5
- data/test/rails_app/app/views/layouts/application.html.erb +3 -4
- data/test/rails_app/app/views/users/invitations/new.html.erb +15 -9
- data/test/rails_app/config/application.rb +6 -6
- data/test/rails_app/config/boot.rb +2 -2
- data/test/rails_app/config/credentials.yml.enc +1 -0
- data/test/rails_app/config/initializers/session_store.rb +1 -1
- data/test/rails_app/config/initializers/wrap_parameters.rb +1 -1
- data/test/rails_app/config/master.key +1 -0
- data/test/rails_app/config/routes.rb +3 -3
- data/test/routes_test.rb +4 -4
- data/test/test_helper.rb +2 -2
- metadata +22 -20
- data/test/rails_app/config/initializers/secret_token.rb +0 -7
data/test/models_test.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
|
|
3
3
|
class Invitable < User
|
|
4
|
-
devise :invitable, :
|
|
4
|
+
devise :invitable, invite_for: 5.days, validate_on_invite: true
|
|
5
5
|
end
|
|
6
6
|
|
|
7
7
|
class ModelsTest < ActiveSupport::TestCase
|
|
@@ -47,9 +47,9 @@ class ModelsTest < ActiveSupport::TestCase
|
|
|
47
47
|
|
|
48
48
|
test 'set a custom value for invite_key' do
|
|
49
49
|
old_invite_key = User.invite_key
|
|
50
|
-
User.invite_key = {:
|
|
50
|
+
User.invite_key = { username: /\A.+\z/}
|
|
51
51
|
|
|
52
|
-
assert_equal({:
|
|
52
|
+
assert_equal({ username: /\A.+\z/ }, User.invite_key)
|
|
53
53
|
|
|
54
54
|
User.invite_key = old_invite_key
|
|
55
55
|
end
|
data/test/orm/active_record.rb
CHANGED
|
@@ -2,7 +2,7 @@ ActiveRecord::Migration.verbose = false
|
|
|
2
2
|
ActiveRecord::Base.logger = Logger.new(nil)
|
|
3
3
|
|
|
4
4
|
if defined? ActiveRecord::MigrationContext # rails >= 5.2
|
|
5
|
-
ActiveRecord::MigrationContext.new(File.expand_path(
|
|
5
|
+
ActiveRecord::MigrationContext.new(File.expand_path('../../rails_app/db/migrate/', __FILE__)).migrate
|
|
6
6
|
else
|
|
7
|
-
ActiveRecord::Migrator.migrate(File.expand_path(
|
|
7
|
+
ActiveRecord::Migrator.migrate(File.expand_path('../../rails_app/db/migrate/', __FILE__))
|
|
8
8
|
end
|
data/test/orm/mongoid.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Mongoid.configure do |config|
|
|
2
2
|
if Mongoid::VERSION < '3.0.0'
|
|
3
|
-
config.master = Mongo::Connection.new('127.0.0.1', 27017).db(
|
|
3
|
+
config.master = Mongo::Connection.new('127.0.0.1', 27017).db('devise_invitable-test-suite')
|
|
4
4
|
else
|
|
5
|
-
config.connect_to(
|
|
5
|
+
config.connect_to('devise_invitable-test-suite')
|
|
6
6
|
config.use_utc = true
|
|
7
7
|
config.include_root_in_json = true
|
|
8
8
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
class ApplicationController < ActionController::Base
|
|
2
2
|
protect_from_forgery
|
|
3
|
-
before_action :configure_permitted_parameters, :
|
|
3
|
+
before_action :configure_permitted_parameters, if: :devise_controller?
|
|
4
4
|
|
|
5
5
|
protected
|
|
6
6
|
def after_sign_in_path_for(resource)
|
|
@@ -2,11 +2,11 @@ class UsersController < ApplicationController
|
|
|
2
2
|
before_action :authenticate_user!
|
|
3
3
|
|
|
4
4
|
def index
|
|
5
|
-
user_session[:cart] =
|
|
5
|
+
user_session[:cart] = 'Cart'
|
|
6
6
|
end
|
|
7
7
|
|
|
8
8
|
def expire
|
|
9
9
|
user_session['last_request_at'] = 31.minutes.ago.utc
|
|
10
|
-
render :
|
|
10
|
+
render text: 'User will be expired on next request'
|
|
11
11
|
end
|
|
12
12
|
end
|
|
@@ -3,21 +3,18 @@ class Admin < PARENT_MODEL_CLASS
|
|
|
3
3
|
include Mongoid::Document
|
|
4
4
|
include Mongoid::Attributes::Dynamic if defined?(Mongoid::Attributes::Dynamic)
|
|
5
5
|
## Database authenticatable
|
|
6
|
-
field :email, :
|
|
7
|
-
field :encrypted_password, :
|
|
6
|
+
field :email, type: String, default: ""
|
|
7
|
+
field :encrypted_password, type: String, default: ""
|
|
8
8
|
validates_presence_of :email
|
|
9
|
-
validates_presence_of :encrypted_password, :
|
|
9
|
+
validates_presence_of :encrypted_password, if: :password_required?
|
|
10
10
|
|
|
11
11
|
## Confirmable
|
|
12
|
-
field :confirmation_token, :
|
|
13
|
-
field :confirmed_at, :
|
|
14
|
-
field :confirmation_sent_at, :
|
|
15
|
-
field :unconfirmed_email, :
|
|
16
|
-
|
|
12
|
+
field :confirmation_token, type: String
|
|
13
|
+
field :confirmed_at, type: Time
|
|
14
|
+
field :confirmation_sent_at, type: Time
|
|
15
|
+
field :unconfirmed_email, type: String # Only if using reconfirmable
|
|
17
16
|
end
|
|
18
17
|
|
|
19
|
-
|
|
20
|
-
|
|
21
18
|
devise :database_authenticatable, :validatable, :registerable
|
|
22
19
|
include DeviseInvitable::Inviter
|
|
23
20
|
end
|
|
@@ -5,11 +5,11 @@ class Octopussy < PARENT_MODEL_CLASS
|
|
|
5
5
|
include Mongoid::Attributes::Dynamic if defined?(Mongoid::Attributes::Dynamic)
|
|
6
6
|
|
|
7
7
|
## Database authenticatable
|
|
8
|
-
field :email, :
|
|
9
|
-
field :encrypted_password, :
|
|
8
|
+
field :email, type: String, default: ""
|
|
9
|
+
field :encrypted_password, type: String, default: ""
|
|
10
10
|
validates_presence_of :email
|
|
11
|
-
validates_presence_of :encrypted_password, :
|
|
12
|
-
|
|
11
|
+
validates_presence_of :encrypted_password, if: :password_required?
|
|
13
12
|
end
|
|
13
|
+
|
|
14
14
|
devise :database_authenticatable, :validatable, :confirmable
|
|
15
15
|
end
|
|
@@ -4,45 +4,45 @@ class User < PARENT_MODEL_CLASS
|
|
|
4
4
|
include Mongoid::Attributes::Dynamic if defined?(Mongoid::Attributes::Dynamic)
|
|
5
5
|
|
|
6
6
|
## Database authenticatable
|
|
7
|
-
field :email, :
|
|
8
|
-
field :encrypted_password, :
|
|
7
|
+
field :email, type: String, default: ""
|
|
8
|
+
field :encrypted_password, type: String, default: ""
|
|
9
9
|
|
|
10
10
|
## Recoverable
|
|
11
|
-
field :reset_password_token, :
|
|
12
|
-
field :reset_password_sent_at, :
|
|
11
|
+
field :reset_password_token, type: String
|
|
12
|
+
field :reset_password_sent_at, type: Time
|
|
13
13
|
|
|
14
14
|
## Confirmable
|
|
15
|
-
field :confirmation_token, :
|
|
16
|
-
field :confirmed_at, :
|
|
17
|
-
field :confirmation_sent_at, :
|
|
18
|
-
field :unconfirmed_email, :
|
|
15
|
+
field :confirmation_token, type: String
|
|
16
|
+
field :confirmed_at, type: Time
|
|
17
|
+
field :confirmation_sent_at, type: Time
|
|
18
|
+
field :unconfirmed_email, type: String # Only if using reconfirmable
|
|
19
19
|
|
|
20
20
|
## Invitable
|
|
21
|
-
field :invitation_token, :
|
|
22
|
-
field :invitation_created_at, :
|
|
23
|
-
field :invitation_sent_at, :
|
|
24
|
-
field :invitation_accepted_at, :
|
|
25
|
-
field :invitation_limit, :
|
|
26
|
-
field :invited_by_id, :
|
|
27
|
-
field :invited_by_type, :
|
|
21
|
+
field :invitation_token, type: String
|
|
22
|
+
field :invitation_created_at, type: Time
|
|
23
|
+
field :invitation_sent_at, type: Time
|
|
24
|
+
field :invitation_accepted_at, type: Time
|
|
25
|
+
field :invitation_limit, type: Integer
|
|
26
|
+
field :invited_by_id, type: Integer
|
|
27
|
+
field :invited_by_type, type: String
|
|
28
28
|
|
|
29
29
|
field :username
|
|
30
30
|
field :profile_id
|
|
31
31
|
field :active
|
|
32
32
|
|
|
33
33
|
validates_presence_of :email
|
|
34
|
-
validates_presence_of :encrypted_password, :
|
|
34
|
+
validates_presence_of :encrypted_password, if: :password_required?
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
devise :database_authenticatable, :registerable, :validatable, :confirmable, :invitable, :recoverable
|
|
38
38
|
|
|
39
39
|
attr_accessor :after_invitation_created_callback_works, :after_invitation_accepted_callback_works, :bio, :token
|
|
40
|
-
validates :username, :
|
|
40
|
+
validates :username, length: { maximum: 20 }
|
|
41
41
|
|
|
42
42
|
attr_accessor :testing_accepted_or_not_invited
|
|
43
43
|
|
|
44
|
-
validates :username, :
|
|
45
|
-
validates :bio, :
|
|
44
|
+
validates :username, presence: true, if: :testing_accepted_or_not_invited_validator?
|
|
45
|
+
validates :bio, presence: true, if: :invitation_accepted?
|
|
46
46
|
|
|
47
47
|
def testing_accepted_or_not_invited_validator?
|
|
48
48
|
testing_accepted_or_not_invited && accepted_or_not_invited?
|
|
@@ -56,7 +56,7 @@ class User < PARENT_MODEL_CLASS
|
|
|
56
56
|
object.after_invitation_accepted_callback_works = true
|
|
57
57
|
end
|
|
58
58
|
|
|
59
|
-
def send_devise_notification(method, raw=nil, *args)
|
|
59
|
+
def send_devise_notification(method, raw = nil, *args)
|
|
60
60
|
Thread.current[:token] = raw
|
|
61
61
|
super
|
|
62
62
|
end
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
<h2>Send invitation</h2>
|
|
2
2
|
|
|
3
|
-
<%= form_for
|
|
4
|
-
<%=
|
|
3
|
+
<%= form_for(resource, as: resource_name, url: admin_path) do |f| %>
|
|
4
|
+
<%= render "devise/shared/error_messages", resource: resource %>
|
|
5
5
|
|
|
6
|
-
<
|
|
7
|
-
|
|
6
|
+
<div class="field">
|
|
7
|
+
<%= f.label :email %><br />
|
|
8
|
+
<%= f.text_field :email %>
|
|
9
|
+
</div>
|
|
8
10
|
|
|
9
|
-
<
|
|
11
|
+
<div class="actions">
|
|
12
|
+
<%= f.submit "Send an invitation" %>
|
|
13
|
+
</div>
|
|
10
14
|
<% end %>
|
|
11
15
|
|
|
12
16
|
<%= link_to "Home", after_sign_in_path_for(resource_name) %><br />
|
|
@@ -1,17 +1,25 @@
|
|
|
1
1
|
<h2>Log in</h2>
|
|
2
2
|
|
|
3
3
|
<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
|
|
4
|
-
<div
|
|
5
|
-
|
|
4
|
+
<div class="field">
|
|
5
|
+
<%= f.label :email %><br />
|
|
6
|
+
<%= f.email_field :email, autofocus: true %>
|
|
7
|
+
</div>
|
|
6
8
|
|
|
7
|
-
<div
|
|
8
|
-
<%= f.
|
|
9
|
+
<div class="field">
|
|
10
|
+
<%= f.label :password %><br />
|
|
11
|
+
<%= f.password_field :password, autocomplete: "off" %>
|
|
12
|
+
</div>
|
|
9
13
|
|
|
10
14
|
<% if devise_mapping.rememberable? -%>
|
|
11
|
-
<div
|
|
15
|
+
<div class="field">
|
|
16
|
+
<%= f.check_box :remember_me %> <%= f.label :remember_me %>
|
|
17
|
+
</div>
|
|
12
18
|
<% end -%>
|
|
13
19
|
|
|
14
|
-
<div
|
|
20
|
+
<div class="actions">
|
|
21
|
+
<%= f.submit "Log in" %>
|
|
22
|
+
</div>
|
|
15
23
|
<% end %>
|
|
16
24
|
|
|
17
25
|
<%= render "devise/shared/links" %>
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
<h2>Send invitation</h2>
|
|
2
2
|
|
|
3
|
-
<%= form_for
|
|
4
|
-
<%=
|
|
3
|
+
<%= form_for(resource, as: resource_name, url: free_invitation_path) do |f| %>
|
|
4
|
+
<%= render "devise/shared/error_messages", resource: resource %>
|
|
5
5
|
|
|
6
|
-
<
|
|
7
|
-
|
|
6
|
+
<div class="field">
|
|
7
|
+
<%= f.label :email %><br />
|
|
8
|
+
<%= f.text_field :email %>
|
|
9
|
+
</div>
|
|
8
10
|
|
|
9
|
-
<
|
|
11
|
+
<div class="actions">
|
|
12
|
+
<%= f.submit "Send an invitation" %>
|
|
13
|
+
</div>
|
|
10
14
|
<% end %>
|
|
11
15
|
|
|
12
16
|
<%= link_to "Home", after_sign_in_path_for(resource_name) %><br />
|
|
@@ -7,10 +7,9 @@
|
|
|
7
7
|
<%= csrf_meta_tag %>
|
|
8
8
|
</head>
|
|
9
9
|
<body>
|
|
10
|
+
<%= content_tag :p, flash[:notice], id: 'notice' unless flash[:notice].blank? %>
|
|
11
|
+
<%= content_tag :p, flash[:alert], id: 'alert' unless flash[:alert].blank? %>
|
|
10
12
|
|
|
11
|
-
<%=
|
|
12
|
-
<%= content_tag :p, flash[:alert], :id => 'alert' unless flash[:alert].blank? %>
|
|
13
|
-
<%= yield %>
|
|
14
|
-
|
|
13
|
+
<%= yield %>
|
|
15
14
|
</body>
|
|
16
15
|
</html>
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
<h2>Send an invitation</h2>
|
|
2
2
|
|
|
3
|
-
<%= form_for
|
|
4
|
-
<%=
|
|
3
|
+
<%= form_for(resource, as: resource_name, url: invitation_path(resource_name), html: { method: :post }) do |f| %>
|
|
4
|
+
<%= render "devise/shared/error_messages", resource: resource %>
|
|
5
5
|
|
|
6
|
-
<
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
<div class="field">
|
|
7
|
+
<%= f.label :username %>
|
|
8
|
+
<%= f.text_field :username %>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
<div class="field">
|
|
12
|
+
<%= f.label :email %>
|
|
13
|
+
<%= f.text_field :email %>
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
<div class="actions">
|
|
17
|
+
<%= f.submit "Send an invitation" %>
|
|
18
|
+
</div>
|
|
13
19
|
<% end %>
|
|
14
20
|
|
|
15
21
|
<%= link_to "Home", after_sign_in_path_for(resource_name) %><br />
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
require File.expand_path('../boot', __FILE__)
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
require
|
|
5
|
-
require
|
|
3
|
+
require 'action_controller/railtie'
|
|
4
|
+
require 'action_mailer/railtie'
|
|
5
|
+
require 'rails/test_unit/railtie'
|
|
6
6
|
|
|
7
7
|
Bundler.require(:default, DEVISE_ORM) if defined?(Bundler)
|
|
8
8
|
|
|
@@ -14,13 +14,13 @@ end
|
|
|
14
14
|
PARENT_MODEL_CLASS = DEVISE_ORM == :active_record ? ActiveRecord::Base : Object
|
|
15
15
|
Mongoid.load!(File.expand_path('../../mongoid.yml', __FILE__)) if DEVISE_ORM == :mongoid && Mongoid::VERSION < '3.0.0'
|
|
16
16
|
|
|
17
|
-
require
|
|
18
|
-
require
|
|
17
|
+
require 'devise'
|
|
18
|
+
require 'devise_invitable'
|
|
19
19
|
|
|
20
20
|
module RailsApp
|
|
21
21
|
class Application < Rails::Application
|
|
22
22
|
config.filter_parameters << :password
|
|
23
|
-
config.action_mailer.default_url_options = { :
|
|
23
|
+
config.action_mailer.default_url_options = { host: 'localhost:3000' }
|
|
24
24
|
if DEVISE_ORM == :active_record && Rails.version.start_with?('5')
|
|
25
25
|
config.active_record.maintain_test_schema = false
|
|
26
26
|
config.active_record.sqlite3.represent_boolean_as_integer = true if config.active_record.sqlite3
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
unless defined?(DEVISE_ORM)
|
|
2
|
-
DEVISE_ORM = (ENV[
|
|
2
|
+
DEVISE_ORM = (ENV['DEVISE_ORM'] || :active_record).to_sym
|
|
3
3
|
end
|
|
4
4
|
|
|
5
5
|
begin
|
|
6
|
-
require File.expand_path(
|
|
6
|
+
require File.expand_path('../../../../.bundle/environment', __FILE__)
|
|
7
7
|
rescue LoadError
|
|
8
8
|
require 'rubygems'
|
|
9
9
|
require 'bundler'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
d19hQaf4kv/ajU/ABKNej/dqmAPNDfiZSBnGbsfBAs3oLxNVvuJm8TJ1bUMaZ2s2hcDSZRQKHtJqcDfBMrN0egkVPYaoGvYOZ7XzU2v9O1xhEwI9wFO+0yWDDTDxC8UJr60s+Gh++jQMCxTZ+Yhl5Od8d2rqoMcuhZrGhKOuvPBARyyDSN2/Q0rvIYO+OGFFkwTK+HD2ccRzYWBNH8DBMSeh8ja83BykLE0fNL9tPmYKK1gnEsME7AN8UN/AmFqFPLOX9otfQ0imwLhnsWMYPxqfJoqvgEpuAywPW3n3nIpzX1/dwpDrHnm5tbsIwgctlq4Q2DFu6dc7H3Pzjx6INWCB5pr97zH84+gHjYuoLafUxGEN8zbxFyrPe0Pm8jPi5qfJP3HlaweFR/XhNI1s+pl2WZQqAEkjMp0h--z4CX57AIHm+gPVBc--UBpBryKnypoqwmbLDIqa8Q==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Be sure to restart your server when you modify this file.
|
|
2
2
|
|
|
3
|
-
RailsApp::Application.config.session_store :cookie_store, :
|
|
3
|
+
RailsApp::Application.config.session_store :cookie_store, key: '_test_app_session'
|
|
4
4
|
|
|
5
5
|
# Use the database for sessions instead of the cookie-based default,
|
|
6
6
|
# which shouldn't be used to store highly confidential information
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
|
|
7
7
|
ActiveSupport.on_load(:action_controller) do
|
|
8
|
-
wrap_parameters(:
|
|
8
|
+
wrap_parameters(format: [:json])
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
# Disable root element in JSON by default.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
698ff206d79207132705d29c6a1c90b1
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
RailsApp::Application.routes.draw do
|
|
2
2
|
devise_for :users
|
|
3
3
|
devise_scope :user do
|
|
4
|
-
resource :free_invitation, :
|
|
5
|
-
resource :admin, :
|
|
4
|
+
resource :free_invitation, only: [:new, :create]
|
|
5
|
+
resource :admin, only: [:new, :create]
|
|
6
6
|
end
|
|
7
7
|
devise_for :admins
|
|
8
|
-
root :
|
|
8
|
+
root to: 'home#index'
|
|
9
9
|
end
|
data/test/routes_test.rb
CHANGED
|
@@ -3,18 +3,18 @@ require 'test_helper'
|
|
|
3
3
|
class RoutesTest < ActionController::TestCase
|
|
4
4
|
|
|
5
5
|
test 'map new user invitation' do
|
|
6
|
-
assert_recognizes({:
|
|
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({:
|
|
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({:
|
|
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({:
|
|
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
metadata
CHANGED
|
@@ -1,57 +1,57 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: devise_invitable
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sergio Cambra
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2019-02-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: actionmailer
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
20
|
-
type: :
|
|
19
|
+
version: '5.0'
|
|
20
|
+
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
26
|
+
version: '5.0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
28
|
+
name: devise
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 4.
|
|
33
|
+
version: '4.6'
|
|
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.
|
|
40
|
+
version: '4.6'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
42
|
+
name: bundler
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
|
-
- - "
|
|
45
|
+
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
48
|
-
type: :
|
|
47
|
+
version: 2.0.1
|
|
48
|
+
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
|
-
- - "
|
|
52
|
+
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
54
|
+
version: 2.0.1
|
|
55
55
|
description: It adds support for send invitations by email (it requires to be authenticated)
|
|
56
56
|
and accept the invitation by setting a password.
|
|
57
57
|
email:
|
|
@@ -121,6 +121,7 @@ files:
|
|
|
121
121
|
- test/rails_app/config.ru
|
|
122
122
|
- test/rails_app/config/application.rb
|
|
123
123
|
- test/rails_app/config/boot.rb
|
|
124
|
+
- test/rails_app/config/credentials.yml.enc
|
|
124
125
|
- test/rails_app/config/database.yml
|
|
125
126
|
- test/rails_app/config/environment.rb
|
|
126
127
|
- test/rails_app/config/environments/development.rb
|
|
@@ -130,11 +131,11 @@ files:
|
|
|
130
131
|
- test/rails_app/config/initializers/devise.rb
|
|
131
132
|
- test/rails_app/config/initializers/inflections.rb
|
|
132
133
|
- test/rails_app/config/initializers/mime_types.rb
|
|
133
|
-
- test/rails_app/config/initializers/secret_token.rb
|
|
134
134
|
- test/rails_app/config/initializers/session_store.rb
|
|
135
135
|
- test/rails_app/config/initializers/wrap_parameters.rb
|
|
136
136
|
- test/rails_app/config/locales/devise.en.yml
|
|
137
137
|
- test/rails_app/config/locales/en.yml
|
|
138
|
+
- test/rails_app/config/master.key
|
|
138
139
|
- test/rails_app/config/routes.rb
|
|
139
140
|
- test/rails_app/db/migrate/20100401102949_create_tables.rb
|
|
140
141
|
- test/rails_app/mongoid.yml
|
|
@@ -156,15 +157,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
156
157
|
requirements:
|
|
157
158
|
- - ">="
|
|
158
159
|
- !ruby/object:Gem::Version
|
|
159
|
-
version: 2.
|
|
160
|
+
version: 2.2.2
|
|
160
161
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
161
162
|
requirements:
|
|
162
163
|
- - ">="
|
|
163
164
|
- !ruby/object:Gem::Version
|
|
164
|
-
version:
|
|
165
|
+
version: '0'
|
|
165
166
|
requirements: []
|
|
166
167
|
rubyforge_project:
|
|
167
|
-
rubygems_version: 2.7.
|
|
168
|
+
rubygems_version: 2.7.8
|
|
168
169
|
signing_key:
|
|
169
170
|
specification_version: 4
|
|
170
171
|
summary: An invitation strategy for Devise
|
|
@@ -201,6 +202,7 @@ test_files:
|
|
|
201
202
|
- test/rails_app/config.ru
|
|
202
203
|
- test/rails_app/config/application.rb
|
|
203
204
|
- test/rails_app/config/boot.rb
|
|
205
|
+
- test/rails_app/config/credentials.yml.enc
|
|
204
206
|
- test/rails_app/config/database.yml
|
|
205
207
|
- test/rails_app/config/environment.rb
|
|
206
208
|
- test/rails_app/config/environments/development.rb
|
|
@@ -210,11 +212,11 @@ test_files:
|
|
|
210
212
|
- test/rails_app/config/initializers/devise.rb
|
|
211
213
|
- test/rails_app/config/initializers/inflections.rb
|
|
212
214
|
- test/rails_app/config/initializers/mime_types.rb
|
|
213
|
-
- test/rails_app/config/initializers/secret_token.rb
|
|
214
215
|
- test/rails_app/config/initializers/session_store.rb
|
|
215
216
|
- test/rails_app/config/initializers/wrap_parameters.rb
|
|
216
217
|
- test/rails_app/config/locales/devise.en.yml
|
|
217
218
|
- test/rails_app/config/locales/en.yml
|
|
219
|
+
- test/rails_app/config/master.key
|
|
218
220
|
- test/rails_app/config/routes.rb
|
|
219
221
|
- test/rails_app/db/migrate/20100401102949_create_tables.rb
|
|
220
222
|
- test/rails_app/mongoid.yml
|