diff --git a/app/Http/Controllers/DomainNamesController.php b/app/Http/Controllers/DomainNamesController.php index d2cca2b..5094fc5 100644 --- a/app/Http/Controllers/DomainNamesController.php +++ b/app/Http/Controllers/DomainNamesController.php @@ -3,7 +3,6 @@ namespace App\Http\Controllers; use App\Models\DomainNames; -use App\Models\Servers; use Carbon\Carbon; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; diff --git a/app/Http/Controllers/EmailAddressesController.php b/app/Http/Controllers/EmailAddressesController.php new file mode 100644 index 0000000..1788022 --- /dev/null +++ b/app/Http/Controllers/EmailAddressesController.php @@ -0,0 +1,85 @@ + $emails]); + } + + public function add(Request $request) { + $dms = DomainNames::orderBy('utf8_name')->get(); + return view('email-addresses.add', ['dms' => $dms]); + } + + public function edit(Request $request) { + $email_id = $request->id; + $email = EmailAddresses::findOrFail($email_id); + $dms = DomainNames::orderBy('utf8_name')->get(); + return view('email-addresses.edit', ['email' => $email, 'dms' => $dms]); + } + + public function update(Request $request) { + $email_id = $request->id; + $email = EmailAddresses::findOrFail($email_id); + $this->makeChanges($request, $email); + return redirect()->route('email-addresses.edit', ['id' => $email->id])->with('status', 'Sauvegardée !'); + } + + public function store(Request $request) { + $email = new EmailAddresses(); + $this->makeChanges($request, $email); + return redirect()->route('email-addresses.edit', ['id' => $email->id])->with('status', 'Sauvegardée !'); + } + + public function delete(Request $request) { + $email_id = $request->id; + $email = EmailAddresses::findOrFail($email_id); + return view('email-addresses.delete', ['email' => $email]); + } + + public function forceDelete(Request $request) + { + $email_id = $request->id; + $otp1 = $request->otp1; + $otp2 = $request->otp2; + $otp3 = $request->otp3; + $otp4 = $request->otp4; + $otp5 = $request->otp5; + $otp6 = $request->otp6; + + $otp = $otp1 . $otp2 . $otp3 . $otp4 . $otp5 . $otp6; + + $lastCode = (new Totp())->GenerateToken(Base32::decode(Auth::user()->totp_secret), Carbon::now()->subSeconds(30)->timestamp); + $code = (new Totp())->GenerateToken(Base32::decode(Auth::user()->totp_secret)); + + if ($otp === $code || $otp === $lastCode) { + $email = EmailAddresses::findOrFail($email_id); + $email->delete(); + return redirect()->route('email-addresses.index')->with('status', 'Adresse email supprimée !'); + }else{ + return redirect()->route('email-addresses.edit', ['id' => $email_id])->with('error', 'Code de vérification invalide.'); + } + } + + private function makeChanges($request, $email) { + $account = $request->account; + $password = $request->password; + $domain_name_id = $request->d_n_id; + + $email->account = $account; + $email->password = $password; + $email->domain_name_id = $domain_name_id; + $email->save(); + } +} diff --git a/app/Models/DomainNames.php b/app/Models/DomainNames.php new file mode 100644 index 0000000..57a9003 --- /dev/null +++ b/app/Models/DomainNames.php @@ -0,0 +1,10 @@ +domain_name_id); + return $dn->utf8_name; + } +} diff --git a/resources/views/email-addresses/add.blade.php b/resources/views/email-addresses/add.blade.php new file mode 100644 index 0000000..4359778 --- /dev/null +++ b/resources/views/email-addresses/add.blade.php @@ -0,0 +1,60 @@ +@extends('layouts.app') + +@section('content') +
+
+
+
+
Ajout d'une adresse email
+ +
+ @if (session('status')) + + @endif + @if (session('error')) + + @endif +
+ @csrf +
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+ +
+
+
+
+
+
+
+
+@endsection diff --git a/resources/views/email-addresses/delete.blade.php b/resources/views/email-addresses/delete.blade.php new file mode 100644 index 0000000..40b3f7e --- /dev/null +++ b/resources/views/email-addresses/delete.blade.php @@ -0,0 +1,17 @@ +@extends('layouts.app') + +@section('content') +
+
+
+
+
Confirmation de suppression de l'adresse email Retour
+ +
+ +
+
+
+
+
+@endsection diff --git a/resources/views/email-addresses/edit.blade.php b/resources/views/email-addresses/edit.blade.php new file mode 100644 index 0000000..2f956ad --- /dev/null +++ b/resources/views/email-addresses/edit.blade.php @@ -0,0 +1,61 @@ +@extends('layouts.app') + +@section('content') +
+
+
+
+
Détails de l'adresse email Supprimer +
+ +
+ @if (session('status')) + + @endif + @if (session('error')) + + @endif +
+ @csrf +
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+ +
+
+
+
+
+
+
+
+@endsection diff --git a/resources/views/email-addresses/index.blade.php b/resources/views/email-addresses/index.blade.php new file mode 100644 index 0000000..965417d --- /dev/null +++ b/resources/views/email-addresses/index.blade.php @@ -0,0 +1,39 @@ +@extends('layouts.app') + +@section('content') +
+
+
+
+
Gestion des adresses email Ajouter
+ +
+ @if (session('status')) + + @endif + + + + + + + + + + @foreach($emails as $email) + + + + + + @endforeach + +
CompteNom de domaine
{{$email->account}}@ {{$email->domain_name}}Détails
+
+
+
+
+
+@endsection diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php index a9d6f26..cba91ea 100644 --- a/resources/views/home.blade.php +++ b/resources/views/home.blade.php @@ -39,6 +39,10 @@
Noms de domaine + +
+ Adresses email +
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index f120bda..1680cd8 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -55,6 +55,9 @@ + diff --git a/routes/web.php b/routes/web.php index daf093c..16d7b35 100644 --- a/routes/web.php +++ b/routes/web.php @@ -52,4 +52,12 @@ Route::group(['middleware' => ['auth']], function () { Route::post('/domain-names/{id}/update', 'DomainNamesController@update')->name('domain-names.update'); Route::get('/domain-names/{id}/delete', 'DomainNamesController@delete')->name('domain-names.delete'); Route::post('/domain-names/{id}/force-delete', 'DomainNamesController@forceDelete')->name('domain-names.force-delete'); + /* EMAIL ADDRESSES */ + Route::get('/email-addresses', 'EmailAddressesController@index')->name('email-addresses.index'); + Route::post('/email-addresses/store', 'EmailAddressesController@store')->name('email-addresses.store'); + Route::get('/email-addresses/add', 'EmailAddressesController@add')->name('email-addresses.add'); + Route::get('/email-addresses/{id}', 'EmailAddressesController@edit')->name('email-addresses.edit'); + Route::post('/email-addresses/{id}/update', 'EmailAddressesController@update')->name('email-addresses.update'); + Route::get('/email-addresses/{id}/delete', 'EmailAddressesController@delete')->name('email-addresses.delete'); + Route::post('/email-addresses/{id}/force-delete', 'EmailAddressesController@forceDelete')->name('email-addresses.force-delete'); });