Muchas gracias Fabian.
Lo probaré a ver que tal va.
Saludos.
Pau.

Fabian Pino escribió:
Suponiendo que tienes algo como lo siguiente en tu BD:

Tabla users:

id (pk) | name
-------------------
1        | juan
2        | pedro

Tabla files:

id (pk) | name
----------------------------
1        | presentacion.pdf
2        | paper.pdf

Tabla files_users:

file_id (pk,fk) | user_id (pk, fk)
-----------------------------------
1                | 1
1                | 2
2                | 1

En tu vista
---------------------
<table>
<tr>
    <td>Presentacion</td>
    <td><?=$html->link('/files/descargar', 'download/1')?></td>
</tr>
<tr>
    <td>Paper</td>
    <td><?=$html->link('/files/descargar', 'download/2')?></td>
</tr>
</table>


En tu controlador
-----------------------

<?php

class FilesController extends AppController
{
    function download($id_file)
    {
        $this->autoRender = false;
       
        // Acá logica que valida usuario y que el archivo  pertenece
        // Consultas la tabla files_users con el id del archivo y el id del usuario si lo encuentras buscas el nombre del archivo
        // Si pertenece debes retornar $valid = true; y $name_file = con el nombre del archivo
      
        if ($valid)
        {
            $path = "archivos/".$name_file;
            header ("Content-Disposition: attachment; filename=".$name_file."\n\n");
            header ("Content-Type: application/octet-stream");
            header ("Content-Length: ".filesize($path));
            readfile($path);
        }
    }
}
?>

El 19 de mayo de 2010 07:30, Pau <[email protected]> escribió:
Hola a todos.
Necesito que un usuario pueda abrir un documento pdf al pulsar un
botón, pero necesito hacer unas validaciones de seguridad antes. Por
lo tanto me gustaría llamar a una función del controller y allí
validar al usuario y ver que el documento que pide realmente le
pertenece y si es correcto abrir el documento en otra ventana.
¿Alguna idea de cómo se puede hacer esto?
Saludos y gracias.
Pau.

--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a [email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a [email protected]
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/cakephp-es?hl=es.




--
Saludos!
Fabian
--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a [email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a [email protected]
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/cakephp-es?hl=es.

--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a [email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a [email protected]
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/cakephp-es?hl=es.

Responder a