Hola, yo estaba hace tiempo con esa duda, como hacer que un usuario utilice una unica vez un modulo, y que despues no le aparezca, yo lo solucione de la siguiente forma.
cuando creas un usuario, se le asigna un rol, (registrado, editor, o el que sea) puedes crearte un rol nuevo, por ejemplo usuario1, en algun momento, ya sea por registrase, rellenar un formulario o lo que quieras, le cambias el rol que tenia a ese usuario, pasa a ser de registered a usuario1.
despues ya solo tienes que poner que en la visibilidad del modulo, solo lo puedan ver por ejemplo, los usuarios registered, asi cuando ese usuario loguee al sistema, como checkea el rol para ver la visibilidad, lo muestra o no lo muestra.
No se si me e explicado
Lo malo es que hay programar toda esa funcionalidad (que es facil)
Si tienes alguna duda no temas en preguntarme.
Un saludo