User activation

definitely a clean pull request
Nel caso in cui ci siano dati corrotti, perché fai copia + delete? Perché non una move?
Altra osservazione: a cose serve ritornare un dict vuoto se il file dei pending users è vuoto? Il dizionario vuoto è già il default della funzione (già usato tra l'altro immediatamente sopra nel caso di file corrotto).