Validação de senha do Ruby on Rails

Portanto, tenho requisitos interessantes de validação de senha:

Quando um usuário se inscreve, quero que ele digite a senha, confirme e esteja entre6..40 (OBTEVE ESTE TRABALHO 100%)

Quando um usuário atualiza seu perfil, as mesmas regras de validação se aplicam (OBTEVE ESTA FUNCIONANDO 100%)

Quando um administrador adiciona um usuário, ele precisa digitar a senha apenas uma vez e deve ser validada (NÃO É TRABALHO)

Quando um administrador edita um usuário e o campo da senha está em branco, ele não deve atualizar a senha; se digitar algo, deverá ser validada. (TRABALHO PARCIAL)

validates :password, :presence => true,
                   :confirmation => true,
                   :length => {:within => 6..40},
                   :unless => :force_submit

Os únicos casos que não posso cobrir são quando um administrador adiciona um usuário, ele não é validado e, quando um administrador edita um usuário (e digita uma senha), ele não é validado.

a:force_submit é passado do formulário de administrador, para que a senha não seja validada. (Portanto, o caso de uma senha vazia de atualização funciona)

Alguma idéia / magia?

questionAnswers(4)

yourAnswerToTheQuestion