Abiyasa_Putra_Prasetya/Penilaian Literasi/iClOP-V2/app/Http/Controllers/Literacy/LiteracyUserController.php
2025-03-22 15:18:38 +07:00

100 lines
2.8 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace App\Http\Controllers\Literacy;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\User;
use App\Models\Literacy\LiteracyMaterial;
use App\Models\Literacy\LiteracyQuestion;
use Illuminate\Support\Facades\Hash;
class LiteracyUserController extends Controller
{
// 🛡 Middleware untuk autentikasi dan cek admin
public function __construct()
{
$this->middleware(['auth', 'teacher']);
}
// 📋 1. Menampilkan daftar pengguna
public function users()
{
$users = User::all();
$materials = LiteracyMaterial::all();
$questions = LiteracyQuestion::all();
return view('literacy.teacher.users.index', [
'materials' => $materials,
'users' => $users,
'questions' => $questions,
]);
}
public function show($id)
{
$user = User::findOrFail($id);
return view('literacy.teacher.users.index', compact('user'));
}
// 2. Form tambah pengguna
public function create()
{
return view('literacy.teacher.users.index');
}
// 💾 3. Menyimpan pengguna baru
public function store(Request $request)
{
$request->validate([
'name' => 'required|string|max:255',
'email' => 'required|email|unique:users',
'password' => 'required|string|min:6',
'role' => 'required|in:teacher,student',
]);
User::create([
'name' => $request->name,
'email' => $request->email,
'password' => Hash::make($request->password),
'role' => $request->role,
]);
return redirect()->route('literacy_teacher_users')->with('success', 'Pengguna berhasil ditambahkan!');
}
// 🛠 4. Form edit pengguna
public function edit($id)
{
$user = User::findOrFail($id);
return view('literacy.teacher.users.index', compact('user'));
}
// 🔄 5. Update pengguna
public function update(Request $request, $id)
{
$user = User::findOrFail($id);
$request->validate([
'name' => 'required|string|max:255',
'email' => 'required|email|unique:users,email,' . $user->id,
'role' => 'required|in:teacher,student',
]);
$user->update([
'name' => $request->name,
'email' => $request->email,
'role' => $request->role,
]);
return redirect()->route('literacy_teacher_users')->with('success', 'Pengguna berhasil diperbarui!');
}
// ❌ 6. Hapus pengguna
public function destroy($id)
{
$user = User::findOrFail($id);
$user->delete();
return redirect()->route('literacy_teacher_users')->with('success', 'Pengguna berhasil dihapus!');
}
}