Feature/update confirmation email information (#145)

* Add `invited_by` foreign key to User

Allows for a User to be tied to the user who invited them

* Include `current_user` in new agent initialization parameters

* Add `shoulda-matchers` for testing associations

* Add Inviter information and associated account to welcome email

* Only show inviter info if applicable

* Update conversation spec for FFaker compatibility
This commit is contained in:
Lauren
2019-10-14 04:54:58 -04:00
committed by Sojan Jose
parent 4b33a480c7
commit b89353b76c
13 changed files with 113 additions and 13 deletions

View File

@@ -42,11 +42,11 @@ class Api::V1::AgentsController < Api::BaseController
def new_agent_params
time = Time.now.to_i
params.require(:agent).permit(:email, :name, :role).merge!(password: time, password_confirmation: time)
params.require(:agent).permit(:email, :name, :role)
.merge!(password: time, password_confirmation: time, inviter: current_user)
end
def agents
@agents ||= current_account.users
end
end

View File

@@ -3,8 +3,13 @@ class User < ApplicationRecord
include DeviseTokenAuth::Concerns::User
include Events::Types
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :confirmable
devise :database_authenticatable,
:registerable,
:recoverable,
:rememberable,
:trackable,
:validatable,
:confirmable
validates_uniqueness_of :email, scope: :account_id
validates :email, presence: true
@@ -14,6 +19,7 @@ class User < ApplicationRecord
enum role: [ :agent, :administrator ]
belongs_to :account
belongs_to :inviter, class_name: 'User', required: false
has_many :assigned_conversations, foreign_key: "assignee_id", class_name: "Conversation", dependent: :nullify
has_many :inbox_members, dependent: :destroy

View File

@@ -1,4 +1,8 @@
<p>Welcome <%= @email %>!</p>
<p>Welcome, <%= @resource.name %>!</p>
<% if @resource.inviter.present? %>
<p><%= @resource.inviter.name %>, with <%= @resource.inviter.account.name %>, has invited you to try out Chatwoot! </p>
<% end %>
<p>You can confirm your account email through the link below:</p>