From 2e1284ddd0e37a0d5b4e01f5eee99a02cc6ca71b Mon Sep 17 00:00:00 2001 From: luisfrl Date: Sat, 27 May 2023 17:40:37 -0300 Subject: [PATCH] feat: criando rule para email unico --- .../Controllers/AdministradorController.php | 12 +++--- .../Controllers/Auth/RegisterController.php | 5 ++- app/Rules/UniqueEmail.php | 41 +++++++++++++++++++ 3 files changed, 50 insertions(+), 8 deletions(-) create mode 100644 app/Rules/UniqueEmail.php diff --git a/app/Http/Controllers/AdministradorController.php b/app/Http/Controllers/AdministradorController.php index 545b3d7..fd48bfc 100755 --- a/app/Http/Controllers/AdministradorController.php +++ b/app/Http/Controllers/AdministradorController.php @@ -38,7 +38,7 @@ use Illuminate\Validation\Rule; use PDF; use DB; use App\AreaTematica; - +use App\Rules\UniqueEmail; class AdministradorController extends Controller { @@ -531,7 +531,7 @@ class AdministradorController extends Controller $validated = $request->validate([ 'name' => ['required', 'string', 'max:255'], 'tipo' => ['required'], - 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], + 'email' => ['required', 'string', 'email', 'max:255', new UniqueEmail($request->email)], 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], 'instituicaoSelect' => ['required_without:instituicao'], 'senha' => ['required', 'min:8'], @@ -543,20 +543,20 @@ class AdministradorController extends Controller $validated = $request->validate([ 'name' => ['required', 'string', 'max:255'], 'tipo' => ['required'], - 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], + 'email' => ['required', 'string', 'email', 'max:255', new UniqueEmail($request->email)], 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], 'instituicaoSelect' => ['required_without:instituicao'], 'celular' => ['required', 'string', 'telefone'], 'senha' => ['required', 'min:8'], 'confirmar_senha' => ['required', 'min:8'], - 'cpf' => ['required', 'cpf', 'unique:users'], + 'cpf' => ['required', 'cpf', new UniqueEmail($request->email)], ]); } else { $validated = $request->validate([ 'name' => ['required', 'string', 'max:255'], - 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], + 'email' => ['required', 'string', 'email', 'max:255', new UniqueEmail($request->email)], 'tipo' => ['required'], - 'cpf' => ['required', 'cpf', 'unique:users'], + 'cpf' => ['required', 'cpf', new UniqueEmail($request->email)], 'celular' => ['required', 'string', 'telefone'], 'senha' => ['required', 'min:8'], 'confirmar_senha' => ['required', 'min:8'], diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index 599a57b..26a751e 100755 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -15,6 +15,7 @@ use App\Proponente; use App\Endereco; use App\Rules\UrlValidacao; use App\Curso; +use App\Rules\UniqueEmail; class RegisterController extends Controller { @@ -60,7 +61,7 @@ class RegisterController extends Controller { return Validator::make($data, [ 'name' => ['required', 'string', 'max:255'], - 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], + 'email' => ['required', 'string', 'email', 'max:255', new UniqueEmail($data['email'])], 'password' => ['required', 'string', 'min:8', 'confirmed'], 'cpf' => ['required', 'cpf', 'unique:users'], 'rg' => ['required', 'unique:participantes'], @@ -76,7 +77,7 @@ class RegisterController extends Controller return Validator::make($data, [ 'name' => ['required', 'string', 'max:255'], - 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], + 'email' => ['required', 'string', 'email', 'max:255', new UniqueEmail($data['email'])], 'password' => ['required', 'string', 'min:8', 'confirmed'], 'cpf' => ['required', 'cpf', 'unique:users'], 'rg' => ['required', 'unique:participantes'], diff --git a/app/Rules/UniqueEmail.php b/app/Rules/UniqueEmail.php new file mode 100644 index 0000000..89b75aa --- /dev/null +++ b/app/Rules/UniqueEmail.php @@ -0,0 +1,41 @@ +where("email", 'ilike', $value)->first()); + } + + /** + * Get the validation error message. + * + * @return string + */ + public function message() + { + return 'Email já está cadastrado'; + } +} -- GitLab