2016-01-19 16:50:39 -06:00
|
|
|
class UsersController < ApplicationController
|
|
|
|
|
|
|
|
before_filter :ensure_valid_user, except: [:login, :verify_login, :new, :create]
|
|
|
|
|
|
|
|
def login
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
def logout
|
|
|
|
set_current_user(nil)
|
|
|
|
session.destroy
|
|
|
|
flash[:notice] = "Logged out"
|
|
|
|
redirect_to root_path
|
|
|
|
end
|
|
|
|
|
|
|
|
def verify_login
|
2016-01-21 11:45:46 -06:00
|
|
|
if user = User.authenticate(params[:username], params[:password])
|
2016-01-19 16:50:39 -06:00
|
|
|
set_current_user(user)
|
2016-01-21 11:45:46 -06:00
|
|
|
flash[:notice] = "Welcome, #{user.display_name}"
|
2016-01-19 16:50:39 -06:00
|
|
|
redirect_to root_path
|
|
|
|
else
|
|
|
|
flash[:error] = "Invalid credentials"
|
|
|
|
render :login
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def new
|
|
|
|
@user = User.new
|
|
|
|
end
|
|
|
|
|
|
|
|
def create
|
|
|
|
@user = User.new(user_params)
|
|
|
|
|
|
|
|
if @user.save
|
|
|
|
set_current_user(@user)
|
|
|
|
redirect_to root_path, notice: 'User was successfully created.'
|
|
|
|
else
|
|
|
|
render action: :new
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def edit
|
|
|
|
@user = current_user
|
|
|
|
end
|
|
|
|
|
|
|
|
def update
|
|
|
|
@user = current_user
|
|
|
|
if @user.update(user_params)
|
|
|
|
redirect_to root_path, notice: 'User account updated'
|
|
|
|
else
|
|
|
|
render action: 'edit'
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def user_params
|
|
|
|
params.require(:user).permit(:username, :email, :full_name, :password, :password_confirmation)
|
|
|
|
end
|
|
|
|
end
|