mirror of
https://github.com/publiclab/mapknitter.git
synced 2025-12-05 16:00:00 +01:00
feat: 🎸 fetch users on spam management dashboard (#1811)
This commit is contained in:
committed by
GitHub
parent
51e082ca18
commit
cc2c14aee0
@@ -155,4 +155,18 @@ class SpamController < ApplicationController
|
|||||||
paginate_results(Map.order('updated_at DESC'))
|
paginate_results(Map.order('updated_at DESC'))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def filter_users
|
||||||
|
@users = case params[:type]
|
||||||
|
when 'banned'
|
||||||
|
paginate_results(User.where(status: 0).order('created_at DESC'))
|
||||||
|
when 'moderator'
|
||||||
|
paginate_results(User.where(role: 'moderator').order('created_at DESC'))
|
||||||
|
when 'admin'
|
||||||
|
paginate_results(User.where(role: 'admin').order('created_at DESC'))
|
||||||
|
else
|
||||||
|
paginate_results(User.where(status: 1).order('created_at DESC'))
|
||||||
|
end
|
||||||
|
puts @users.inspect
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ Mapknitter::Application.routes.draw do
|
|||||||
delete action + '/:ids', action: action, as: action
|
delete action + '/:ids', action: action, as: action
|
||||||
end
|
end
|
||||||
|
|
||||||
%w(filter_maps).each do |action|
|
%w(filter_maps filter_users).each do |action|
|
||||||
get action + '/:type', action: action, as: action
|
get action + '/:type', action: action, as: action
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -537,4 +537,50 @@ class SpamControllerTest < ActionController::TestCase
|
|||||||
assert_equal 5, Map.count
|
assert_equal 5, Map.count
|
||||||
assert_equal 1, @maps.length
|
assert_equal 1, @maps.length
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test 'should filter users and show only active users' do
|
||||||
|
@user.ban
|
||||||
|
|
||||||
|
assert_equal User::Status::BANNED, @user.status
|
||||||
|
assert_equal 'quentin', @user.login
|
||||||
|
|
||||||
|
session[:user_id] = 2
|
||||||
|
post(:filter_users, params: { type: 'active' })
|
||||||
|
@users = assigns(:users)
|
||||||
|
|
||||||
|
assert_equal 4, User.count
|
||||||
|
assert_equal 3, @users.length
|
||||||
|
assert @users.all? { |user| user.status == User::Status::NORMAL }
|
||||||
|
assert @users.collect(&:login).exclude?('quentin')
|
||||||
|
end
|
||||||
|
|
||||||
|
test 'should filter users and show only banned users' do
|
||||||
|
@user.ban
|
||||||
|
|
||||||
|
session[:user_id] = 2
|
||||||
|
post(:filter_users, params: { type: 'banned' })
|
||||||
|
@users = assigns(:users)
|
||||||
|
|
||||||
|
assert_equal 4, User.count
|
||||||
|
assert_equal 1, @users.length
|
||||||
|
assert @users.all? { |user| user.status == User::Status::BANNED && user.login == 'quentin'}
|
||||||
|
end
|
||||||
|
|
||||||
|
test 'should filter users and show only moderators' do
|
||||||
|
session[:user_id] = 2
|
||||||
|
post(:filter_users, params: { type: 'moderator', limit: 5 })
|
||||||
|
@users = assigns(:users)
|
||||||
|
|
||||||
|
assert_equal 4, User.count
|
||||||
|
assert_equal 0, @users.length
|
||||||
|
end
|
||||||
|
|
||||||
|
test 'should filter users and show only admins' do
|
||||||
|
session[:user_id] = 2
|
||||||
|
post(:filter_users, params: { type: 'admin', limit: 5 })
|
||||||
|
@users = assigns(:users)
|
||||||
|
|
||||||
|
assert_equal 4, User.count
|
||||||
|
assert_equal 1, @users.length
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -39,6 +39,10 @@ class RoutesTest < ActionDispatch::IntegrationTest
|
|||||||
end
|
end
|
||||||
|
|
||||||
test "test filter-maps route" do
|
test "test filter-maps route" do
|
||||||
assert_routing({ path: '/moderate/filter_maps/created', method: :get }, { controller: 'spam', action: 'filter_maps', type: 'created' })
|
assert_routing({ path: '/moderate/filter_maps/updated', method: :get }, { controller: 'spam', action: 'filter_maps', type: 'updated' })
|
||||||
|
end
|
||||||
|
|
||||||
|
test "test filter-users route" do
|
||||||
|
assert_routing({ path: '/moderate/filter_users/active', method: :get }, { controller: 'spam', action: 'filter_users', type: 'active' })
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user