public function addAccesss(Role $role, Menu $menu, $permission_ids = []) { $menu->roles()->attach($role->id); if (count($permission_ids) > 0) { $role->permissions()->attach($permission_ids); } }
public function mapping($id, Request $request) { $workflow = Workflow::find($id); if ($request->isMethod('get')) { $workflow->load('menus'); $title = 'Pemetaan Proses Aliran Kerja'; $roles = Role::get()->pluck('display_name', 'id'); $menus = Menu::get()->pluck('name', 'id'); return view('profio/auth::workflow.mapping', compact('workflow', 'title', 'roles', 'menus')); } else { $workflow->menus()->detach(); $workflow->permissions()->detach(); $role_ids = $request->input('role_ids'); $menu_ids = $request->input('menu_ids'); DB::transaction(function () use($role_ids, $workflow, $menu_ids) { foreach ($role_ids as $key => $role_id) { $workflow->menus()->attach($menu_ids[$key], ['role_id' => $role_id]); $menu = Menu::find($menu_ids[$key]); foreach ($menu->permissions as $permission) { $workflow->permissions()->attach($permission->id, ['role_id' => $role_id]); } } flash()->success('Pemetaan proses aliran kerja berhasil disimpan.'); }); return redirect()->back(); } }
public function addMenu($name, $url, $icon = null, $parent = null) { $menu = new Menu(); $menu->name = $name; $menu->url = $url; $menu->icon = $icon; if (!$parent instanceof Menu) { $parent = Menu::find($parent); } if (!is_null($parent)) { $menu->parent()->associate($menu); } $menu->save(); $this->menus()->attach($menu); return $menu; }
public function manageMenu($id, Request $request) { if ($request->isMethod('get')) { $role = Role::findOrFail($id); return view('profio/auth::role.manage-menu', compact('role')); } else { $menus = $request->get('menus'); $parents = $request->get('parents'); for ($i = 0; $i < count($menus); $i++) { $menu = Menu::find($menus[$i]); $menu->position = $i + 1; $menu->parent()->associate(Menu::find($parents[$i])); $menu->save(); } return redirect()->back(); } }
public function destroy($id) { Menu::destroy($id); flash()->success('Menu berhasil dihapus.'); return redirect('menu'); }