From 1772e9f1e45f4babf88be39284f08ba8bf98cfb3 Mon Sep 17 00:00:00 2001 From: Thorsten Eckel Date: Fri, 10 Jan 2020 11:43:36 +0100 Subject: [PATCH] Maintenance: Error message about existing user with same email address is not expressive. --- app/controllers/users_controller.rb | 4 ++-- app/models/user.rb | 4 ++-- spec/requests/user_spec.rb | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 93639e24e..5f9cff287 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -141,8 +141,8 @@ class UsersController < ApplicationController end # check if user already exists - exists = User.find_by(email: clean_params[:email].downcase.strip) - raise Exceptions::UnprocessableEntity, 'Email address is already used for other user.' if exists + exists = User.exists?(email: clean_params[:email].downcase.strip) + raise Exceptions::UnprocessableEntity, "Email address '#{clean_params[:email].downcase.strip}' is already used for other user." if exists user = User.new(clean_params) user.associations_from_param(params) diff --git a/app/models/user.rb b/app/models/user.rb index 409cd4af1..1ee4631a8 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1026,9 +1026,9 @@ try to find correct name return true if email.blank? return true if !changes return true if !changes['email'] - return true if !User.find_by(email: email.downcase.strip) + return true if !User.exists?(email: email.downcase.strip) - raise Exceptions::UnprocessableEntity, 'Email address is already used for other user.' + raise Exceptions::UnprocessableEntity, "Email address '#{email.downcase.strip}' is already used for other user." end def validate_roles(role) diff --git a/spec/requests/user_spec.rb b/spec/requests/user_spec.rb index bcbfc56eb..daf1e14e3 100644 --- a/spec/requests/user_spec.rb +++ b/spec/requests/user_spec.rb @@ -115,7 +115,7 @@ RSpec.describe 'User', type: :request, searchindex: true do post '/api/v1/users', params: params, headers: headers, as: :json expect(response).to have_http_status(:unprocessable_entity) expect(json_response['error']).to be_truthy - expect(json_response['error']).to eq('Email address is already used for other user.') + expect(json_response['error']).to eq("Email address 'rest-customer1@example.com' is already used for other user.") # email missing with enabled feature params = { firstname: 'some firstname', signup: true } @@ -295,7 +295,7 @@ RSpec.describe 'User', type: :request, searchindex: true do post '/api/v1/users', params: params, as: :json expect(response).to have_http_status(:unprocessable_entity) expect(json_response).to be_truthy - expect(json_response['error']).to eq('Email address is already used for other user.') + expect(json_response['error']).to eq("Email address 'new_agent_by_admin2@example.com' is already used for other user.") # missing required attributes params = { note: 'some note' }