implemented user destroy action in users controller that will deactivate user account [12091751]

Esse commit está contido em:
Diogo Biazus
2014-05-23 12:57:44 -04:00
commit 253656d9d7
3 arquivos alterados com 61 adições e 1 exclusões
+9 -1
Ver Arquivo
@@ -4,9 +4,17 @@ class UsersController < ApplicationController
skip_before_filter :force_http, only: [:update_password]
inherit_resources
defaults finder: :find_active!
actions :show, :update, :update_password, :unsubscribe_notifications, :uservoice_gadget, :credits
actions :show, :update, :update_password, :unsubscribe_notifications, :uservoice_gadget, :credits, :destroy
respond_to :json, only: [:contributions, :projects]
def destroy
authorize resource
resource.deactivate
sign_out(current_user) if current_user == resource
flash[:notice] = t('users.deactivated', name: resource.name)
redirect_to root_path
end
def unsubscribe_notifications
authorize resource
redirect_to user_path(current_user, anchor: 'unsubscribes')
@@ -54,6 +54,7 @@ pt:
my_data: "Meus dados"
newsletter: "Quero receber novidades do Catarse por email"
password_hint: "<i>Deixe em branco caso você não queira trocar sua senha.</i>"
deactivate: "A conta de %{name} foi desativada."
unsubscribes:
title: "Escolha de quais projetos você deseja receber notificações:"
updates: "Eu quero receber atualizações dos projetos"
+51
Ver Arquivo
@@ -14,6 +14,57 @@ describe UsersController do
let(:user){ create(:user, password: 'current_password', password_confirmation: 'current_password', authorizations: [create(:authorization, uid: 666, oauth_provider: create(:oauth_provider, name: 'facebook'))]) }
let(:current_user){ user }
describe "DELETE destroy" do
context "when user is beign deactivated by admin" do
before do
controller.unstub(:current_user)
sign_in(create(:user, admin: true))
delete :destroy, id: user.id, locale: :pt
end
it "should set deactivated_at" do
expect(user.reload.deactivated_at).to_not be_nil
end
it "should not sign user out" do
expect(controller.current_user).to_not be_nil
end
it { should redirect_to root_path }
end
context "when user is loged" do
before do
controller.unstub(:current_user)
sign_in(current_user)
delete :destroy, id: user.id, locale: :pt
end
it "should set deactivated_at" do
expect(user.reload.deactivated_at).to_not be_nil
end
it "should sign user out" do
expect(controller.current_user).to be_nil
end
it { should redirect_to root_path }
end
context "when user is not loged" do
let(:current_user) { nil }
before do
delete :destroy, id: user.id, locale: :pt
end
it "should not set deactivated_at" do
expect(user.reload.deactivated_at).to be_nil
end
it { should_not redirect_to user_path(user, anchor: 'settings') }
end
end
describe "GET unsubscribe_notifications" do
context "when user is loged" do
before do