def __init__(self, *args, **kwargs): self.initial = {} if 'username' in kwargs: self.initial['username'] = kwargs.get('username') del kwargs['username'] if 'key' in kwargs: self.initial['key'] = kwargs.get('key') del kwargs['key'] self.initial['gonzo'] = do_gonzo(self.initial.get('username', ''), self.initial.get('key', '')) kwargs['initial'] = self.initial super(SetPasswordForm, self).__init__(*args, **kwargs)
def clean(self): passwd = self.cleaned_data.get('password') passwd_ = self.cleaned_data.get('password_again') gonzo = self.cleaned_data.get('gonzo') if passwd == passwd_: if len(passwd) < 6: raise ValidationError(_(u"Chosen password is too short. It \ must be at least 6 characters long.")) chars = [] for char in passwd: if char not in chars: chars.append(char) if len(chars) < 3: raise ValidationError(_(u"The password muust contain at least \ 3 different characters.")) # FIXME: # FIXME: Testear: No está llegando la key. Supongo que no llegó la # FIXME: primera vez y entonces las veces consecutivas no tuvieron # FIXME: acceso para chequearlo. Hacer todo el proceso de nuevo, # FIXME: debería andar. Sino arreglar, la concha de la lora. if gonzo != do_gonzo(self.initial.get('username', ''), self.initial.get('key', '')): raise ValidationError(_(u"Unknown error occurred."))