This commit is contained in:
Karol Selak 2021-03-20 22:23:32 +01:00
parent f8093d2c09
commit 7412853a3e
4 changed files with 18 additions and 3 deletions

View file

@ -5,11 +5,16 @@ class SessionsController < ApplicationController
def create def create
@user = User.find_by(username: params[:username]) @user = User.find_by(username: params[:username])
if @user && @user.authenticate(params[:password]) if @user && @user.authenticate(params[:password])
sessions[:user_id] = @user.id session[:user_id] = @user.id
end end
redirect_to '/welcome' redirect_to '/welcome'
end end
def delete
session.delete(:user_id)
redirect_to '/welcome'
end
def welcome def welcome
end end
end end

View file

@ -1,6 +1,8 @@
<h1>Welcome</h1> <h1>Welcome</h1>
<% if logged_in? %> <% if logged_in? %>
<h1>You are Logged In, <%= current_user.username %></h1> <h1>You are Logged In, <%= current_user.username %></h1>
<%end%> <%= button_to "Logout", '/logout', method: :get%>
<%else%>
<%= button_to "Login", '/login', method: :get%> <%= button_to "Login", '/login', method: :get%>
<%= button_to "Sign Up", '/users/new', method: :get%> <%= button_to "Sign Up", '/users/new', method: :get%>
<%end%>

View file

@ -1,6 +1,7 @@
Rails.application.routes.draw do Rails.application.routes.draw do
resources :users, only: [:new, :create] resources :users, only: [:new, :create]
get 'login', to: 'sessions#new' get 'login', to: 'sessions#new'
get 'logout', to: 'sessions#delete'
post 'login', to: 'sessions#create' post 'login', to: 'sessions#create'
get 'welcome', to: 'sessions#welcome' get 'welcome', to: 'sessions#welcome'
resources :books resources :books

View file

@ -14,6 +14,13 @@ RSpec.describe SessionsController do
expect(subject).to redirect_to('/welcome') expect(subject).to redirect_to('/welcome')
end end
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 describe 'get welcome' do
subject { get 'welcome' } subject { get 'welcome' }
it 'renders the sessions/welcome template' do it 'renders the sessions/welcome template' do