feat: send information via email when accept or reject account
This commit is contained in:
parent
63d01d90a2
commit
8cd1eb9c00
@ -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',
|
||||
|
||||
@ -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(){
|
||||
|
||||
59
app/Mail/AccountVerification.php
Normal file
59
app/Mail/AccountVerification.php
Normal file
@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace App\Mail;
|
||||
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Mail\Mailable;
|
||||
use Illuminate\Mail\Mailables\Content;
|
||||
use Illuminate\Mail\Mailables\Envelope;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class AccountVerification extends Mailable
|
||||
{
|
||||
use Queueable, SerializesModels;
|
||||
|
||||
/**
|
||||
* Create a new message instance.
|
||||
*/
|
||||
public $status;
|
||||
public $reason;
|
||||
public $user;
|
||||
|
||||
public function __construct($user, $status, $rejectionReason = null)
|
||||
{
|
||||
$this->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<int, \Illuminate\Mail\Mailables\Attachment>
|
||||
*/
|
||||
public function attachments(): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
@ -113,6 +113,55 @@
|
||||
<span class="profile-ud-value">{{$user->company->profile ?? '-'}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Status</span>
|
||||
<span class="profile-ud-value">
|
||||
@switch($user->status)
|
||||
@case(0)
|
||||
<span class="profile-ud-value"><span class="badge bg-warning">Menunggu</span></span>
|
||||
@break
|
||||
@case(1)
|
||||
<span class="profile-ud-value"><span class="badge bg-success">Diterima</span></span>
|
||||
@break
|
||||
@case(2)
|
||||
<span class="profile-ud-value">
|
||||
<span class="badge bg-danger">
|
||||
<a href="javascript:void(0);" onclick="showDetail({{ json_encode(strip_tags($user->rejection_reason)) }})" class="text-light text-decoration-underline">Ditolak</a>
|
||||
</span>
|
||||
</span>
|
||||
@break
|
||||
@default
|
||||
<span class="profile-ud-value"><span class="badge bg-secondary">Tidak Diketahui</span></span>
|
||||
@endswitch
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Status Edit</span>
|
||||
<span class="profile-ud-value">
|
||||
@switch($user->company->edit_status)
|
||||
@case(0)
|
||||
<span class="profile-ud-value"><span class="badge bg-secondary">Tidak Ada</span></span>
|
||||
@break
|
||||
@case(1)
|
||||
<span class="profile-ud-value"><span class="badge bg-warning">Menunggu</span></span>
|
||||
@break
|
||||
@case(2)
|
||||
<span class="profile-ud-value"><span class="badge bg-primary">Diterima</span></span>
|
||||
@break
|
||||
@case(3)
|
||||
<span class="badge bg-danger">
|
||||
<a href="javascript:void(0);" onclick="showDetail({{ json_encode(strip_tags($user->company->edit_rejection_reason)) }})" class="text-light text-decoration-underline">Ditolak</a>
|
||||
</span>
|
||||
@break
|
||||
@default
|
||||
<span class="profile-ud-value"><span class="badge bg-secondary">Tidak Diketahui</span></span>
|
||||
@endswitch
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .profile-ud-list -->
|
||||
</div><!-- .nk-block -->
|
||||
{{-- <div class="nk-divider divider md"></div> --}}
|
||||
|
||||
@ -100,6 +100,57 @@
|
||||
<span class="profile-ud-value">{{$user->company->profile ?? '-'}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Status</span>
|
||||
<span class="profile-ud-value">
|
||||
@switch($user->status)
|
||||
@case(0)
|
||||
<span class="profile-ud-value"><span class="badge bg-warning">Menunggu</span></span>
|
||||
@break
|
||||
@case(1)
|
||||
<span class="profile-ud-value"><span class="badge bg-success">Diterima</span></span>
|
||||
@break
|
||||
@case(2)
|
||||
<span class="profile-ud-value">
|
||||
<span class="badge bg-danger">
|
||||
<a href="javascript:void(0);" onclick="showDetail({{ json_encode(strip_tags($user->rejection_reason)) }})" class="text-light text-decoration-underline">Ditolak</a>
|
||||
</span>
|
||||
</span>
|
||||
@break
|
||||
@default
|
||||
<span class="profile-ud-value"><span class="badge bg-secondary">Tidak Diketahui</span></span>
|
||||
@endswitch
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="profile-ud-item">
|
||||
<div class="profile-ud wider">
|
||||
<span class="profile-ud-label">Status Edit</span>
|
||||
<span class="profile-ud-value">
|
||||
@switch($user->company->edit_status)
|
||||
@case(0)
|
||||
<span class="profile-ud-value"><span class="badge bg-secondary">Tidak Ada</span></span>
|
||||
@break
|
||||
@case(1)
|
||||
<span class="profile-ud-value"><span class="badge bg-warning">Menunggu</span></span>
|
||||
@break
|
||||
@case(2)
|
||||
<span class="profile-ud-value"><span class="badge bg-primary">Diterima</span></span>
|
||||
@break
|
||||
@case(3)
|
||||
<span class="profile-ud-value">
|
||||
<span class="badge bg-danger">
|
||||
<a href="javascript:void(0);" onclick="showDetail({{ json_encode(strip_tags($user->company->edit_rejection_reason)) }})" class="text-light text-decoration-underline">Ditolak</a>
|
||||
</span>
|
||||
</span>
|
||||
@break
|
||||
@default
|
||||
<span class="profile-ud-value"><span class="badge bg-secondary">Tidak Diketahui</span></span>
|
||||
@endswitch
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- .profile-ud-list -->
|
||||
</div><!-- .nk-block -->
|
||||
{{-- <div class="nk-divider divider md"></div> --}}
|
||||
|
||||
41
resources/views/emails/account/verification.blade.php
Normal file
41
resources/views/emails/account/verification.blade.php
Normal file
@ -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
|
||||
@ -33,11 +33,11 @@
|
||||
<div class="col-6 col-lg-2 col-sm-4 xs-mb-30px order-sm-4 order-lg-3">
|
||||
<span class="fs-17 fw-500 d-block text-white mb-5px">Tautan</span>
|
||||
<ul>
|
||||
<li><a href="javscript: void(0);">Beranda</a></li>
|
||||
<li><a href="javscript: void(0);">Berita</a></li>
|
||||
<li><a href="javscript: void(0);">Pengumuman</a></li>
|
||||
<li><a href="javscript: void(0);">Tentang Kami</a></li>
|
||||
<li><a href="javscript: void(0);">Kontak</a></li>
|
||||
<li><a href="javascript: void(0);">Beranda</a></li>
|
||||
<li><a href="javascript: void(0);">Berita</a></li>
|
||||
<li><a href="javascript: void(0);">Pengumuman</a></li>
|
||||
<li><a href="javascript: void(0);">Tentang Kami</a></li>
|
||||
<li><a href="javascript: void(0);">Kontak</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- end footer column -->
|
||||
|
||||
Loading…
Reference in New Issue
Block a user