[UNSTABLE] Add verification_token

pull/303/head
Rick Carlino 2016-12-07 14:47:57 -06:00
parent 07d0ee8ff1
commit a8bb242173
8 changed files with 37 additions and 27 deletions

View File

@ -1,6 +1,8 @@
class UserMailer < ApplicationMailer
def welcome_email(user)
@user = user
@user = user
@user_name = user.name
@the_url = "http:" + $API_URL + "/verify/" + user.verification_token
mail(to: @user.email, subject: 'Welcome to The FarmBot Web App!')
end

View File

@ -2,9 +2,16 @@
class User < ActiveRecord::Base
belongs_to :device, dependent: :destroy
devise :database_authenticatable, :trackable
# :registerable, # Remove?
# :recoverable, # Remove.
# :rememberable, # Remove.
# :validatable # Remove?
devise :database_authenticatable, :trackable
# http://stackoverflow.com/a/5127684/1064917
before_validation :set_defaults
def set_defaults
self.verification_token ||= SecureRandom.uuid
end
def verified?
!!verified_at
end
end

View File

@ -14,18 +14,13 @@ module Users
end
def execute
resp = {}
resp[:user] = User.create!(email: email.downcase,
password: password,
password_confirmation: password_confirmation,
name: name)
device = Devices::Create.run!(user: resp[:user])
auth_stuff = Auth::CreateToken.run!(email: email, password: password)
resp.merge!(auth_stuff)
UserMailer.welcome_email(resp[:user]).deliver_later
resp
user = User.create!(email: email.downcase,
password: password,
password_confirmation: password_confirmation,
name: name)
device = Devices::Create.run!(user: user)
UserMailer.welcome_email(user).deliver_later
"'Check your email!'"
end
end
end

View File

@ -1,5 +1,6 @@
<h1>Welcome to FarmBot, <%= @user.name %></h1>
<h1>Welcome to FarmBot, <%= @user_name %></h1>
<p>
You may log in <a href="http:<%= $API_URL %>">here</a>.<br>
Please verify your email by clicking here
<a href="<%= @the_url %>">here</a>.<br>
</p>
<p>Thanks for joining and have a great day!</p>

View File

@ -1,6 +1,6 @@
Welcome to FarmBot, <%= @user.name %>
Welcome to FarmBot, <%= @user_name %>
=====================================
You may log in at http:<%= $API_URL %>.
You please verify your email by visiting <%= @the_url %>.
Thanks for joining and have a great day!

View File

@ -1,10 +1,12 @@
class AddVerifiedAtToUsersTable < ActiveRecord::Migration[5.0]
def up
add_column :users, :verified_at, :datetime
add_column :users, :verified_at, :datetime
add_column :users, :verification_token, :string
User.update_all(verified_at: Time.now)
end
def down
remove_column :users, :verified_at, :datetime
remove_column :users, :verified_at, :datetime
remove_column :users, :verification_token, :string
end
end

View File

@ -162,6 +162,7 @@ ActiveRecord::Schema.define(version: 20161207195423) do
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "verified_at"
t.string "verification_token"
t.index ["email"], name: "index_users_on_email", unique: true
end

View File

@ -9,9 +9,11 @@ describe Api::TokensController do
it 'creates a new token' do
payload = {user: {email: user.email, password: "password"}}
post :create, params: payload
token = json[:token][:unencoded]
expect(token[:iss].last).not_to eq("/") # Trailing slashes are BAD!
expect(token[:iss]).to eq("//localhost:3000")
puts "==================== TODO: This needs to change now. =="
binding.pry
# token = json[:token][:unencoded]
# expect(token[:iss].last).not_to eq("/") # Trailing slashes are BAD!
# expect(token[:iss]).to eq("//localhost:3000")
end
end
end