diff --git a/app/Http/Controllers/Dashboard/CompanyController.php b/app/Http/Controllers/Dashboard/CompanyController.php index 855a819..ba0bb9f 100644 --- a/app/Http/Controllers/Dashboard/CompanyController.php +++ b/app/Http/Controllers/Dashboard/CompanyController.php @@ -5,6 +5,7 @@ use App\Exports\CompanyExport; use App\Http\Controllers\Controller; use App\Http\Requests\CompanyRequest; +use App\Mail\AccountVerification; use App\Models\Company; use App\Models\LoginHistory; use App\Models\Role; @@ -12,6 +13,7 @@ use Carbon\Carbon; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Mail; use Maatwebsite\Excel\Facades\Excel; class CompanyController extends Controller @@ -227,6 +229,8 @@ public function processAcceptAction(Request $request, $id, $type, $category){ $user->update([ 'status' => '1' ]); + + Mail::to($user->email)->send(new AccountVerification($user, 'accepted')); }else if($category === 'edit-request' && $user->company->edit_status === '1'){ $user->company->update([ 'edit_status' => '2' @@ -237,8 +241,6 @@ public function processAcceptAction(Request $request, $id, $type, $category){ return response()->json([ 'message' => 'Berhasil menyetujui'.($category === 'edit-request' ? ' permohonan edit' : '').' perusahaan.' ]); - - // return redirect()->back()->with('success-status', 'Berhasil menyetujui'.($category === 'edit-request' ? 'permohonan edit' : '').'perusahaan.'); } public function processRejectAction(Request $request, $id, $type, $category){ @@ -264,6 +266,8 @@ public function processRejectAction(Request $request, $id, $type, $category){ $user->company->update([ 'rejection_reason' => $validatedData['rejection_reason'] ]); + + Mail::to($user->email)->send(new AccountVerification($user, 'rejected', $validatedData['rejection_reason'])); }else if($category === 'edit-request' && $user->company->edit_status === '1'){ $user->company->update([ 'edit_status' => '3', diff --git a/app/Http/Controllers/Dashboard/UserController.php b/app/Http/Controllers/Dashboard/UserController.php index 13d779b..151018e 100644 --- a/app/Http/Controllers/Dashboard/UserController.php +++ b/app/Http/Controllers/Dashboard/UserController.php @@ -7,11 +7,13 @@ use App\Http\Requests\ChangePasswordRequest; use App\Http\Requests\ResetPasswordRequest; use App\Http\Requests\UserRequest; +use App\Mail\AccountVerification; use App\Models\LoginHistory; use App\Models\Role; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Mail; class UserController extends Controller { @@ -223,6 +225,8 @@ public function statusAction(Request $request, $id, $action){ 'status' => '1' ]); + Mail::to($user->email)->send(new AccountVerification($user, 'accepted')); + return response()->json(['message' => 'Berhasil menyetujui pengguna.']); }else if($action == 'reject'){ @@ -240,14 +244,13 @@ public function statusAction(Request $request, $id, $action){ 'rejection_reason' => $validatedData['rejection_reason'] ]); + Mail::to($user->email)->send(new AccountVerification($user, 'rejected', strip_tags($validatedData['rejection_reason']))); + return redirect()->back()->with('success-status', 'Berhasil menolak pengguna.'); } } - // return redirect()->route('dashboard.users.index')->with('success-status', 'Berhasil menyetujui pengguna.'); - - } public function setting(){ diff --git a/app/Mail/AccountVerification.php b/app/Mail/AccountVerification.php new file mode 100644 index 0000000..86391e3 --- /dev/null +++ b/app/Mail/AccountVerification.php @@ -0,0 +1,59 @@ +user = $user; + $this->status = $status; // 'accepted' atau 'rejected' + $this->reason = $rejectionReason; + } + + /** + * Get the message envelope. + */ + public function envelope(): Envelope + { + return new Envelope( + subject: $this->status === 'accepted' ? 'Akun Simedkom Anda Disetujui' : 'Akun Simedkom Anda Ditolak' + ); + } + + /** + * Get the message content definition. + */ + public function content(): Content + { + return new Content( + markdown: 'emails.account.verification', + ); + } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments(): array + { + return []; + } +} diff --git a/resources/views/dashboard/companies/index.blade.php b/resources/views/dashboard/companies/index.blade.php index 995ca69..25b14a7 100644 --- a/resources/views/dashboard/companies/index.blade.php +++ b/resources/views/dashboard/companies/index.blade.php @@ -113,6 +113,55 @@ {{$user->company->profile ?? '-'}} +
+
+ Status + + @switch($user->status) + @case(0) + Menunggu + @break + @case(1) + Diterima + @break + @case(2) + + + Ditolak + + + @break + @default + Tidak Diketahui + @endswitch + +
+
+
+
+ Status Edit + + @switch($user->company->edit_status) + @case(0) + Tidak Ada + @break + @case(1) + Menunggu + @break + @case(2) + Diterima + @break + @case(3) + + Ditolak + + @break + @default + Tidak Diketahui + @endswitch + +
+
{{--
--}} diff --git a/resources/views/dashboard/users/profiles/company.blade.php b/resources/views/dashboard/users/profiles/company.blade.php index e63eeac..55b7280 100644 --- a/resources/views/dashboard/users/profiles/company.blade.php +++ b/resources/views/dashboard/users/profiles/company.blade.php @@ -100,6 +100,57 @@ {{$user->company->profile ?? '-'}} +
+
+ Status + + @switch($user->status) + @case(0) + Menunggu + @break + @case(1) + Diterima + @break + @case(2) + + + Ditolak + + + @break + @default + Tidak Diketahui + @endswitch + +
+
+
+
+ Status Edit + + @switch($user->company->edit_status) + @case(0) + Tidak Ada + @break + @case(1) + Menunggu + @break + @case(2) + Diterima + @break + @case(3) + + + Ditolak + + + @break + @default + Tidak Diketahui + @endswitch + +
+
{{--
--}} diff --git a/resources/views/emails/account/verification.blade.php b/resources/views/emails/account/verification.blade.php new file mode 100644 index 0000000..fe3075f --- /dev/null +++ b/resources/views/emails/account/verification.blade.php @@ -0,0 +1,41 @@ +@component('mail::message') +# 👋 Halo, {{ $user->name ?? 'Pengguna' }} + +@switch($status) + @case('accepted') +## ✅ Akun Anda Telah Disetujui! + +Selamat! Akun Anda telah **berhasil diverifikasi** oleh tim kami. Sekarang Anda sudah bisa mengakses seluruh fitur yang tersedia di platform kami. + +@component('mail::button', ['url' => route('login')]) +Masuk Sekarang +@endcomponent + + @break + + @case('rejected') +## ❌ Akun Anda Ditolak + +Mohon maaf, akun Anda belum dapat kami setujui saat ini. + +@if ($reason) +### 📝 Alasan Penolakan: +> {{ $reason }} +@endif + +Silakan periksa kembali data dan dokumen yang Anda unggah, lalu ajukan ulang jika diperlukan. + +@component('mail::button', ['url' => route('auth.register')]) +Ajukan Ulang +@endcomponent + + @break +@endswitch + +Terima kasih telah mendaftar di {{ config('app.name') }}. +Jika ada pertanyaan, jangan ragu untuk menghubungi kami. + +Salam hangat, +{{ config('app.name') }} + +@endcomponent diff --git a/resources/views/partials/homepage/footer.blade.php b/resources/views/partials/homepage/footer.blade.php index ce79d9a..4678655 100644 --- a/resources/views/partials/homepage/footer.blade.php +++ b/resources/views/partials/homepage/footer.blade.php @@ -33,11 +33,11 @@
Tautan