From ef5536a0d34d79ec85b430d027bcebcc4b338142 Mon Sep 17 00:00:00 2001 From: ygbanzato Date: Fri, 5 May 2023 18:45:07 +0100 Subject: [PATCH] user creation update from pending_users --- app/Actions/Fortify/CreateNewUser.php | 28 ++-- .../Controllers/Pending_UserController.php | 9 +- .../Middleware/RedirectIfAuthenticated.php | 2 +- app/Providers/FortifyServiceProvider.php | 2 +- config/fortify.php | 1 + .../Admin/CrudUsers/createUser.blade.php | 57 +++++++- .../views/Templates/templateAdmin.blade.php | 2 +- resources/views/auth/verify-email.blade.php | 27 ++-- ...Users.blade.php => pendingUsers.blade.php} | 5 +- routes/web.php | 124 ++++++++---------- 10 files changed, 155 insertions(+), 102 deletions(-) rename resources/views/email/{CreateUsers.blade.php => pendingUsers.blade.php} (87%) diff --git a/app/Actions/Fortify/CreateNewUser.php b/app/Actions/Fortify/CreateNewUser.php index 4ff9b026..27ce7be4 100644 --- a/app/Actions/Fortify/CreateNewUser.php +++ b/app/Actions/Fortify/CreateNewUser.php @@ -23,20 +23,20 @@ public function create(array $input): User { // dd($input); - Validator::make($input, [ - 'name' => ['required', 'string', 'max:255'], - 'email' => [ - 'required', - 'string', - 'email', - 'max:255', - Rule::unique(User::class), - ], - 'user_type' => ['required', Rule::in(['Cliente', 'Administrador', 'Super_Administrador','Gestor_Obra','Tecnicos','inspetor'])], - 'user_phone' => ['required', 'integer'], - 'user_nif' => ['required', 'string', 'max:15'], - 'password' => $this->passwordRules(), - ])->validate(); + // Validator::make($input, [ + // 'name' => ['required', 'string', 'max:255'], + // 'email' => [ + // 'required', + // 'string', + // 'email', + // 'max:255', + // Rule::unique(User::class), + // ], + // 'user_type' => ['required', Rule::in(['Cliente', 'Administrador', 'Super_Administrador','Gestor_Obra','Tecnicos','inspetor'])], + // 'user_phone' => ['required', 'integer'], + // 'user_nif' => ['required', 'string', 'max:15'], + // 'password' => $this->passwordRules(), + // ])->validate(); return User::create([ 'name' => $input['name'], diff --git a/app/Http/Controllers/Pending_UserController.php b/app/Http/Controllers/Pending_UserController.php index 69ed63bb..a9f80d9e 100644 --- a/app/Http/Controllers/Pending_UserController.php +++ b/app/Http/Controllers/Pending_UserController.php @@ -10,10 +10,15 @@ class Pending_UserController extends Controller { - public function mostrar() + public function ListPendingUsers() { $pend_users = pending_user::all(); - return view('email/CreateUsers', compact('pend_users')); + return view('email/pendingUsers', compact('pend_users')); + } + + public function ShowFormUser($id){ + $pend_users = pending_user::findOrFail($id); + return view ('Admin.CrudUsers.createUser', compact('pend_users')); } diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php index f5e7ba29..4b79996c 100644 --- a/app/Http/Middleware/RedirectIfAuthenticated.php +++ b/app/Http/Middleware/RedirectIfAuthenticated.php @@ -26,7 +26,7 @@ public function handle(Request $request, Closure $next, string ...$guards): Resp // } foreach ($guards as $guard) { - if (Auth::guard($guard)->check()) { + if (Auth::guard($guard)->check() && ! $request->is('register') && ! $request->is('email/verify')) { $user = Auth::guard($guard)->user(); switch ($user->user_type) { diff --git a/app/Providers/FortifyServiceProvider.php b/app/Providers/FortifyServiceProvider.php index 6c65d401..33ebf55d 100644 --- a/app/Providers/FortifyServiceProvider.php +++ b/app/Providers/FortifyServiceProvider.php @@ -49,7 +49,7 @@ public function boot(): void return view('auth.verify-email'); }); - + Fortify::createUsersUsing(CreateNewUser::class); Fortify::updateUserProfileInformationUsing(UpdateUserProfileInformation::class); diff --git a/config/fortify.php b/config/fortify.php index 9086e099..39f0153c 100644 --- a/config/fortify.php +++ b/config/fortify.php @@ -63,6 +63,7 @@ 'home' => RouteServiceProvider::HOME, + /* |-------------------------------------------------------------------------- | Fortify Routes Prefix / Subdomain diff --git a/resources/views/Admin/CrudUsers/createUser.blade.php b/resources/views/Admin/CrudUsers/createUser.blade.php index 63bb4693..1a48b193 100644 --- a/resources/views/Admin/CrudUsers/createUser.blade.php +++ b/resources/views/Admin/CrudUsers/createUser.blade.php @@ -1 +1,56 @@ -

CRUD USERS

\ No newline at end of file +@extends('Templates/templateAdmin') + +@section('Main-content') +

+
+
+ +
+ @csrf + +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + +
+ +
+ + +
+ +
+ + + +
+ +
+
+
+ +@endsection diff --git a/resources/views/Templates/templateAdmin.blade.php b/resources/views/Templates/templateAdmin.blade.php index f16fb4d7..32e67cb7 100644 --- a/resources/views/Templates/templateAdmin.blade.php +++ b/resources/views/Templates/templateAdmin.blade.php @@ -86,7 +86,7 @@ class="fas fa-bars">
@if (Auth::check()) - {{ Auth::user()->user_type }} + {{ Auth::user()->user_type }} @endif
diff --git a/resources/views/auth/verify-email.blade.php b/resources/views/auth/verify-email.blade.php index 55675292..e5c44301 100644 --- a/resources/views/auth/verify-email.blade.php +++ b/resources/views/auth/verify-email.blade.php @@ -1,32 +1,29 @@ - - - - - - {{ config('app.name', 'Laravel') }} - Verificar e-mail - - - +@extends('Templates/templateAdmin') + +@section('Main-content') +
-
Verificar seu endereço de e-mail
+
Email de Verificacao enviado
- @if (session('status') == 'verification-link-sent') + {{-- @if (session('status') == 'verification-link-sent') - @endif -

Antes de prosseguir, verifique seu e-mail para obter o link de verificação. Se você não recebeu o e-mail, clique no botão abaixo para solicitar outro.

+ @endif --}} + +

Um email de verificacao foi enviado para o utilizador de acordo com o email Cadastado.

@csrf
+ Voltar
- - + +@endsection diff --git a/resources/views/email/CreateUsers.blade.php b/resources/views/email/pendingUsers.blade.php similarity index 87% rename from resources/views/email/CreateUsers.blade.php rename to resources/views/email/pendingUsers.blade.php index fc7cf41b..265d1aa8 100644 --- a/resources/views/email/CreateUsers.blade.php +++ b/resources/views/email/pendingUsers.blade.php @@ -37,6 +37,7 @@ + @@ -45,9 +46,11 @@ @foreach ($pend_users as $pend_user) + - + @endforeach diff --git a/routes/web.php b/routes/web.php index 980c8b2a..6d27c807 100644 --- a/routes/web.php +++ b/routes/web.php @@ -37,16 +37,25 @@ */ Route::middleware(['auth', 'verified'])->group(function () { + + // Rotas protegidas que exigem verificação de e-mail + Route::get('/', function () { return view('Admin/index'); })->name('home'); + // Route::get('/', function () { + // return view('Admin/index'); + // })->name('home'); + // Route::get('formulario', function () { // return view('email/formAdmin'); // })->name('formulario'); + + /* |-------------------------------------------------------------------------- | Create Users with Super Admin @@ -57,15 +66,15 @@ | be assigned to the "web" middleware group. Make something great! | */ - Route::get('/CreateUsers', [Pending_UserController::class, 'mostrar'])->name('CreateUsers'); + }); -Route::get('formulario', function () { - return view('email/FormAdmin'); -})->name('formulario'); +// Route::get('formulario', function () { +// return view('email/FormAdmin'); +// })->name('formulario'); -Route::post('formulario/receive', [Pending_UserController::class, 'store'])->name('criarUser'); +// Route::post('formulario/receive', [Pending_UserController::class, 'store'])->name('criarUser'); @@ -79,37 +88,57 @@ | */ Route::middleware(['auth', 'verified', 'checksuperadmin'])->group(function () { + + + // Rotas protegidas que exigem verificação de e-mail e user_type Super_Admin - Route::get('/register', [RegisteredUserController::class, 'create']) - ->name('register'); - Route::post('/register', [RegisteredUserController::class, 'store']); + // Route::get('/register', [RegisteredUserController::class, 'create']) + // ->name('register'); + // Route::post('/register', [RegisteredUserController::class, 'store']); - - Route::get('usersProfiles', [userController::class, 'UserProfile'] )-> name('usersProfiles'); - - // Rota responsavel por enviar o formulario + Route::get('usersProfiles', [userController::class, 'UserProfile'])->name('usersProfiles'); Route::post('enviar-formulario', [FormController::class, 'enviarEmail'])->name('enviar.formulario'); -/* -|-------------------------------------------------------------------------- -| CRUD - users -|-------------------------------------------------------------------------- -| -| Definition routes to implement the CRUD model -| -*/ - + /* + |-------------------------------------------------------------------------- + | CRUD - users + |-------------------------------------------------------------------------- + | + | Definition routes to implement the CRUD model + | + */ Route::get('users/ListUsers', [userController::class, 'ListUsers'])->name('users.list'); + Route::get('users/{id}', [userController::class, 'show'])->name('users.Show'); + Route::get('users/{id}/edit', [userController::class, 'edit'])->name('users.edit'); + Route::put('users/{user}', [userController::class, 'update'])->name('users.update'); + Route::delete('users/{user}', [UserController::class, 'destroy'])->name('users.destroy'); + + + /* + |-------------------------------------------------------------------------- + | Create Users with Super Admin + |-------------------------------------------------------------------------- + | + | Here is where you can register web routes for your application. These + | routes are loaded by the RouteServiceProvider and all of them will + | be assigned to the "web" middleware group. Make something great! + | + */ + Route::get('/CreateUsers', [Pending_UserController::class, 'ListPendingUsers'])->name('CreateUsers'); + + Route::get('/CreateUsers/{id}',[Pending_UserController::class, 'ShowFormUser'])->name('ShowPendingUser'); + + Route::get('formulario', function () { + return view('email/FormAdmin'); + })->name('formulario'); + + Route::post('formulario/receive', [Pending_UserController::class, 'store'])->name('criarUser'); + + + }); -Route::get('users/{id}', [userController::class, 'show'])->name('users.Show'); - -Route::get('users/{id}/edit',[userController::class, 'edit'])->name('users.edit'); - -Route::put('users/{user}', [userController::class, 'update'])->name('users.update'); - -Route::delete('users/{user}', [UserController::class, 'destroy'])->name('users.destroy'); @@ -128,41 +157,4 @@ // } else { // return 'Failed to send email'; // } -// }); - - -// Route::get('/forgot-password', [ForgotPasswordController::class, 'showLinkRequestForm'])->name('password.request'); - -// Route::post('/forgot-password', [ForgotPasswordController::class, 'sendResetLinkEmail'])->name('password.email'); - -// Route::get('/reset-password/{token}', [ResetPasswordController::class, 'showResetForm'])->name('password.reset'); -// Route::post('/reset-password', [ResetPasswordController::class, 'reset'])->name('password.update') - - -// Route::post('/reset-password', [ResetPasswordController::class, 'reset'])->name('password.update'); -// Route::get('/forgot-password', [PasswordResetLinkController::class, 'create'])->middleware(['guest'])->name('password.request'); - - - -// Route::get('/email/verify/{id}/{hash}', function (EmailVerificationRequest $request) { -// $request->fulfill(); - -// return redirect('/'); -// })->middleware(['auth', 'signed'])->name('verification.verify'); - - -// Route::get('/email/verify', function () { -// return view('auth.verify-email'); -// })->middleware('auth')->name('verification.notice'); - -// Route::get('/email/verify/{id}/{hash}', function (EmailVerificationRequest $request) { -// $request->fulfill(); - -// return redirect('/'); -// })->middleware(['auth', 'signed'])->name('verification.verify'); - -// Route::post('/email/verification-notification', function (Request $request) { -// $request->user()->sendEmailVerificationNotification(); - -// return back()->with('status', 'verification-link-sent'); -// })->middleware(['auth', 'throttle:6,1'])->name('verification.send'); +// }); \ No newline at end of file
Numero Nome Email Verificar
{{ $pend_user->id }} {{ $pend_user->pending_name }} {{ $pend_user->pending_email }}