MIF_E31210536/app/Http/Controllers/UserController.php

140 lines
4.4 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\User as ModelsUser;
use Illuminate\Http\Request;
use App\Models\User;
use Illuminate\Support\Facades\Hash;
use Illuminate\Contracts\Auth\MustVerifyEmail;
class UserController extends Controller
{
public function tabel(Request $request)
{
$keyword = $request->input('keyword');
try {
$users = User::where('level', 'user')
->when($keyword, function ($query) use ($keyword) {
return $query->where('name', 'like', '%' . $keyword . '%')
->orWhere('email', 'like', '%' . $keyword . '%');
})
->orderBy('id', 'desc')
->get();
$admins = User::where('level', 'admin')
->when($keyword, function ($query) use ($keyword) {
return $query->where('name', 'like', '%' . $keyword . '%')
->orWhere('email', 'like', '%' . $keyword . '%');
})
->orderBy('id', 'desc')
->get();
} catch (\Exception $e) {
dd($e->getMessage());
}
return view('pages.Users.UserManagement', compact('users', 'admins'));
}
public function count()
{
$admins = ModelsUser::where('level', 'admin')->get();
return view('UserManagement', compact('admin'));
}
public function destroy($id)
{
$blog = User::where('id', $id)->delete();
return redirect('/UserManagement');
}
public function insertAdminUser(Request $request)
{
// Validate the input data, including the file
$validatedData = $request->validate([
'name' => 'required|string',
'email' => 'required|email',
'phone' => 'nullable|string',
'alamat' => 'nullable|string',
'password' => 'required|string',
'photo' => 'nullable',
// Adjust the file size as needed
]);
$files = $request->file('photo');
$fileName = time() . '.' . $files[0]->getClientOriginalName();
$filePath = 'assets/img/profile';
$files[0]->move(public_path($filePath), $fileName); // Move the file to the specified directory
// Save the file path in the database
$photoPath = $filePath . '/' . $fileName; // Update the photo path
// Create a new user record
$user = new User();
$user->name = $validatedData['name'];
$user->email = $validatedData['email'];
$user->phone = $validatedData['phone'];
$user->alamat = $validatedData['alamat'];
$user->email_verified_at = "2024-03-09 15:58:04";
$user->password = Hash::make($validatedData['password']);
$user->level = 'admin';
$user->photo = $fileName; // Save the file path in the database
$user->save();
// Redirect or return a response as needed
return redirect('/UserManagement')->with('success', 'Admin user created successfully');
}
public function updateAdminUser(Request $request, $id)
{
// Validate the input data, including the file
$validatedData = $request->validate([
'name' => 'required|string',
'email' => 'required|email',
'phone' => 'nullable|string',
'alamat' => 'nullable|string',
// Adjust the file size as needed
]);
$user = User::find($id);
if (!$user) {
return redirect('/admin-profile')->with('error', 'Admin user not found');
}
$user->name = $validatedData['name'];
$user->email = $validatedData['email'];
$user->phone = $validatedData['phone'];
$user->alamat = $validatedData['alamat'];
$user->save();
return back()->with('success', 'Admin user updated successfully');
}
public function updateAdminUserPhoto(Request $request)
{
// Find the user by ID
$user = User::find($request->id_user);
if (!$user) {
return redirect('/admin-profile')->with('error', 'Admin user not found');
}
// Check if a new photo was uploaded
$files = $request->file('photo');
$fileName = time() . '.' . $files[0]->getClientOriginalName();
$filePath = 'assets/img/profile';
$files[0]->move(public_path($filePath), $fileName); // Move the file to the specified directory
$user->photo = $fileName;
$user->save();
return back()->with('success', 'Admin user updated successfully');
}
}