ispt4.0_laravel/app/Http/Controllers/Pending_UserController.php

85 lines
2.7 KiB
PHP
Executable File

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Hash;
use App\Mail\NewUserNotification;
use Illuminate\Support\Facades\Mail;
use App\Models\PendingUser;
use App\Models\User;
use App\Models\TypeUser;
class Pending_UserController extends Controller
{
public function ListPendingUsers()
{
$pend_users = PendingUser::all();
return view('email/pendingUsers', compact('pend_users'));
}
public function ShowFormUser($id)
{
$pend_user = PendingUser::findOrFail($id);
$types = TypeUser::all();
return view('Admin.CrudUsers.createUser', compact('pend_user', 'types'));
}
public function store(Request $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',
]);
// $validator = Validator::make($request->all(), [
// 'name' => 'required',
// 'lastName' => 'required',
// 'pending_email' => 'required',
// 'pending_phone' => 'required',
// 'pending_nif' => 'required',
// 'pending_password' => 'required',
// 'pending_password_confirmation' => 'required'
// ]);
// dd($validator);
// if ($validator->fails()) {
// return redirect()->back()->withErrors($validator)->withInput();
// }
$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();
// 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('/formulario')->with('success', 'O seu registo foi submetido e encontra-se pendente de aprovação. Pode encerrar a página. ');
}
}