mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 22:43:33 +08:00
FEATURE: Approve suspect users is now true by default. The suspect users list was removed (#9151)
This commit is contained in:
@ -6,7 +6,6 @@
|
|||||||
{{nav-item route='adminUsersList.show' routeParam='staff' label='admin.users.nav.staff'}}
|
{{nav-item route='adminUsersList.show' routeParam='staff' label='admin.users.nav.staff'}}
|
||||||
{{nav-item route='adminUsersList.show' routeParam='suspended' label='admin.users.nav.suspended'}}
|
{{nav-item route='adminUsersList.show' routeParam='suspended' label='admin.users.nav.suspended'}}
|
||||||
{{nav-item route='adminUsersList.show' routeParam='silenced' label='admin.users.nav.silenced'}}
|
{{nav-item route='adminUsersList.show' routeParam='silenced' label='admin.users.nav.silenced'}}
|
||||||
{{nav-item route='adminUsersList.show' routeParam='suspect' label='admin.users.nav.suspect'}}
|
|
||||||
{{nav-item route='adminUsersList.show' routeParam='staged' label='admin.users.nav.staged'}}
|
{{nav-item route='adminUsersList.show' routeParam='staged' label='admin.users.nav.staged'}}
|
||||||
{{nav-item route='groups' label='groups.index.title'}}
|
{{nav-item route='groups' label='groups.index.title'}}
|
||||||
|
|
||||||
|
@ -7,8 +7,13 @@ module Jobs
|
|||||||
def execute(_args)
|
def execute(_args)
|
||||||
return unless SiteSetting.approve_suspect_users
|
return unless SiteSetting.approve_suspect_users
|
||||||
|
|
||||||
users = AdminUserIndexQuery.new
|
users = User
|
||||||
.suspect_users
|
.activated
|
||||||
|
.human_users
|
||||||
|
.joins(:user_profile, :user_stat)
|
||||||
|
.where("users.created_at <= ?", 1.day.ago)
|
||||||
|
.where("LENGTH(COALESCE(user_profiles.bio_raw, user_profiles.website, '')) > 0")
|
||||||
|
.where("user_stats.posts_read_count <= 1 AND user_stats.topics_entered <= 1")
|
||||||
.joins("LEFT OUTER JOIN reviewables r ON r.target_id = users.id AND r.target_type = 'User'")
|
.joins("LEFT OUTER JOIN reviewables r ON r.target_id = users.id AND r.target_type = 'User'")
|
||||||
.where('r.id IS NULL')
|
.where('r.id IS NULL')
|
||||||
.limit(10)
|
.limit(10)
|
||||||
|
@ -4141,7 +4141,6 @@ en:
|
|||||||
staff: "Staff"
|
staff: "Staff"
|
||||||
suspended: "Suspended"
|
suspended: "Suspended"
|
||||||
silenced: "Silenced"
|
silenced: "Silenced"
|
||||||
suspect: "Suspect"
|
|
||||||
staged: "Staged"
|
staged: "Staged"
|
||||||
approved: "Approved?"
|
approved: "Approved?"
|
||||||
titles:
|
titles:
|
||||||
@ -4158,7 +4157,6 @@ en:
|
|||||||
moderators: "Moderators"
|
moderators: "Moderators"
|
||||||
silenced: "Silenced Users"
|
silenced: "Silenced Users"
|
||||||
suspended: "Suspended Users"
|
suspended: "Suspended Users"
|
||||||
suspect: "Suspect Users"
|
|
||||||
staged: "Staged Users"
|
staged: "Staged Users"
|
||||||
not_verified: "Not verified"
|
not_verified: "Not verified"
|
||||||
check_email:
|
check_email:
|
||||||
|
@ -862,7 +862,7 @@ posting:
|
|||||||
default: 0
|
default: 0
|
||||||
enum: "TrustLevelSetting"
|
enum: "TrustLevelSetting"
|
||||||
approve_suspect_users:
|
approve_suspect_users:
|
||||||
default: false
|
default: true
|
||||||
approve_unless_staged:
|
approve_unless_staged:
|
||||||
default: false
|
default: false
|
||||||
notify_about_queued_posts_after:
|
notify_about_queued_posts_after:
|
||||||
|
@ -78,16 +78,6 @@ class AdminUserIndexQuery
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def suspect_users
|
|
||||||
@query
|
|
||||||
.activated
|
|
||||||
.human_users
|
|
||||||
.joins(:user_profile, :user_stat)
|
|
||||||
.where("users.created_at <= ?", 1.day.ago)
|
|
||||||
.where("LENGTH(COALESCE(user_profiles.bio_raw, user_profiles.website, '')) > 0")
|
|
||||||
.where("user_stats.posts_read_count <= 1 AND user_stats.topics_entered <= 1")
|
|
||||||
end
|
|
||||||
|
|
||||||
def filter_by_query_classification
|
def filter_by_query_classification
|
||||||
case params[:query]
|
case params[:query]
|
||||||
when 'staff' then @query.where("admin or moderator")
|
when 'staff' then @query.where("admin or moderator")
|
||||||
@ -96,7 +86,6 @@ class AdminUserIndexQuery
|
|||||||
when 'silenced' then @query.silenced
|
when 'silenced' then @query.silenced
|
||||||
when 'suspended' then @query.suspended
|
when 'suspended' then @query.suspended
|
||||||
when 'pending' then @query.not_suspended.where(approved: false, active: true)
|
when 'pending' then @query.not_suspended.where(approved: false, active: true)
|
||||||
when 'suspect' then suspect_users
|
|
||||||
when 'staged' then @query.where(staged: true)
|
when 'staged' then @query.where(staged: true)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -91,27 +91,6 @@ describe AdminUserIndexQuery do
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'with a suspected user' do
|
|
||||||
fab!(:bot) { Fabricate(:active_user, id: -10, created_at: 1.day.ago) }
|
|
||||||
fab!(:regular_user) { Fabricate(:user, created_at: 1.day.ago) }
|
|
||||||
fab!(:user_with_bio) { Fabricate(:active_user, created_at: 1.day.ago) }
|
|
||||||
fab!(:user_with_website) { Fabricate(:user, created_at: 1.day.ago) }
|
|
||||||
|
|
||||||
before do
|
|
||||||
user_with_website.user_profile.website = 'https://example.com'
|
|
||||||
user_with_website.user_profile.save!
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'finds the suspected user' do
|
|
||||||
bot
|
|
||||||
regular_user
|
|
||||||
user_with_bio
|
|
||||||
user_with_website
|
|
||||||
query = AdminUserIndexQuery.new(query: 'suspect')
|
|
||||||
expect(query.find_users).to contain_exactly(user_with_bio, user_with_website)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "with a pending user" do
|
describe "with a pending user" do
|
||||||
|
|
||||||
fab!(:user) { Fabricate(:user, active: true, approved: false) }
|
fab!(:user) { Fabricate(:user, active: true, approved: false) }
|
||||||
|
@ -59,7 +59,7 @@ QUnit.test("switching tabs", async assert => {
|
|||||||
const activeUser = "eviltrout";
|
const activeUser = "eviltrout";
|
||||||
const suspectUser = "sam";
|
const suspectUser = "sam";
|
||||||
const activeTitle = I18n.t("admin.users.titles.active");
|
const activeTitle = I18n.t("admin.users.titles.active");
|
||||||
const suspectTitle = I18n.t("admin.users.titles.suspect");
|
const suspectTitle = I18n.t("admin.users.titles.new");
|
||||||
|
|
||||||
await visit("/admin/users/list/active");
|
await visit("/admin/users/list/active");
|
||||||
|
|
||||||
@ -70,7 +70,7 @@ QUnit.test("switching tabs", async assert => {
|
|||||||
.includes(activeUser)
|
.includes(activeUser)
|
||||||
);
|
);
|
||||||
|
|
||||||
await click('a[href="/admin/users/list/suspect"]');
|
await click('a[href="/admin/users/list/new"]');
|
||||||
|
|
||||||
assert.equal(find(".admin-title h2").text(), suspectTitle);
|
assert.equal(find(".admin-title h2").text(), suspectTitle);
|
||||||
assert.ok(
|
assert.ok(
|
||||||
|
@ -637,7 +637,7 @@ export function applyDefaultHandlers(pretender) {
|
|||||||
return response(200, store);
|
return response(200, store);
|
||||||
});
|
});
|
||||||
|
|
||||||
pretender.get("/admin/users/list/suspect.json", () => {
|
pretender.get("/admin/users/list/new.json", () => {
|
||||||
return response(200, [
|
return response(200, [
|
||||||
{
|
{
|
||||||
id: 2,
|
id: 2,
|
||||||
|
Reference in New Issue
Block a user