eac_users_support 0.5.1 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 14c3e74d878d6f22bbb4010f7f52cd10787bf01de1a3d232d50ee81978014e0c
4
- data.tar.gz: 1fb7daceaa96fe817004dfda68d1958e6974a2b740de5f32a12b2cc029c79c66
3
+ metadata.gz: a6f71837cbc32ec116960a738b6587a260cbc5666b350e457b4bb7b972bb5fae
4
+ data.tar.gz: 7431f987013795c944690be25139c262f514663b641af90454b5066fa41d5675
5
5
  SHA512:
6
- metadata.gz: 8dbe5088ac0fbfc3d0bbd9b3dff6e3bf42969ba766091520c73f5dd168400d642301b0ff3807426f57a0f72f9d848bfdc286fa25b720c642769d8e00ee934541
7
- data.tar.gz: f0c4a7382d688fecb342aa6d7d0dca319bb0ba876a04d148df22b68cbcac11dd12d8d27498b8f42ee9b23c38d398ac01ca3b30f7156e465025f97be6d04de1f0
6
+ metadata.gz: 71dfb7cfcc2d9cd99c409a9b8a23d340604010ca84a3997f2a9910d996f625076e2fcc55259dbaef9c7b09aa2ab0af75a3ff7098995dcd5b5be6787310a7995e
7
+ data.tar.gz: '0227709c518159a57f3954beeafd3f92f60744f349fabb741af4dbc0bc690e8c497eca2aca4c0e963bda703573e1008012c142bc7696a55a2f783d1a96269baa'
@@ -1,10 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'devise_invitable'
3
4
  require_dependency 'eac_users_support'
4
5
 
5
6
  module EacUsersSupport
6
7
  class User < ActiveRecord::Base
7
- devise :database_authenticatable, :registerable, :rememberable
8
+ devise :confirmable, :database_authenticatable, :invitable, :recoverable, :registerable,
9
+ :rememberable
8
10
 
9
11
  validates :email, presence: true, uniqueness: true
10
12
 
@@ -0,0 +1,19 @@
1
+ <%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
2
+ <div class="field">
3
+ <%= f.label :email %><br />
4
+ <%= f.email_field :email, autofocus: true, autocomplete: "email" %>
5
+ </div>
6
+ <div class="field">
7
+ <%= f.label :password %><br />
8
+ <%= f.password_field :password, autocomplete: "current-password" %>
9
+ </div>
10
+ <% if devise_mapping.rememberable? %>
11
+ <div class="field">
12
+ <%= f.check_box :remember_me %>
13
+ <%= f.label :remember_me %>
14
+ </div>
15
+ <% end %>
16
+ <div class="actions">
17
+ <%= f.submit "Log in" %>
18
+ </div>
19
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <h2>Log in</h2>
2
+ <%= render partial: 'login_form' %>
3
+ <%= render "devise/shared/links" %>
@@ -0,0 +1,31 @@
1
+ en:
2
+ devise:
3
+ failure:
4
+ invited: "You have a pending invitation, accept it to finish creating your account."
5
+ invitations:
6
+ send_instructions: "An invitation email has been sent to %{email}."
7
+ invitation_token_invalid: "The invitation token provided is not valid!"
8
+ updated: "Your password was set successfully. You are now signed in."
9
+ updated_not_active: "Your password was set successfully."
10
+ no_invitations_remaining: "No invitations remaining"
11
+ invitation_removed: "Your invitation was removed."
12
+ new:
13
+ header: "Send invitation"
14
+ submit_button: "Send an invitation"
15
+ edit:
16
+ header: "Set your password"
17
+ submit_button: "Set my password"
18
+ mailer:
19
+ invitation_instructions:
20
+ subject: "Invitation instructions"
21
+ hello: "Hello %{email}"
22
+ someone_invited_you: "Someone has invited you to %{url}, you can accept it through the link below."
23
+ accept: "Accept invitation"
24
+ accept_until: "This invitation will be due in %{due_date}."
25
+ ignore: "If you don't want to accept the invitation, please ignore this email. Your account won't be created until you access the link above and set your password."
26
+ time:
27
+ formats:
28
+ devise:
29
+ mailer:
30
+ invitation_instructions:
31
+ accept_until_format: "%B %d, %Y %I:%M %p"
@@ -0,0 +1,21 @@
1
+ pt-BR:
2
+ devise:
3
+ invitations:
4
+ send_instructions: 'Um convite foi enviado para %{email}.'
5
+ invitation_token_invalid: 'O token fornecido não é válido!'
6
+ updated: 'Sua senha foi definida com sucesso. Agora você está conectado.'
7
+ no_invitations_remaining: "Sem conites restantes"
8
+ invitation_removed: 'Seu convite foi removido.'
9
+ new:
10
+ header: "Enviar convite"
11
+ submit_button: "Enviar convite"
12
+ edit:
13
+ header: "Defina a sua senha"
14
+ submit_button: "Definir a minha senha"
15
+ mailer:
16
+ invitation_instructions:
17
+ subject: 'Instruções Convite'
18
+ hello: 'Olá %{email}'
19
+ someone_invited_you: 'Alguém convidou você para %{url}, você pode aceitar este convite através do link abaixo.'
20
+ accept: 'Aceite o convite'
21
+ ignore: "Se você não quiser aceitar o convite, por favor ignore este e-mail.<br />A sua conta não será criado até que você acesse o link acima e defina a sua senha."
@@ -10,11 +10,10 @@ EacUsersSupport::Engine.routes.draw do
10
10
  end
11
11
  end
12
12
  end
13
- devise_for :users, class_name: 'EacUsersSupport::User', module: :devise, skip: [:registrations]
13
+ devise_for :users, class_name: 'EacUsersSupport::User', module: :devise
14
14
  resource :user, only: [:edit] do
15
15
  collection do
16
16
  patch 'update_password'
17
17
  end
18
18
  end
19
- get '/users/sign_up(.:format)', to: 'devise/sessions#new', as: 'new_user_registration'
20
19
  end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddDeviseInvitableToEacUsersSupportUsers < ActiveRecord::Migration
4
+ def up
5
+ change_table :eac_users_support_users do |t|
6
+ t.string :invitation_token
7
+ t.datetime :invitation_created_at
8
+ t.datetime :invitation_sent_at
9
+ t.datetime :invitation_accepted_at
10
+ t.integer :invitation_limit
11
+ t.references :invited_by, polymorphic: true
12
+ t.integer :invitations_count, default: 0
13
+ t.index :invitations_count
14
+ t.index :invitation_token, unique: true # for invitable
15
+ t.index :invited_by_id
16
+ end
17
+ end
18
+
19
+ def down
20
+ change_table :eac_users_support_users do |t|
21
+ t.remove_references :invited_by, polymorphic: true
22
+ t.remove :invitations_count, :invitation_limit, :invitation_sent_at, :invitation_accepted_at,
23
+ :invitation_token, :invitation_created_at
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddDeviseConfirmableToEacUsersSupportUsers < ActiveRecord::Migration
4
+ class Model < ::ActiveRecord::Base
5
+ self.table_name = :eac_users_support_users
6
+ end
7
+
8
+ def change
9
+ add_column :eac_users_support_users, :confirmation_token, :string
10
+ add_column :eac_users_support_users, :confirmed_at, :datetime
11
+ add_column :eac_users_support_users, :confirmation_sent_at, :datetime
12
+ # add_column :eac_users_support_users, :unconfirmed_email, :string # Only if using reconfirmable
13
+ add_index :eac_users_support_users, :confirmation_token, unique: true
14
+ # User.reset_column_information # Need for some types of updates, but not for update_all.
15
+ # To avoid a short time window between running the migration and updating all existing
16
+ # users as confirmed, do the following
17
+ reversible do |dir|
18
+ dir.up { Model.update_all confirmed_at: DateTime.now }
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddRecoverableToEacUsersSupportUsers < ActiveRecord::Migration
4
+ def change
5
+ change_table :eac_users_support_users do |t|
6
+ t.string :reset_password_token
7
+ t.datetime :reset_password_sent_at
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddUnconfirmedEmailToEacUsersSupportUsers < ActiveRecord::Migration
4
+ def change
5
+ add_column :eac_users_support_users, :unconfirmed_email, :string
6
+ end
7
+ end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'devise'
4
+ require 'devise_invitable'
4
5
 
5
6
  module EacUsersSupport
6
7
  class Engine < ::Rails::Engine
@@ -1,18 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'eac_ruby_utils/simple_cache'
4
+
3
5
  module EacUsersSupport
4
6
  module Tasks
5
7
  class PasswordReset
8
+ include ::EacRubyUtils::SimpleCache
9
+
6
10
  def initialize(email, administrator)
7
11
  @email = email
8
12
  @administrator = administrator
9
13
  end
10
14
 
11
15
  def run
12
- u = User.find_by(email: @email)
13
- if u
16
+ if found_user
14
17
  Rails.logger.info "Usuário encontrado com o email \"#{@email}\""
15
- u.update!(attributes_to_update)
18
+ found_user.update!(attributes_to_update)
16
19
  else
17
20
  Rails.logger.info "Usuário não encontrado com o email \"#{@email}\". Criando..."
18
21
  User.create!({ email: @email }.merge(attributes_to_update))
@@ -24,9 +27,16 @@ module EacUsersSupport
24
27
 
25
28
  def attributes_to_update
26
29
  r = { password: @email, password_confirmation: @email }
30
+ if found_user.present? && found_user.confirmed_at.blank?
31
+ r.merge(confirmed_at: ::DateTime.now)
32
+ end
27
33
  r[:administrator] = true if @administrator
28
34
  r
29
35
  end
36
+
37
+ def found_user_uncached
38
+ ::EacUsersSupport::User.find_by(email: @email)
39
+ end
30
40
  end
31
41
  end
32
42
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacUsersSupport
4
- VERSION = '0.5.1'
4
+ VERSION = '0.8.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eac_users_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esquilo Azul Company
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-22 00:00:00.000000000 Z
11
+ date: 2020-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_scaffold
@@ -44,6 +44,40 @@ dependencies:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: 4.6.1
47
+ - !ruby/object:Gem::Dependency
48
+ name: devise_invitable
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '1.7'
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 1.7.5
57
+ type: :runtime
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '1.7'
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 1.7.5
67
+ - !ruby/object:Gem::Dependency
68
+ name: eac_ruby_utils
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '0.22'
74
+ type: :runtime
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '0.22'
47
81
  - !ruby/object:Gem::Dependency
48
82
  name: rails
49
83
  requirement: !ruby/object:Gem::Requirement
@@ -79,6 +113,9 @@ dependencies:
79
113
  - - "~>"
80
114
  - !ruby/object:Gem::Version
81
115
  version: '0.1'
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: 0.1.2
82
119
  type: :development
83
120
  prerelease: false
84
121
  version_requirements: !ruby/object:Gem::Requirement
@@ -86,6 +123,9 @@ dependencies:
86
123
  - - "~>"
87
124
  - !ruby/object:Gem::Version
88
125
  version: '0.1'
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: 0.1.2
89
129
  - !ruby/object:Gem::Dependency
90
130
  name: rspec-rails
91
131
  requirement: !ruby/object:Gem::Requirement
@@ -129,16 +169,24 @@ files:
129
169
  - app/controllers/eac_users_support/application_controller.rb
130
170
  - app/controllers/eac_users_support/users_controller.rb
131
171
  - app/models/eac_users_support/user.rb
172
+ - app/views/devise/sessions/_login_form.html.erb
173
+ - app/views/devise/sessions/new.html.erb
132
174
  - app/views/eac_users_support/users/edit.html.erb
133
175
  - config/initializers/devise.rb
134
176
  - config/locales/devise.en.yml
135
177
  - config/locales/devise.pt-BR.yml
178
+ - config/locales/devise_invitable.en.yml
179
+ - config/locales/devise_invitable.pt-BR.yml
136
180
  - config/locales/pt-BR.yml
137
181
  - config/routes.rb
138
182
  - db/migrate/20160605013848_create_eac_users_support_users.rb
139
183
  - db/migrate/20160605035833_add_devise_authenticable_to_eac_users_support_users.rb
140
184
  - db/migrate/20180222202443_add_devise_rememberable_to_eac_users_support_users.rb
141
185
  - db/migrate/20180318181324_add_administrator_to_eac_users_support_users.rb
186
+ - db/migrate/20200322051231_add_devise_invitable_to_eac_users_support_users.rb
187
+ - db/migrate/20200322053003_add_devise_confirmable_to_eac_users_support_users.rb
188
+ - db/migrate/20200324203335_add_recoverable_to_eac_users_support_users.rb
189
+ - db/migrate/20200620215624_add_unconfirmed_email_to_eac_users_support_users.rb
142
190
  - lib/eac_users_support.rb
143
191
  - lib/eac_users_support/engine.rb
144
192
  - lib/eac_users_support/patches/action_controller_test_case.rb