diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index 707428338e..396e26849d 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -60,20 +60,26 @@ def reset_user_password end end - def useremail - if logged_in_as(['admin', 'moderator']) - if params[:address] - # address was submitted. find the username(s) and return. - @address = params[:address] - @users = User.where(email: params[:address]) - .where(status: [1, 4]) - end - else - # unauthorized. instead of return ugly 403, just send somewhere else - redirect_to '/dashboard' - end + def useremail + if logged_in_as(['admin', 'moderator']) + if params[:address] + # address was submitted. find the username(s) and return. + @address = params[:address] + if params[:include_banned] + @users = User.where(email: params[:address]) + .where('created_at > (?)', DateTime.new(2015)) # since 2015, whether banned or not + else + @users = User.where(email: params[:address]) + .where(status: [1, 4]) + end + end + else + # unauthorized. instead of return ugly 403, just send somewhere else + redirect_to '/dashboard' + end end + def spam if logged_in_as(['admin', 'moderator']) @nodes = Node.paginate(page: params[:page]) diff --git a/codecov.yml b/codecov.yml index 21992d5a67..a05330c65a 100644 --- a/codecov.yml +++ b/codecov.yml @@ -10,7 +10,9 @@ coverage: project: default: threshold: 1% - patch: on + patch: + default: + threshold: 50% ignore: - app/assets/stylesheets/ diff --git a/test/functional/admin_controller_test.rb b/test/functional/admin_controller_test.rb index e403e621e2..c15213ab6d 100644 --- a/test/functional/admin_controller_test.rb +++ b/test/functional/admin_controller_test.rb @@ -662,4 +662,21 @@ def teardown assert_response :success assert_not_nil assigns(:comments) end + + test 'admin user should be able to view page to search users by email' do + UserSession.create(users(:admin)) + + get :useremail + + assert_response :success + end + + test 'admin user should be able to search users by email' do + UserSession.create(users(:admin)) + + get :useremail, params: { address: 'bob@publiclab.org', include_banned: 'true' } + + assert_response :success + assert_not_nil assigns(:users) + end end