Nulo desreferencia en PostGuardian can_delete_post

PostGuardian.can_delete_post contiene una desreferencia de user que falla cuando se llama sin que haya un usuario conectado. Se está llamando desde un plugin, así que tal vez esto no ocurra en el núcleo en este momento.

Está sucediendo aquí:

return true if user.in_any_groups?(SiteSetting.delete_all_posts_and_topics_allowed_groups_map)

La sugerencia es usar el operador de navegación segura &. o cambiarlo a return true if user && user.in_any_groups? ...

3 Me gusta

¿Podrías usar @system como usuario para esto, ya que siempre debería tener permisos? (Además, ¿el núcleo no hace eso también?)

No estoy seguro de que entiendas.

No es un problema que no haya usuario (y “sin usuario” debería ser igual a “sin permisos”). El problema es que el código asume que hay un usuario sin verificarlo, por lo que intenta ver si “nada” está en algún grupo.

1 me gusta