authentication: improve change_level