Example #1
0
 /**
  * @param Request $request
  * @param Application $app
  * 
  * @return mixed|RedirectResponse
  */
 public function agregar(Request $request, Application $app)
 {
     $alias = $app['security']->getToken()->getUser()->getUsername();
     $usuarioModelo = new Usuario($app['db']);
     $usuario = $usuarioModelo->getUsuarioPorAlias($alias);
     // El autor del articulo debe ser el logueado
     $idAutor = $usuario['id'];
     $articuloModelo = new Articulo($app['db']);
     $articulos = $articuloModelo->getTodo();
     $articulosOpcion = array();
     foreach ($articulos as $articulo) {
         $articulosOpcion[$articulo['id']] = $articulo['titulo'];
     }
     $initial_data = array('id_articulo' => '', 'contenido' => '');
     $form = $app['form.factory']->createBuilder('form', $initial_data);
     $form = $form->add('id_articulo', 'choice', array('choices' => $articulosOpcion, 'required' => true));
     $form = $form->add('contenido', 'textarea', array('required' => true));
     $form = $form->getForm();
     if ("POST" == $request->getMethod()) {
         $form->handleRequest($request);
         if ($form->isValid()) {
             $data = $form->getData();
             $comentarioModelo = new ComentarioModelo($app['db']);
             $filasAfectadas = $comentarioModelo->guardar($data['id_articulo'], $idAutor, $data['contenido']);
             $filasAfectadas = $comentarioModelo->guardar($data['id_articulo'], $idAutor, $data['contenido']);
             if ($filasAfectadas == 1) {
                 $app['session']->getFlashBag()->add('success', array('message' => '¡Comentario creado!'));
             }
             return $app->redirect($app['url_generator']->generate('comentario_list'));
         }
     }
     return $app['twig']->render('backend/comentario/create.html.twig', array("form" => $form->createView()));
 }
Example #2
0
 /**
  * @param string $alias Alias del usuario
  * @return User
  * @throws UsernameNotFoundException
  */
 public function loadUserByUsername($alias)
 {
     $usuarioModelo = new Usuario($this->conn);
     $usuario = $usuarioModelo->getUsuarioPorAlias($alias);
     if (empty($usuario)) {
         throw new UsernameNotFoundException(sprintf('Username "%s" does not exist.', $alias));
     }
     return new User($usuario['alias'], $usuario['clave'], explode(',', $usuario['perfil']), true, true, true, true);
 }
Example #3
0
 /**
  * @param Request $request
  * @param Application $app
  *
  * @return JsonResponse
  */
 public function guardarComentario(Request $request, Application $app)
 {
     $usuarioLogueado = $app['security']->getToken()->getUser();
     if (is_object($usuarioLogueado)) {
         $usuarioModelo = new Usuario($app['db']);
         $usuario = $usuarioModelo->getUsuarioPorAlias($usuarioLogueado->getUsername());
         unset($usuario['clave']);
         $comentarioModelo = new ComentarioModelo($app['db']);
         $comentario = $request->get('comentario');
         if (isset($comentario['idArticulo']) && isset($comentario['contenido'])) {
             $filasAfectadas = $comentarioModelo->guardar($comentario['idArticulo'], $usuario['id'], $comentario['contenido'], 'I');
             if ($filasAfectadas == 1) {
                 $response = array('mensaje' => 'Comentario guardado.');
             } else {
                 $response = array('mensaje' => 'Comentario no guardado.');
             }
             $response['estatus'] = 200;
             $response['usuario'] = $usuario;
         }
     } else {
         $response = array('estatus' => 403, 'mensaje' => 'Usuario no logueado.');
     }
     return new JsonResponse($response);
 }
Example #4
0
 /**
  * @param Request $request
  * @param Application $app
  * @param int $id
  *
  * @return mixed|RedirectResponse
  */
 public function editar(Request $request, Application $app, $id)
 {
     $alias = $app['security']->getToken()->getUser()->getUsername();
     $usuarioModelo = new Usuario($app['db']);
     $usuario = $usuarioModelo->getUsuarioPorAlias($alias);
     // El autor del articulo debe ser el logueado
     $idAutor = $usuario['id'];
     // Categorías
     $categoriaModelo = new Categoria($app['db']);
     $categorias = $categoriaModelo->getTodo();
     $categoriasOpcion = array();
     foreach ($categorias as $categoria) {
         $categoriasOpcion[$categoria['id']] = $categoria['nombre'];
     }
     // Etiquetas
     $etiquetaModelo = new Etiqueta($app['db']);
     $etiquetas = $etiquetaModelo->getTodo();
     $etiquetasOpcion = array();
     foreach ($etiquetas as $etiqueta) {
         $etiquetasOpcion[$etiqueta['id']] = $etiqueta['nombre'];
     }
     $articuloModelo = new ArticuloModelo($app['db']);
     $articulo = $articuloModelo->getArticuloYEtiquetas($id);
     if (!$articulo) {
         $app['session']->getFlashBag()->add('warning', array('message' => '¡Artículo no encontrado!'));
         return $app->redirect($app['url_generator']->generate('articulo_list'));
     }
     $initial_data = array('categoria' => $articulo['id_categoria'], 'etiquetas' => $articulo['etiquetas'], 'imagen' => $articulo['imagen'], 'titulo' => $articulo['titulo'], 'descripcion' => $articulo['descripcion'], 'contenido' => $articulo['contenido'], 'fecha_pub' => $articulo['fecha_pub']);
     $form = $app['form.factory']->createBuilder('form', $initial_data);
     $form = $form->add('categoria', 'choice', array('choices' => $categoriasOpcion, 'required' => true));
     $form = $form->add('etiquetas', 'choice', array('choices' => $etiquetasOpcion, 'required' => false, "multiple" => true));
     $form = $form->add('imagen', 'url', array('required' => true));
     $form = $form->add('titulo', 'text', array('required' => true));
     $form = $form->add('descripcion', 'text', array('required' => true));
     $form = $form->add('contenido', 'textarea', array('required' => true));
     $form = $form->getForm();
     if ("POST" == $app['request']->getMethod()) {
         $form->handleRequest($app["request"]);
         if ($form->isValid()) {
             $data = $form->getData();
             $filasAfectadas = $articuloModelo->modificar($id, $idAutor, $data['categoria'], $data['imagen'], $data['titulo'], $data['descripcion'], $data['contenido'], $data['etiquetas']);
             if (is_array($filasAfectadas) || is_int($filasAfectadas) && $filasAfectadas == 1) {
                 $app['session']->getFlashBag()->add('info', array('message' => "¡Artículo modificado!"));
             } else {
                 $app['session']->getFlashBag()->add('danger', array('message' => "¡Artículo no modificado!"));
             }
             return $app->redirect($app['url_generator']->generate('articulo_edit', array("id" => $id)));
         }
     }
     return $app['twig']->render('backend/articulo/edit.html.twig', array("form" => $form->createView(), "imagen_src" => $articulo['imagen'], "id" => $id));
 }
Example #5
0
 /**
  * @param Request $request
  * @param Application $app
  * 
  * @return Response|JsonResponse
  */
 public function miCuenta(Request $request, Application $app)
 {
     if (is_array($app['user'])) {
         if ($request->isXmlHttpRequest() && $request->isMethod('POST')) {
             $nombre = $request->get('nombre');
             $correo = $request->get('correo');
             $alias = $request->get('alias');
             $clave = $request->get('clave');
             $usuarioModelo = new UsuarioModelo($app['db']);
             if ($clave) {
                 //$filasAfectadas = $usuarioModelo->modificar($app['user']['id'], $app['user']['id_perfil'], $nombre, $correo, $alias, $app['user']['clave']);
             } else {
                 $filasAfectadas = $usuarioModelo->modificar($app['user']['id'], $app['user']['id_perfil'], $nombre, $correo, $alias);
             }
             if ($filasAfectadas == 1) {
                 return new JsonResponse('Actualizada mi cuenta', 200);
             } else {
                 return new JsonResponse('Nada que actualizar', 202);
             }
         } elseif ($request->isXmlHttpRequest() && $request->isMethod('GET')) {
             return $app['twig']->render('frontend/usuario/micuenta.html.twig');
         }
     } else {
         return new Response('Forbiden', 403);
     }
 }
Example #6
0
 /**
  * @param Request $request
  * @param Application $app
  * @param int $id
  * 
  * @return RedirectResponse
  */
 public function eliminar(Request $request, Application $app, $id)
 {
     $usuarioModelo = new UsuarioModelo($app['db']);
     $usuario = $usuarioModelo->getPorId($id);
     if (!empty($usuario)) {
         $filasAfectadas = $usuarioModelo->eliminar($id);
         if ($filasAfectadas >= 1) {
             $app['session']->getFlashBag()->add('info', array('message' => 'Usuario eliminado!'));
         }
     } else {
         $app['session']->getFlashBag()->add('warning', array('message' => '¡Usuario no encontrado!'));
     }
     return $app->redirect($app['url_generator']->generate('usuario_list'));
 }
Example #7
0
$app->register(new Silex\Provider\SecurityServiceProvider(), array('security.firewalls' => array('login_path' => array('pattern' => '^/login$', 'anonymous' => true), 'default' => array('pattern' => '^/.*$', 'anonymous' => true, 'form' => array('login_path' => '/login', 'check_path' => '/login_check'), 'logout' => array('logout_path' => '/logout', 'invalidate_session' => true), 'users' => $app->share(function ($app) {
    return new Precursor\Provider\UserProvider($app['db']);
}))), 'security.access_rules' => Precursor\Options\AccessRules::getAccessRules(), 'security.encoder.digest' => $app->share(function ($app) {
    return new MessageDigestPasswordEncoder('sha512');
})));
# Proveedor de doctrine para base de datos
$app->register(new Silex\Provider\DoctrineServiceProvider(), array('dbs.options' => array('db' => Precursor\Options\Doctrine::getProductionOptions())));
# Proveedor de archivos del Precursor
$app->register(new Precursor\Provider\PrecursorFilesProvider(), array('explorer.options' => array('folders.public' => Precursor\Options\Explorer::getPublicFolders(), 'folders.protected' => Precursor\Options\Explorer::getProtectedFolders())));
# Obtener el usuario en todo lugar
$app->before(function (Symfony\Component\HttpFoundation\Request $request) use($app) {
    $token = $app['security']->getToken();
    $app['user'] = null;
    if ($token && !$app['security.trust_resolver']->isAnonymous($token)) {
        $app['user'] = $token->getUser();
        $usuarioModel = new Usuario($app['db']);
        $usuario = $usuarioModel->getUsuarioPorAlias($app['user']->getUsername());
        $app['user'] = $usuario;
    }
});
$filename = __DIR__ . preg_replace('#(\\?.*)$#', '', $_SERVER['REQUEST_URI']);
if (php_sapi_name() === 'cli-server' && is_file($filename)) {
    return false;
}
$app['asset_path'] = "http://{$_SERVER['SERVER_NAME']}:{$_SERVER['SERVER_PORT']}/resources";
$app['upload_path'] = "http://{$_SERVER['SERVER_NAME']}:{$_SERVER['SERVER_PORT']}/resources/uploads";
$app['banner_path'] = "http://{$_SERVER['SERVER_NAME']}:{$_SERVER['SERVER_PORT']}/resources/img/secciones";
$app['upload_dir'] = __DIR__ . "/resources/uploads/";
$app['debug'] = true;
require_once __DIR__ . '/routes/api/base.php';
require_once __DIR__ . '/routes/backend/base.php';