IIC2513-2018-2 / syllabus

Material y coordinación del curso
10 stars 4 forks source link

Problema con render dentro de rutas admin/users #26

Closed bmarinb closed 6 years ago

bmarinb commented 6 years ago

Para la revisión de permisos hice lo que vimos en clases, crear una carpeta admin en routes, definir index.js e users.js para definir las rutas exclusivas para admin.

Se están ejecutando correctamente los controladores (lo puedo ver por console logs), sin embargo, no se están rendereando las vistas cuando uso un usuario que es admin. Siempre me tira not found. Tengo los render tal cual como los tenía en los métodos del controlador de usuario sin admin.

En la práctica: En routes/admin/users.js

router.get('users', '/', async (ctx) => {
  console.log("DSADSADSADSADSADSA")
    const users = await ctx.orm.user.findAll();
    return ctx.render('/users/index', {
      users,etc..

Cuando entro a http://localhost:3000/admin/users/ se hace el console log, pero se muestra not found. Ese render funcionaba desde routes/users.js

Dado que se efectúa el console.log, tengo certeza de que están bien definidias las rutas, por lo que pienso que el problema estaría en el render

raulmt commented 6 years ago

El path de los templates es relativo al directorio de "views" configurado en app.js. Por lo que yo nunca comienzo los paths con /. No sé si eso te cause algún tipo de interfencia, per podrías probar.

Lo otro es que algún otro middleware esté interfiriendo. Prueba momentáneamente eliminar otros middleware, por ejemplo.

bmarinb commented 6 years ago

Después de horas de debugueo, el problema tenía que ver con los middlewares, específicamente con el middleware que hacía el assert en caso de no haber permisos de admin. Tenía next() en vez de return next()