get(); return view('staff.user-role', compact('role', 'menu_master')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $id_role = 0; $menu_master = ''; return view('staff.create-role', compact('id_role', 'menu_master')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $role_name = $request->get('role_name'); $role = new Role(); $role->name = strtoupper($role_name); $role->created_at = date('Y-m-d H:i:s'); $role->save(); $id_role = $role->id; $access = $request->get('access'); if (!empty($access)) { for ($i = 0; $i <= count($access) - 1; $i++) { // Create New $role = explode('-', $access[$i]); $menu = $role[0]; $access_role = $role[1]; $db_access_role = new RoleAccess(); $db_access_role->id_role = $id_role; $db_access_role->menu = $menu; $db_access_role->access = $access_role; $db_access_role->created_at = date('Y-m-d H:i:s'); $db_access_role->save(); } } return redirect()->route('role.index')->with('msg', 'Data Berhasil Disimpan'); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $id_role = $id; $menu_master = ''; return view('staff.edit-role', compact('id_role', 'menu_master')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $id_role = $id; $access = $request->get('access'); RoleAccess::where('id_role', $id_role)->delete(); if (!empty($access)) { for ($i = 0; $i <= count($access) - 1; $i++) { // Delete Old // Create New $role = explode('-', $access[$i]); $menu = $role[0]; $access_role = $role[1]; $db_access_role = new RoleAccess(); $db_access_role->id_role = $id_role; $db_access_role->menu = $menu; $db_access_role->access = $access_role; $db_access_role->created_at = date('Y-m-d H:i:s'); $db_access_role->save(); } } return redirect()->route('role.index')->with('msg', 'Data Berhasil Disimpan'); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } public static function isChecked($id_role, $menu, $access) { $access = RoleAccess::where([['id_role', $id_role], ['menu', $menu], ['access', $access]])->count(); if ($access > 0) { return 'checked'; } } public static function access($menu, $access) { $count = RoleAccess::where([['menu', $menu], ['access', $access], ['id_role', Auth::user()->id_role]])->count(); return $count; } public function editName(Request $request) { $id_role = $request->get('id_role'); $name_role = $request->get('name_role'); $role = Role::findOrFail($id_role); $role->name = strtoupper($name_role); $role->save(); User::where('id_role', $id_role)->update(['level' => $name_role]); return redirect()->route('role.index')->with('msg', 'Data Berhasil Disimpan'); } public static function checkSubMenu($data) { $row = 0; for ($i = 0; $i <= count($data) - 1; $i++) { $count = RoleAccess::where([['menu', $data[$i]['menu']], ['access', $data[$i]['access']], ['id_role', Auth::user()->id_role]])->count(); $row += $count; } return $row; } public static function checkMenu($data) { $row = 0; for ($i = 0; $i <= count($data) - 1; $i++) { $count = RoleAccess::where([['menu', $data[$i]], ['id_role', Auth::user()->id_role]])->count(); $row += $count; } return $row; } }