pintu2/app/Http/Controllers/UserController.php
2024-03-07 18:13:09 +07:00

121 lines
3.8 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use Spatie\Permission\Models\Role;
class UserController extends Controller
{
public function index(){
$user = User::with('roles')->get();
return view('user.index',['title'=> 'Manajemen User | Admin Dashboard','user'=> $user]);
}
public function store(Request $request){
$request->validate([
'nip'=>'required|numeric',
'nama_depan'=>'required',
'nama_belakang'=>'required',
'nama_gelar'=>'required',
'email'=>'required|email',
'ettd'=>'required',
],[
'nip.required'=>'NIP Wajib Diisi',
'nip.numeric'=>'NIP/NRP Wajib Berisi Angka saja',
'nama_depan.required'=>'Nama Depan Wajib Diisi',
'nama_belakang.required'=>'Nama Belakang Wajib Diisi',
'nama_gelar.required'=>'Nama Dengan Gelar Lengkap Wajib Diisi',
'email.required'=>'Email Wajib Diisi',
'ettd.required'=>'E-TTD Wajib Diisi',
]);
$user = new User;
$user->nip = $request->nip;
$user->nama_depan = $request->nama_depan;
$user->nama_belakang = $request->nama_belakang;
$user->nama_gelar = $request->nama_gelar;
$user->email = $request->email;
$user->ettd = $request->ettd;
$user->password = Str::random(12);
if($user->save()){
return redirect()->route('users.index')->with('success','Data Telah Berhasil Disimpan');
}
return back()->withInput();
}
public function update(Request $request){
$request->validate([
'nip'=>'required|numeric',
'nama_depan'=>'required',
'nama_belakang'=>'required',
'nama_gelar'=>'required',
'email'=>'required|email',
'ettd'=>'required',
],[
'nip.required'=>'NIP Wajib Diisi',
'nip.numeric'=>'NIP/NRP Wajib Berisi Angka saja',
'nama_depan.required'=>'Nama Depan Wajib Diisi',
'nama_belakang.required'=>'Nama Belakang Wajib Diisi',
'nama_gelar.required'=>'Nama Dengan Gelar Lengkap Wajib Diisi',
'email.required'=>'Email Wajib Diisi',
'ettd.required'=>'E-TTD Wajib Diisi',
]);
$user = User::find($request->id);
$user->nip = $request->nip;
$user->nama_depan = $request->nama_depan;
$user->nama_belakang = $request->nama_belakang;
$user->nama_gelar = $request->nama_gelar;
$user->email = $request->email;
$user->ettd = $request->ettd;
$user->password = Str::random(12);
if($user->save()){
return redirect()->route('users.index')->with('success','Data Telah Berhasil Diubah');
}
return back()->withInput();
}
public function destroy(Request $request){
$user = User::findOrFail($request->id);
if($user->delete()){
return redirect()->route('users.index')->with('success','Data Telah Dihapus');
}
return redirect()->route('users.index')->with('error','Data Gagal Dihapus');
}
public function userroles_index(){
$user = User::select('id','nama_gelar')->get();
$data = Role::get();
return view('user.user_roles_index',['title'=> 'Manajemen Role User | Admin Dashboard','data'=> $data,'user'=>$user]);
}
public function userroles_store(Request $request){
$user_roles = new Role;
$user_roles->name = $request->role_name;
if($user_roles->save()){
return redirect()->route('users-roles.index')->with('success','Data Telah Berhasil Disimpan');
}
return back()->withInput();
}
public function userroles_assign(Request $request){
$listUser = $request->input('checkboxes', []);
$listUser = $request->input('checkboxes', []);
foreach($listUser as $listUsers) {
$user = User::find($listUsers);
$user->assignRole($request->roles_user);
}
return redirect()->route('users-roles.index')->with('success','Sukses Memberi Role User');
}
}