Skip to content

Commit 924114f

Browse files
author
Ryan Bigg
committed
Section 7.4.9: Add feature for deleting users, including protection against self-deletion
1 parent 01871d9 commit 924114f

File tree

3 files changed

+43
-1
lines changed

3 files changed

+43
-1
lines changed

ticketee/app/controllers/admin/users_controller.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,17 @@ def update
4040
end
4141
end
4242

43+
def destroy
44+
if @user == current_user
45+
flash[:alert] = "You cannot delete yourself!"
46+
else
47+
@user.destroy
48+
flash[:notice] = "User has been deleted."
49+
end
50+
51+
redirect_to admin_users_path
52+
end
53+
4354
private
4455

4556
def set_user
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
<h2><%= @user %></h2>
22

3-
<%= link_to "Edit User", edit_admin_user_path(@user) %>
3+
<%= link_to "Edit User", edit_admin_user_path(@user), class: "edit" %>
4+
<%= link_to "Delete User", admin_user_path(@user), method: :delete,
5+
data: { confirm: "Are you sure you want to delete this user?"},
6+
class: "delete" %>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
require "rails_helper"
2+
3+
feature "Deleting users" do
4+
let!(:admin_user) { FactoryGirl.create(:admin_user) }
5+
let!(:user) { FactoryGirl.create(:user) }
6+
7+
before do
8+
login_as(admin_user)
9+
visit "/"
10+
11+
click_link "Admin"
12+
click_link "Users"
13+
end
14+
15+
scenario "Deleting a user" do
16+
click_link user.email
17+
click_link "Delete User"
18+
19+
expect(page).to have_content("User has been deleted")
20+
end
21+
22+
scenario "Users cannot delete themselves" do
23+
click_link admin_user.email
24+
click_link "Delete User"
25+
26+
expect(page).to have_content("You cannot delete yourself!")
27+
end
28+
end

0 commit comments

Comments
 (0)