authlogic e subdomain_fu: configurando corretamente o escopo

Esse é o pior tipo de erro que acontece: o que não está previsto nos seus testes. Recentemente passamos a usar o authlogic para validar a autenticação de usuários a alguns de nossos sistemas. A validação é muito boa e ainda facilita a criação de testes.

Porém, ao usar um subdomain-fu um erro estranho de validação de unicidade ocorria. Apesar de termos criado corretamente a validação de unicidade (validates_uniqueness_of), com o escopo correto de account_id (ou seja, apenas validando duplicidades existentes em uma mesma conta, começamos a ter falhas no ambiente de staging.

Sim, os testes previstos para verificar se a validação estava sendo criada com o escopo de account_id tinha sido criada corretamente usando o Remarkable. E isso tornava o erro em produção mais estranho ainda.

Após começar a tirar coisa por coisa, pensei que o culpado deveria ser o authlogic. Afinal, se o validates_uniqueness_of passasse a falhar a gente já teria ouvido uma chiadeira danada nos fóruns.

Indo direto para a conclusão, o que precisamos é passar um validations_scope como  parâmetro para a inicialização do acts_as_authentic. O código fica como abaixo:

# authlogic

acts_as_authentic {|config| config.validations_scope = :account_id }

É óbvio que você não precisa usar o subdomain-fu para esse problema ocorrer. Qualquer escopo que você precisar passar como parâmetro para verificar a unicidade do usuário é suficiente para precisar desse bloco de configuração.

4 opiniões sobre “authlogic e subdomain_fu: configurando corretamente o escopo”

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *