This function is getting pretty big.  How about we create something like a PasswordPromptView?