get('value'); $type = $request->get('type'); // Inicializa os resultados como null para indicar que não foram verificados $resultEmail = null; $resultNif = null; $resultPhone = null; if ($type === 'email') { $columnEmail = ['pending_user_email', 'email']; $existsInPendingUser = PendingUser::where($columnEmail[0], $value)->exists(); $existsInUser = User::where($columnEmail[1], $value)->exists(); if ($existsInPendingUser && $existsInUser) { $resultEmail = 3; } elseif ($existsInPendingUser) { $resultEmail = 2; } elseif ($existsInUser) { $resultEmail = 1; } else { $resultEmail = 0; } } elseif ($type === 'nif') { $columnNif = ['pending_user_nif', 'user_nif']; $existsInPendingUser = PendingUser::where($columnNif[0], $value)->exists(); $existsInUser = User::where($columnNif[1], $value)->exists(); if ($existsInPendingUser && $existsInUser) { $resultNif = 3; } elseif ($existsInPendingUser) { $resultNif = 2; } elseif ($existsInUser) { $resultNif = 1; } else { $resultNif = 0; } } elseif ($type === 'phone') { $resultPhone = ['pending_user_phone', 'user_phone']; $existsInPendingUser = PendingUser::where($resultPhone[0], $value)->exists(); $existsInUser = User::where($resultPhone[1], $value)->exists(); if ($existsInPendingUser && $existsInUser) { $resultPhone = 3; } elseif ($existsInPendingUser) { $resultPhone = 2; } elseif ($existsInUser) { $resultPhone = 1; } else { $resultPhone = 0; } } return response()->json([ 'result_email' => $resultEmail, 'result_nif' => $resultNif, 'result_phone' => $resultPhone ]); } public function ListPendingUsers() { $pend_users = PendingUser::all(); return view('email/pendingUsers', compact('pend_users')); } public function ShowFormUser($id) { $pend_user = PendingUser::findOrFail($id); $allTypes = TypeUser::all(); $allCompanies = Company::all(); // Verifica se o usuário autenticado é de um tipo específico if (auth()->user()->type_users == 1) { // Se o usuário autenticado tem tipo '1', envia todos os tipos $types = $allTypes; } else { // Caso contrário, filtra os tipos para excluir o tipo '1' $types = $allTypes->reject(function ($type) { return $type->type_user_id == 1; }); } return view('Admin.CrudUsers.createUser', compact('pend_user', 'types', 'allCompanies')); } public function store(Request $request) { // dd($request); $request->validate([ 'name' => 'required', 'lastName' => 'required', 'pending_email' => 'required|email|unique:pending_users,pending_user_email|unique:users,email', 'pending_phone' => 'required', 'pending_nif' => 'required', 'pending_password' => 'required|min:8|confirmed', ]); $joinName = $request->get('name') . ' ' . $request->get('lastName'); $pendingUser = new PendingUser(); $pendingUser->pending_user_name = $joinName; $pendingUser->pending_user_email = $request->get('pending_email'); $pendingUser->pending_user_phone = $request->get('pending_phone'); $pendingUser->pending_user_nif = $request->get('pending_nif'); $pendingUser->pending_user_password = Hash::make($request->get('pending_password')); $pendingUser->save(); //Recebe o token criado para preencher o formulario e apaga o mesmo apos criar o User. $receiveToken = FormAccessToken::where('token', $request->get('receiveToken'))->first(); if ($receiveToken) { $receiveToken->delete(); } // Enviar email de notificação para todos os Super_Administrador $superAdmins = User::where('type_users', 'Super_Administrador')->get(); $newUserNotification = new NewUserNotification(); foreach ($superAdmins as $superAdmin) { Mail::to($superAdmin->email)->send($newUserNotification); } return redirect('login')->with('success', '"O seu registo foi submetido e está atualmente pendente de aprovação. Por favor, aguarde antes de iniciar sessão no sistema." '); } }