Browse Source

Auth sign out (#2511)

* Add a spec for signing out

* Add spec showing that suspended user gets a 403 forbidden on sign out

* Allow suspended account users to sign out
closed-social-glitch-2
Matt Jankowski 7 years ago
committed by Eugen Rochko
parent
commit
268dd32d76
2 changed files with 28 additions and 0 deletions
  1. +1
    -0
      app/controllers/auth/sessions_controller.rb
  2. +27
    -0
      spec/controllers/auth/sessions_controller_spec.rb

+ 1
- 0
app/controllers/auth/sessions_controller.rb View File

@ -6,6 +6,7 @@ class Auth::SessionsController < Devise::SessionsController
layout 'auth'
skip_before_action :require_no_authentication, only: [:create]
skip_before_action :check_suspension, only: [:destroy]
prepend_before_action :authenticate_with_two_factor, if: :two_factor_enabled?, only: [:create]
def create

+ 27
- 0
spec/controllers/auth/sessions_controller_spec.rb View File

@ -16,6 +16,33 @@ RSpec.describe Auth::SessionsController, type: :controller do
end
end
describe 'DELETE #destroy' do
let(:user) { Fabricate(:user) }
before do
request.env['devise.mapping'] = Devise.mappings[:user]
end
context 'with a regular user' do
it 'redirects to home after sign out' do
sign_in(user, scope: :user)
delete :destroy
expect(response).to redirect_to(root_path)
end
end
context 'with a suspended user' do
it 'redirects to home after sign out' do
Fabricate(:account, user: user, suspended: true)
sign_in(user, scope: :user)
delete :destroy
expect(response).to redirect_to(root_path)
end
end
end
describe 'POST #create' do
before do
request.env['devise.mapping'] = Devise.mappings[:user]

Loading…
Cancel
Save