/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $input = $request->all(); if (isset($input['filepath'])) { $imgPath = $this->imageUpload($input['filepath']); $input['filepath'] = $imgPath; } else { $input['filepath'] = Modules::where('id', '=', $id)->pluck('filepath'); } $data = Modules::findOrFail($id); $data->update($input); return redirect('BARD_modules')->with('status', 'Update successfully'); }
/** * Remove the specified resource from storage. * * @param int $id * @return Response */ public function destroy($id) { $this->authorize(new Permissions()); $parent = Modules::where('mdl_parent', $id)->first(); if ($parent) { Session::flash('error', 'Reasigne los nodos hijos de este modulo antes de eliminar.'); } else { $modules = Modules::find($id); $modules->delete(); Session::flash('message', 'Modulo Eliminado Exitosamente.'); } return Redirect::to('modules'); }
/** * Update the specified resource in storage. * * @param int $id * @return Response */ public function update($id) { // validate $rules = array('name' => 'required|max:50'); $validator = Validator::make(Input::all(), $rules); // process the update if ($validator->fails()) { return Redirect::back()->withErrors($validator)->withInput(); } else { // update $update = Roles::find($id); $update->rl_name = Input::get('name'); $update->rl_description = Input::get('description'); $update->rl_enabled = Input::get('enabled'); $update->updated_by = \Auth::user()->id; $update->save(); $usr_role = \Auth::user()->usr_role; $MdlsCnt = Modules::where('mdl_enabled', 1)->join('permissions', 'permissions.id_mdl', '=', 'modules.id')->where('pm_access', 1)->where('mdl_isadmin', 0)->where('id_rl', $usr_role)->get(['modules.id as id']); $PreviousPermsDelete = Permissions::where('id_rl', $update->id)->delete(); foreach ($MdlsCnt as $Mdl) { $permission = new Permissions(); $permission->id_rl = $update->id; $permission->id_mdl = $Mdl->id; $permission->pm_access = Input::has('access_' . $Mdl->id) ? '1' : '0'; if (Input::has('access_' . $Mdl->id)) { $permission->pm_create = Input::has('create_' . $Mdl->id) ? '1' : '0'; $permission->pm_read = Input::has('read_' . $Mdl->id) ? '1' : '0'; $permission->pm_update = Input::has('update_' . $Mdl->id) ? '1' : '0'; $permission->pm_destroy = Input::has('destroy_' . $Mdl->id) ? '1' : '0'; } $permission->save(); } // redirect Session::flash('message', 'Rol Actualizado Con Exito.'); return Redirect::to('roles'); } }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { function buildTree(array $elements, $parentId = 0) { $branch = array(); foreach ($elements as $element) { if ($element['mdl_parent'] == $parentId) { $children = buildTree($elements, $element['id']); if ($children) { $element['children'] = $children; } else { $element['children'] = 0; } $branch[] = $element; } } return $branch; } function displayArrayRecursively($arr, $indent = '') { if ($arr) { echo "<li class=\"\">"; foreach ($arr as $value) { if (is_array($value)) { // displayArrayRecursively($value, $indent . '--'); } else { // Output echo "{$indent} {$value} \n"; } } } } $user = $this->auth->user(); // Creates Modules List based on the user if (!is_null($user)) { // Get the list of all modules enabled, assigned to role and with access permission. $ModulesQ = Modules::where('mdl_enabled', 1)->join('permissions', 'permissions.id_mdl', '=', 'modules.id')->distinct(); if (!$user->is_sadmin) { $ModulesQ = $ModulesQ->where('pm_access', 1)->where('id_rl', $user->usr_role)->where('mdl_isadmin', 0); } $Modules = new Collection($ModulesQ->get(['modules.id as id', 'mdl_name', 'mdl_slug', 'mdl_description', 'mdl_faicon', 'mdl_menu', 'mdl_plural', 'mdl_singular', 'mdl_parent'])); $SidebarModules = buildTree($Modules->where('mdl_menu', 1)->toArray()); // Assing a view variable for each menu, currently is hard coded to the menu # but it should get the values from the menus table. $this->view->share('SidebarModules', $SidebarModules); $this->view->share('TopModules', $Modules->where('mdl_menu', 2)); $this->view->share('UserModules', $Modules->where('mdl_menu', 3)); $this->view->share('SettingsModules', $Modules->where('mdl_menu', 4)); $this->view->share('UserPanel', $Modules->where('mdl_menu', 5)); $this->view->share('DashboardModules', $Modules->where('mdl_menu', 6)); // Get the current module to display the details on the VIEW (slug, plural, singular, etc) $slug = Route::getCurrentRoute()->getPath(); $slugOnly = explode('/', $slug); $CurrentModule = $Modules->where('mdl_slug', $slugOnly[0]); if ($CurrentModule->isEmpty()) { abort(403, 'Middle 403'); } $this->view->share('CurrentModule', $CurrentModule); // Get the permissions details for the current module. $PrmMdl = DB::table('modules')->join('permissions', 'permissions.id_mdl', '=', 'modules.id')->select('modules.id as i', 'pm_access as a', 'pm_create as c', 'pm_read as r', 'pm_update as u', 'pm_destroy as d')->where('id_mdl', $CurrentModule->first()->id)->where('id_rl', $user->usr_role)->where('mdl_isadmin', 0)->get(); $request->PrmMdl = json_encode($PrmMdl); // Get the current action to display the details on the VIEW $action = Route::getCurrentRoute()->getActionName(); $actionOnly = explode('@', $action); if ($actionOnly[1] == 'index') { $this->view->share('CurrentAction', 'Listado'); } elseif ($actionOnly[1] == 'create') { $this->view->share('CurrentAction', 'Agregar'); } elseif ($actionOnly[1] == 'show') { $this->view->share('CurrentAction', 'Ver'); } elseif ($actionOnly[1] == 'edit') { $this->view->share('CurrentAction', 'Editar'); } elseif ($actionOnly[1] == 'search') { $this->view->share('CurrentAction', 'Búsqueda'); } else { $this->view->share('CurrentAction', 'Ruta No Definida'); } } return $next($request); }