Cuando se realiza una búsqueda en SharePoint, se aplica un filtrado de los resultados, según el usuario que lanza la query. Es decir, si un usuario no tiene permisos sobre una lista concreta, obviamente, los resultados que hagan referencia a esa lista, no le aparecerán al usuario.

Ahora bien, hoy me he encontrado con un caso que no cumplía esta premisa, y que puede ser bastante frecuente durante la fase de desarrollo del proyecto. Resulta que estaba lanzando una búsqueda con un usuario que era Colaborador del site, por lo que tiene permisos para ver y editar todas las listas, y sin embargo, en las búsquedas, no me devolvía ningún resultado. Sin embargo, me iba a una lista cualquiera, y podía ver y editar un item que cumplía con la query de búsqueda.

De hecho, si hacía la misma búsqueda con otro usuario colaborador, sí me salían resultados válidos. ¿¿??

Pues bien, aquí van los motivos:

  • No tenía programado ningún crawling, ni completo ni incremental. Al ser un entorno de desarrollo, lo que hago es forzar el crawl según necesito.
  • El usuario que no devolvía resultados de la búsqueda, lo había añadido al sitio, después de haber hecho el último crawl.
  • Al forzar un nuevo crawling, y probar de nuevo con el usuario que no devolvía nada, ahora, sí me devolvía los resultados de búsqueda esperados.

La conclusión es que el índice de búsquedas que monta SharePoint, copia mucha información del contenido, incluyendo, los permisos de los usuarios.

Para comprobarlo, he repetido el proceso:

  • He quitado del site a otro usuario que era colaborador
  • He forzado un nuevo crawling
  • He vuelto a añadir al usuario como colaborador
  • He realizado una búsqueda con dicho usuario, y efectivamente, no he obtenido ningún resultado de búsqueda.
  • He forzado un segundo crawling
  • Al volver a buscar con el mismo usuario, ya aparecían los resultados de la búsqueda esperados.

Moraleja:

Lleva esto en mente, y programa el crawling incremental y completo, según las necesidades de que dichos resultados estén “actualizados”. Ten en cuenta que a parte de esos permisos, también copia gran parte del contenido, por lo que es muy sencillo que elementos que hayan sido eliminados, o actualizado algún metadato, sigan apareciendo en los resultados de búsquedas con una versión incorrecta.

Saludos!!