mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 22:43:33 +08:00
FEATURE: flag dispositions normalization
All flags should end up in one of the three dispositions - Agree - Disagree - Defer In the administration area, the *active* flags section displays 4 buttons - Agree (hide post + send PM) - Disagree - Defer - Delete Clicking "Delete" will open a modal that offer to - Delete Post & Defer Flags - Delete Post & Agree with Flags - Delete Spammer (if available) When the flag has a list associated, the list will now display 1 response and 1 reply and a "show more..." link if there are more in the conversation. Replying to the conversation will NOT give a disposition. Moderators must click the buttons that does that. If someone clicks one buttons, this will add a default moderator message from that moderator saying what happened. The *old* flags section now displays the proper dispositions and is super duper fast (no more N+9999 queries). FIX: the old list includes deleted topics FIX: the lists now properly display the topic states (deleted, closed, archived, hidden, PM) FIX: flagging a topic that you've already flagged the first post
This commit is contained in:
@ -307,17 +307,26 @@ describe Admin::UsersController do
|
||||
response.should be_forbidden
|
||||
end
|
||||
|
||||
it "returns an error if the user has posts" do
|
||||
Fabricate(:post, user: @delete_me)
|
||||
xhr :delete, :destroy, id: @delete_me.id
|
||||
response.should be_forbidden
|
||||
end
|
||||
context "user has post" do
|
||||
|
||||
before do
|
||||
@user = build(:user)
|
||||
@user.stubs(:post_count).returns(1)
|
||||
@user.stubs(:first_post_created_at).returns(Time.zone.now)
|
||||
User.expects(:find_by).with(id: @delete_me.id).returns(@user)
|
||||
end
|
||||
|
||||
it "returns an error" do
|
||||
xhr :delete, :destroy, id: @delete_me.id
|
||||
response.should be_forbidden
|
||||
end
|
||||
|
||||
it "doesn't return an error if delete_posts == true" do
|
||||
UserDestroyer.any_instance.expects(:destroy).with(@user, has_entry('delete_posts' => true)).returns(true)
|
||||
xhr :delete, :destroy, id: @delete_me.id, delete_posts: true
|
||||
response.should be_success
|
||||
end
|
||||
|
||||
it "doesn't return an error if the user has posts and delete_posts == true" do
|
||||
Fabricate(:post, user: @delete_me)
|
||||
UserDestroyer.any_instance.expects(:destroy).with(@delete_me, has_entry('delete_posts' => true)).returns(true)
|
||||
xhr :delete, :destroy, id: @delete_me.id, delete_posts: true
|
||||
response.should be_success
|
||||
end
|
||||
|
||||
it "deletes the user record" do
|
||||
|
Reference in New Issue
Block a user