deleting posts as an admin was bust

This commit is contained in:
Sam 2013-05-03 17:56:23 +10:00
parent 42494b5bb1
commit 3eab0be4a8
3 changed files with 16 additions and 5 deletions

View File

@ -210,7 +210,7 @@ class Guardian
end
def can_delete_all_posts?(user)
return false unless is_admin?
return false unless is_staff?
return false if user.created_at < 7.days.ago
true

View File

@ -9,8 +9,8 @@ class PostDestroyer
end
def destroy
if @user.moderator?
moderator_destroyed
if @user.staff?
staff_destroyed
elsif @user.id == @post.user_id
user_destroyed
end
@ -18,7 +18,7 @@ class PostDestroyer
# When a post is properly deleted. Well, it's still soft deleted, but it will no longer
# show up in the topic
def moderator_destroyed
def staff_destroyed
Post.transaction do
# Update the last post id to the previous post if it exists
@ -65,4 +65,4 @@ class PostDestroyer
end
end
end
end

View File

@ -9,6 +9,7 @@ describe PostDestroyer do
describe 'basic destroying' do
let(:moderator) { Fabricate(:moderator) }
let(:admin) { Fabricate(:admin) }
context "as the creator of the post" do
before do
@ -38,6 +39,16 @@ describe PostDestroyer do
post.deleted_at.should be_present
end
end
context "as an admin" do
before do
PostDestroyer.new(admin, post).destroy
end
it "deletes the post" do
post.deleted_at.should be_present
end
end
end