72 lines
2.1 KiB
PHP
72 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\User;
|
|
use Illuminate\Http\Request;
|
|
use App\Http\Requests\UserRequest;
|
|
use Illuminate\Support\Facades\Hash;
|
|
use App\Http\Requests\UpdateUserRequest;
|
|
use RealRashid\SweetAlert\Facades\Alert;
|
|
use Illuminate\Validation\ValidationException;
|
|
|
|
class UserController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
$users = User::where('role', 'user')->get();
|
|
return view('masterdata.data-user', compact('users'));
|
|
}
|
|
|
|
|
|
public function store(UserRequest $request)
|
|
{
|
|
try {
|
|
$user = new User();
|
|
$user->fullname = $request->fullname;
|
|
$user->username = $request->username;
|
|
$user->email = $request->email;
|
|
$user->password = Hash::make($request->password);
|
|
|
|
$user->save();
|
|
|
|
Alert::toast()->success('Berhasil', 'Akun baru berhasil ditambahkan')
|
|
->position('top-end');
|
|
|
|
return redirect()->back()->with('reload', true);
|
|
} catch (ValidationException $e) {
|
|
|
|
$errors = $e->validator->errors()->all();
|
|
foreach ($errors as $error) {
|
|
Alert::toast()->error('Gagal', $error)->position('top-end')->timer(3000);
|
|
}
|
|
return redirect()->back()->withInput();
|
|
} catch (\Exception $e) {
|
|
Alert::toast()->error('Gagal', 'Terjadi kesalahan saat menambahkan akun')->position('top-end')->timer(3000);
|
|
return redirect()->back()->withInput();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public function update(UpdateUserRequest $request, $id)
|
|
{
|
|
$user = User::findOrFail($id);
|
|
$user->fullname = $request->input('fullname');
|
|
$user->username = $request->input('username');
|
|
$user->email = $request->input('email');
|
|
|
|
$user->save();
|
|
Alert::toast('Berhasil Mengaupdate Akun', 'success')->position('top-end');
|
|
return redirect()->back();
|
|
}
|
|
|
|
public function destroy($id)
|
|
{
|
|
$user = User::findOrFail($id);
|
|
$user->delete();
|
|
Alert::toast()->success('Berhasil', 'Akun pengguna berhasil dihapus');
|
|
return redirect()->back();
|
|
}
|
|
}
|