update the crud model for users and create the pending_users table (To wait for the creation of these users the user table, as soon as Super_Admin, changes it)

This commit is contained in:
ygbanzato 2023-05-04 15:30:42 +01:00
parent c387eae375
commit a57af0d118
15 changed files with 279 additions and 340 deletions

View File

@ -0,0 +1,47 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use App\Models\pending_user;
class Pending_UserController extends Controller
{
public function mostrar()
{
$pend_users = pending_user::all();
return view('email/CreateUsers', compact('pend_users'));
}
public function store(Request $request)
{
$request->validate([
'name' => 'required',
'lastName' => 'required',
'pending_email' => 'required|email|unique:pending_users,pending_email',
'pending_phone' => 'required',
'pending_nif' => 'required',
'pending_password' => 'required|min:8|confirmed',
]);
$joinName = $request->get('name') . ' ' . $request->get('lastName');
$pendingUser = new pending_user([
'pending_name' => $joinName,
'pending_email' => $request->get('pending_email'),
'pending_phone' => $request->get('pending_phone'),
'pending_nif' => $request->get('pending_nif'),
'pending_password' => Hash::make($request->get('pending_password')),
]);
$pendingUser->save();
return redirect('/formulario')->with('success', 'O seu registro foi enviado e aguarda aprovação.');
}
}

View File

@ -18,7 +18,7 @@
class userController extends Controller class userController extends Controller
{ {
public function UserProfile (){ public function UserProfile (){
return view('Admin.profile');
} }

View File

@ -8,4 +8,27 @@
class pending_user extends Model class pending_user extends Model
{ {
use HasFactory; use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'pending_name',
'pending_email',
'pending_phone',
'pending_nif',
'pending_password',
];
/**
* The attributes that should be hidden for serialization.
*
* @var array<int, string>
*/
protected $hidden = [
'password',
];
} }

View File

@ -1,9 +1,6 @@
@extends('Templates/templateAdmin') @extends('Templates/templateAdmin')
@section('content-wrapper') @section('Main-content')
<div class="content-wrapper">
<section class="content"> <section class="content">
<div class="container-fluid"> <div class="container-fluid">
@ -109,8 +106,7 @@
</section> </section>
{{-- /.content --}} {{-- /.content --}}
</div>
{{-- ./content-wrapper --}}
@endsection @endsection

View File

@ -1,7 +1,7 @@
@extends('Templates/templateAdmin') @extends('Templates/templateAdmin')
@section('content-wrapper') @section('Main-content')
<div class="content-wrapper">
<section class="content"> <section class="content">
@ -76,65 +76,8 @@
<!-- /.card-body --> <!-- /.card-body -->
</div> </div>
<!-- /.card --> <!-- /.card -->
<div class="card">
<div class="card-header">
<h3 class="card-title">Pendentes Utilizadores</h3>
<div class="card-tools">
<div class="input-group input-group-sm" style="width: 150px;">
<input type="text" name="table_search" class="form-control float-right"
placeholder="Search">
<div class="input-group-append">
<button type="submit" class="btn btn-default">
<i class="fas fa-search"></i>
</button>
</div>
</div>
</div>
</div>
<!-- /.card-header -->
<div class="card-body table-responsive p-0">
<table class="table table-hover text-nowrap">
<thead>
<tr>
<th>Nome</th>
<th>Email</th>
<th>Ações</th>
</tr>
</thead>
<tbody>
@foreach ($users as $user)
<tr>
<td>{{ $user->name }}</td>
<td>{{ $user->email }}</td>
<td class="text-center d-flex justify-content-around">
<a href="{{ route('users.Show', ['id' => $user->id]) }}">
<i class="fa-solid fa-thumbs-up text-success"></i>
</a>
<a href="{{ route('users.edit', ['id' => $user->id]) }}">
<i class="fa-solid fa-edit text-primary"></i>
</a>
{{-- <a href="#">
<i class="fa-solid fa-trash-alt text-danger"></i>
</a> --}}
<form action="{{ route('users.destroy', $user) }}" method="POST"
onsubmit="return confirm('Are you sure you want to delete this user?');"
style="display:inline;">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-danger btn-sm">
<i class="fa-solid fa-trash-alt text-white"></i>
</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<!-- /.card-body -->
</div>
</div> </div>
@ -142,5 +85,5 @@
</section> </section>
</div>
@endsection @endsection

View File

@ -1,8 +1,6 @@
@extends('Templates/templateAdmin') @extends('Templates/templateAdmin')
@section('content-wrapper') @section('Main-content')
<div class="content-wrapper">
<section class="content"> <section class="content">
@ -56,6 +54,6 @@
</section> </section>
{{-- /.content --}} {{-- /.content --}}
</div>
{{-- /.content-wrapper --}}
@endsection @endsection

View File

@ -1,9 +1,9 @@
@extends('Templates/templateAdmin') @extends('Templates/templateAdmin')
@section('content-wrapper') @section('Main-content')
<!-- Content Wrapper. Contains page content --> <!-- Content Wrapper. Contains page content -->
<div class="content-wrapper">
<!-- Content Header (Page header) --> <!-- Content Header (Page header) -->
<div class="content-header"> <div class="content-header">
<div class="container-fluid"> <div class="container-fluid">
@ -250,8 +250,6 @@
{{-- /.container-fluid --}} {{-- /.container-fluid --}}
</section> </section>
<!-- /.content --> <!-- /.content -->
</div>
<!-- /.content-wrapper -->

View File

@ -1,7 +1,6 @@
@extends('Templates/templateAdmin') @extends('Templates/templateAdmin')
@section('content-wrapper') @section('Main-content')
<div class="content-wrapper">
<section class="content"> <section class="content">
@ -17,6 +16,7 @@
<div class="user-panel mt-3 pb-3 mb-3"> <div class="user-panel mt-3 pb-3 mb-3">
<div class="image d-flex justify-content-center align-items-center"> <div class="image d-flex justify-content-center align-items-center">
<label for="input-file" class="imgProfile-hover"> <label for="input-file" class="imgProfile-hover">
<img src="{{ asset('/img/avatar5.png') }}" <img src="{{ asset('/img/avatar5.png') }}"
class="img-circle elevation-2 imgProfile" alt="User Image"> class="img-circle elevation-2 imgProfile" alt="User Image">

View File

@ -169,18 +169,6 @@ class="fas fa-bars"></i></a>
<p> Gerir Ativos</p> <p> Gerir Ativos</p>
</a> </a>
</li> </li>
<li class="nav-item">
<a href="{{route('users.list')}}" class="nav-link">
<i class="fa-solid fa-file-edit"></i>
<p> Gerir Utilizadores</p>
</a>
</li>
<li class="nav-item">
<a href="{{ route('formulario') }}" class="nav-link">
<i class="nav-icon fas fa-tachometer-alt"></i>
<p> Criar Utilizadores </p>
</a>
</li>
</ul> </ul>
</li> </li>
@ -205,6 +193,18 @@ class="fas fa-bars"></i></a>
<p>Clientes</p> <p>Clientes</p>
</a> </a>
</li> </li>
<li class="nav-item">
<a href="{{ route('users.list') }}" class="nav-link">
<i class="fa-solid fa-file-edit"></i>
<p> Gerir Utilizadores</p>
</a>
</li>
<li class="nav-item">
<a href="{{ route('CreateUsers') }}" class="nav-link">
<i class="nav-icon fas fa-gear"></i>
<p> Criar Utilizadores </p>
</a>
</li>
</ul> </ul>
</li> </li>
@ -216,8 +216,24 @@ class="fas fa-bars"></i></a>
<!-- /.sidebar --> <!-- /.sidebar -->
</aside> </aside>
@yield('content-wrapper') <div class="content-wrapper">
<section class="content">
<div class="container-fluid">
<div class="row justify-content-center">
<div class="col-md-12">
@yield('Main-content')
</div>
{{-- ./col-md-12 --}}
</div>
{{-- ./row justify-content-center --}}
</div>
{{-- ./container-fluid --}}
</section>
{{-- ./content --}}
</div>
{{-- ./content-wrapper --}}
<footer class="main-footer"> <footer class="main-footer">
<strong>Copyright &copy; 2017-2022 <a href="#">ISPT - Industrial Services, SA</a>.</strong> <strong>Copyright &copy; 2017-2022 <a href="#">ISPT - Industrial Services, SA</a>.</strong>

View File

@ -1,12 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=h1, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>Ecra Posto de Trabalho</h1>
</body>
</html>

View File

@ -0,0 +1,62 @@
@extends('Templates/templateAdmin')
@section('Main-content')
<br><br>
<div class="card">
<div class="card-header bg-primary text-white">
<h3 class="card-title mb-0">Enviar Formulário:</h3>
</div>
<div class="card-body">
<form action="{{ route('enviar.formulario') }}" method="post">
@csrf
<div class="row">
<div class="col-sm-8">
<div class="form-group">
<label for="email">Email:</label>
<input type="email" class="form-control" name="email" required>
</div>
</div>
<div class="col-sm-4">
<button type="submit" class="btn btn-primary">Enviar</button>
</div>
</div>
</form>
</div>
</div>
{{-- ./card --}}
<div class="card card-primary">
<div class="card-header">
<h2 class="card-title">Utilizadores Pendentes :</h2>
</div>
<div class="card-body p-0">
<div class="table-responsive">
<table class="table table-bordered table-striped justify-content-center">
<thead class="text-center">
<tr>
<th>Nome</th>
<th>Email</th>
<th>Verificar</th>
</tr>
</thead>
<tbody class="text-center">
@foreach ($pend_users as $pend_user)
<tr>
<td>{{ $pend_user->pending_name }}</td>
<td>{{ $pend_user->pending_email }}</td>
<td><a href=""><i class="fa-solid fa-eye text-primary"></i></a></td>
</tr>
@endforeach
</tbody>
</table>
</div>
{{-- ./container --}}
</div>
{{-- ./Card-body --}}
</div>
{{-- ./card --}}
@endsection

View File

@ -33,14 +33,20 @@
<div class="card-body"> <div class="card-body">
<p>Insira Seus Dados : </p> <p>Insira Seus Dados : </p>
<form action="{{ route('login') }}" method="POST"> @if (session('success'))
<div class="alert alert-success">
{{ session('success') }}
</div>
@endif
<form action="{{ route('criarUser') }}" method="POST">
@csrf @csrf
<div class="row"> <div class="row">
<div class="col sm"> <div class="col sm">
<div class="input-group mb-3"> <div class="input-group mb-3">
<input type="text" name="email" class="form-control" placeholder="Nome e APelido" <input type="text" name="name" class="form-control" placeholder="Primeiro Nome ..."
id="email" placeholder="email"> id="name" required>
<div class="input-group-append"> <div class="input-group-append">
<div class="input-group-text"> <div class="input-group-text">
<span class="fas fa-user"></span> <span class="fas fa-user"></span>
@ -50,8 +56,43 @@
</div> </div>
<div class="col sm"> <div class="col sm">
<div class="input-group mb-3"> <div class="input-group mb-3">
<input type="number" name="email" class="form-control" placeholder="Email" <input type="text" name="lastName" class="form-control" placeholder="Apelido..."
id="email" placeholder="email"> id="lastName" required>
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-user"></span>
</div>
</div>
</div>
</div>
</div>
<div class="col sm">
<div class="input-group mb-3">
<input type="email" name="pending_email" class="form-control" placeholder="Email" id="pending_email" required>
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-user"></span>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col sm">
<div class="input-group mb-3">
<input type="text" name="pending_nif" class="form-control" placeholder="Nif"
id="pending_nif" required>
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-user"></span>
</div>
</div>
</div>
</div>
<div class="col sm">
<div class="input-group mb-3">
<input type="number" name="pending_phone" class="form-control" placeholder="Telemovel"
id="pending_phone" required>
<div class="input-group-append"> <div class="input-group-append">
<div class="input-group-text"> <div class="input-group-text">
<span class="fas fa-user"></span> <span class="fas fa-user"></span>
@ -64,8 +105,8 @@
<div class="row"> <div class="row">
<div class="col sm"> <div class="col sm">
<div class="input-group mb-3"> <div class="input-group mb-3">
<input type="text" name="email" class="form-control" placeholder="Nif" <input type="password" name="pending_password" class="form-control" placeholder="Password"
id="email" placeholder="email"> id="pending_password" required>
<div class="input-group-append"> <div class="input-group-append">
<div class="input-group-text"> <div class="input-group-text">
<span class="fas fa-user"></span> <span class="fas fa-user"></span>
@ -75,33 +116,8 @@
</div> </div>
<div class="col sm"> <div class="col sm">
<div class="input-group mb-3"> <div class="input-group mb-3">
<input type="number" name="email" class="form-control" placeholder="Telemovel" <input type="password" for="pending_password_confirmation" name="pending_password_confirmation" class="form-control"
id="email" placeholder="email"> placeholder="Check Password" >
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-user"></span>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col sm">
<div class="input-group mb-3">
<input type="text" name="email" class="form-control" placeholder="Password"
id="email" placeholder="email">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-user"></span>
</div>
</div>
</div>
</div>
<div class="col sm">
<div class="input-group mb-3">
<input type="number" name="email" class="form-control" placeholder="Check Password"
id="email" placeholder="email">
<div class="input-group-append"> <div class="input-group-append">
<div class="input-group-text"> <div class="input-group-text">
<span class="fas fa-user"></span> <span class="fas fa-user"></span>
@ -121,13 +137,14 @@
</div> </div>
<div class="col-sm-4"> <div class="col-sm-4">
<button type="submit" class="btn btn-primary btn-block">Iniciar</button> <button type="submit" class="btn btn-primary btn-block">Submeter</button>
</div> </div>
</div> </div>
</form> </form>
<!-- /.social-auth-links --> <!-- /.social-auth-links -->
</div> </div>
<!-- /.card-body --> <!-- /.card-body -->
@ -136,12 +153,6 @@
</div> </div>
<!-- /.register-box--> <!-- /.register-box-->
<!-- jQuery -->
<script src="{{ asset('plugins/jquery/jquery.min.js') }}"></script>
<!-- Bootstrap 4 -->
<script src="{{ asset('plugins/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
<!-- AdminLTE App -->
<script src="{{ asset('js/adminlte.min.js') }}"></script>
</body> </body>
</html> </html>

View File

@ -1,16 +0,0 @@
@extends('Templates/templateAdmin')
@section('content-wrapper')
<div class="content-wrapper">
<h1>Enviar Formulario : </h1>
<form action="{{ route('enviar.formulario') }}" method="post">
@csrf
Email : <input type="email" name="email" required>
<button type="submit">Enviar</button>
</form>
</div>
@endsection

File diff suppressed because one or more lines are too long

View File

@ -17,6 +17,7 @@
use App\Http\Controllers\Auth\PasswordResetLinkController; use App\Http\Controllers\Auth\PasswordResetLinkController;
use App\Http\Controllers\userController; use App\Http\Controllers\userController;
use App\Http\Controllers\Pending_UserController;
@ -41,11 +42,33 @@
return view('Admin/index'); return view('Admin/index');
})->name('home'); })->name('home');
Route::get('formulario', function () { // Route::get('formulario', function () {
return view('email/formAdmin'); // return view('email/formAdmin');
})->name('formulario'); // })->name('formulario');
/*
|--------------------------------------------------------------------------
| 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, 'mostrar'])->name('CreateUsers');
}); });
Route::get('formulario', function () {
return view('email/FormAdmin');
})->name('formulario');
Route::post('formulario/receive', [Pending_UserController::class, 'store'])->name('criarUser');
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -61,19 +84,13 @@
->name('register'); ->name('register');
Route::post('/register', [RegisteredUserController::class, 'store']); Route::post('/register', [RegisteredUserController::class, 'store']);
Route::get('formulario', function () {
return view('email/formAdmin');
})->name('formulario');
Route::get('usersProfiles', [userController::class, 'UserProfile'] )-> name('usersProfiles'); Route::get('usersProfiles', [userController::class, 'UserProfile'] )-> name('usersProfiles');
// Rota responsavel por enviar o formulario // Rota responsavel por enviar o formulario
Route::post('enviar-formulario', [FormController::class, 'enviarEmail'])->name('enviar.formulario'); Route::post('enviar-formulario', [FormController::class, 'enviarEmail'])->name('enviar.formulario');
Route::get('/CreateUser', function () {
return view('Admin/createUser');
});
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| CRUD - users | CRUD - users
@ -97,25 +114,21 @@
Route::get('userProfile', function (){
return view('Admin/profile');
});
// Route::get('/test-email', function () {
// $to = 'ygbanzato@isptgroup.com';
// $subject = 'Test Email from Laravel';
Route::get('/test-email', function () { // $message = Mail::raw('This is a test email from Laravel.', function ($message) use ($to, $subject) {
$to = 'ygbanzato@isptgroup.com'; // $message->to($to)->subject($subject);
$subject = 'Test Email from Laravel'; // });
$message = Mail::raw('This is a test email from Laravel.', function ($message) use ($to, $subject) { // if ($message) {
$message->to($to)->subject($subject); // return 'Email sent successfully';
}); // } else {
// return 'Failed to send email';
if ($message) { // }
return 'Email sent successfully'; // });
} else {
return 'Failed to send email';
}
});
// Route::get('/forgot-password', [ForgotPasswordController::class, 'showLinkRequestForm'])->name('password.request'); // Route::get('/forgot-password', [ForgotPasswordController::class, 'showLinkRequestForm'])->name('password.request');