public function asigperfilesActualizar(Request $request) { //echo $request->op_1_2;die; //control de sesion $admin = new adminController(); if (!$admin->getControl()) { return redirect('admin')->with('login_errors', '<font color="#ff0000">La sesión a expirado. Vuelva a logearse..</font>'); } //listamos los perfiles $listPerfiles = Perfil::where('status', '=', '1')->get(); //listamos las opciones de los perfiles $listOpciones = OpcionPerfiles::all(); //recojo los datos del request // hago dos bucles, el externo recorre las opciones y el interno los perfiles //asi genero la tabla (array) de todas las opciones foreach ($listOpciones as $opcion) { $listPerfilesNuevos = ""; foreach ($listPerfiles as $perfil) { $posicion = 'op_' . $opcion->id . '_' . $perfil->idPerfil; $valor = $request->{$posicion}; //si viene "on" es = 1, si viene vacio es = 0 if ($valor === 'on') { $listPerfilesNuevos[] = $perfil->idPerfil; } } $listPerfilesNuevos = implode(',', $listPerfilesNuevos); //por utlimo actualizo esa linea de la tabla opciones_perfiles $datosOpcion = OpcionPerfiles::find($opcion->id); $datosOpcion->perfiles = $listPerfilesNuevos; $datosOpcion->save(); } $ok = 'Se ha actualizado las asignaciones de las opciones.'; return redirect('admin/asig_perfiles')->with('errors', $ok); }
public function opcion_perfiles($opcion, $idPerfilUsuario) { $opcion_perfiles = OpcionPerfiles::all(); $encontrado = 'NO'; foreach ($opcion_perfiles as $opcion_perfil) { if ($opcion_perfil->opcion === $opcion) { $perfiles = explode(',', $opcion_perfil->perfiles); if (is_array($perfiles)) { if (in_array($idPerfilUsuario, $perfiles)) { $encontrado = 'SI'; } else { $encontrado = 'NO'; } } else { $encontrado = 'NO'; } break; } } if ($encontrado === 'NO') { return false; } else { return true; } }