139 lines
3.9 KiB
PHP
139 lines
3.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\backend;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Mail\FirstMail;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Hash;
|
|
use Illuminate\Support\Facades\URL;
|
|
use Illuminate\Support\Facades\Mail;
|
|
use Exception;
|
|
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
|
|
|
|
|
|
|
|
class UserController extends Controller
|
|
{
|
|
public function __construct()
|
|
{
|
|
$this->middleware('auth');
|
|
}
|
|
|
|
public function AllUser()
|
|
{
|
|
$all = DB::table('users')->get();
|
|
return view('backend.user.all-user', compact('all'));
|
|
}
|
|
|
|
public function AddUser()
|
|
{
|
|
return view('backend.user.add-user');
|
|
}
|
|
|
|
public function StoreUser(Request $request)
|
|
{
|
|
$data = [];
|
|
$data['name'] = $request->input('name');
|
|
$data['email'] = $request->input('email');
|
|
// $data['password'] = bcrypt($request->input('password'));
|
|
$data['password'] = Hash::make($request->input('password'));
|
|
$data['role'] = $request->input('role');
|
|
$data['created_at'] = now();
|
|
$data['updated_at'] = now();
|
|
|
|
$insert = DB::table('users')->insert($data);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($insert) {
|
|
$notification = array(
|
|
'message' => 'User Added Successfully',
|
|
'alert-type' => 'success'
|
|
);
|
|
return redirect()->route('alluser')->with($notification);
|
|
} else {
|
|
$notification = array(
|
|
'message' => 'User Added Unsuccessfully',
|
|
'alert-type' => 'error'
|
|
);
|
|
return redirect()->route('alluser')->with($notification);
|
|
}
|
|
}
|
|
public function EditUser($id)
|
|
{
|
|
$edit = DB::table('users')->where('id', $id)->first();
|
|
return view('backend.user.edit-user', compact('edit'));
|
|
}
|
|
public function UpdateUser(Request $request, $id)
|
|
{
|
|
$data = [];
|
|
$data['name'] = $request->input('name');
|
|
$data['email'] = $request->input('email');
|
|
if ($request->input('password')) {
|
|
$data['password'] = Hash::make($request->input('password'));
|
|
}
|
|
$data['role'] = $request->input('role');
|
|
$data['updated_at'] = now();
|
|
$update = DB::table('users')->where('id', $id)->update(
|
|
$data
|
|
);
|
|
if ($update) {
|
|
$notification = array(
|
|
'message' => 'User Updated Successfully',
|
|
'alert-type' => 'success'
|
|
);
|
|
return redirect()->route('alluser')->with($notification);
|
|
} else {
|
|
$notification = array(
|
|
'message' => 'User is not Updated',
|
|
'alert-type' => 'error'
|
|
);
|
|
return redirect()->route('alluser')->with($notification);
|
|
}
|
|
}
|
|
public function DeleteUser($id)
|
|
{
|
|
DB::table('users')->where('id', $id)->delete();
|
|
return response()->json(['status' => 200, 'message' => 'Deleted Successfully!']);
|
|
}
|
|
|
|
|
|
public function ShowEmailForm()
|
|
{
|
|
return view('backend.user.send-email-form');
|
|
}
|
|
|
|
public function SendEmail(Request $request)
|
|
{
|
|
$request->validate([
|
|
'name' => 'required|string|max:255',
|
|
'email' => 'required|string|email|max:255',
|
|
]);
|
|
|
|
try {
|
|
Mail::to($request->input('email'))->send(new FirstMail($request->input('name')));
|
|
|
|
$notification = [
|
|
'message' => 'Email Sent Successfully',
|
|
'alert-type' => 'success',
|
|
];
|
|
return redirect()->route('show-email-form')->with($notification);
|
|
} catch (Exception $e) {
|
|
Log::error('Error sending email: ' . $e->getMessage());
|
|
$notification = [
|
|
'message' => 'An error occurred while sending the email.',
|
|
'alert-type' => 'error',
|
|
];
|
|
return redirect()->route('show-email-form')->with($notification);
|
|
}
|
|
}
|
|
}
|