diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index 835e049..30ac1c4 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -5,11 +5,16 @@ class SessionsController < ApplicationController def create @user = User.find_by(username: params[:username]) if @user && @user.authenticate(params[:password]) - sessions[:user_id] = @user.id + session[:user_id] = @user.id end redirect_to '/welcome' end + def delete + session.delete(:user_id) + redirect_to '/welcome' + end + def welcome end end diff --git a/app/views/sessions/welcome.html.erb b/app/views/sessions/welcome.html.erb index 71e1369..640f008 100644 --- a/app/views/sessions/welcome.html.erb +++ b/app/views/sessions/welcome.html.erb @@ -1,6 +1,8 @@

Welcome

<% if logged_in? %>

You are Logged In, <%= current_user.username %>

+ <%= button_to "Logout", '/logout', method: :get%> +<%else%> + <%= button_to "Login", '/login', method: :get%> + <%= button_to "Sign Up", '/users/new', method: :get%> <%end%> -<%= button_to "Login", '/login', method: :get%> -<%= button_to "Sign Up", '/users/new', method: :get%> \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 4e90759..4c00a41 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,6 +1,7 @@ Rails.application.routes.draw do resources :users, only: [:new, :create] get 'login', to: 'sessions#new' + get 'logout', to: 'sessions#delete' post 'login', to: 'sessions#create' get 'welcome', to: 'sessions#welcome' resources :books diff --git a/spec/controllers/sessions_controller_spec.rb b/spec/controllers/sessions_controller_spec.rb index c959bc7..5a7a4f2 100644 --- a/spec/controllers/sessions_controller_spec.rb +++ b/spec/controllers/sessions_controller_spec.rb @@ -14,6 +14,13 @@ RSpec.describe SessionsController do expect(subject).to redirect_to('/welcome') end end + describe 'get delete' do + # TODO test session status + subject { get 'delete' } + it 'redirects to /welcome' do + expect(subject).to redirect_to('/welcome') + end + end describe 'get welcome' do subject { get 'welcome' } it 'renders the sessions/welcome template' do