def validacao_senha_redefinicao(request): senha = loads(request.body)['valor'] resposta = {} tamanho_minimo = MinimumLengthValidator(8) numerica = NumericPasswordValidator() comum = CommonPasswordValidator() similar = UserAttributeSimilarityValidator(('nome', 'sobrenome', 'email'), max_similarity=0.7) # Checando se a senha tem no mínimo 8 caracteres try: tamanho_minimo.validate(senha) except ValidationError: tamanho_minimo = False # Checando se a senha é totalmente numérica try: numerica.validate(senha) except ValidationError: numerica = False # Checando se a senha é comum try: comum.validate(senha) except ValidationError: comum = False # Checando se a senha é similar a outras informações do usuário try: similar.validate(senha, request.user) except ValidationError as e: similar = False if not tamanho_minimo: status = 400 resposta['status'] = 'inválido' resposta['erro'] = 'Sua senha deve conter pelo menos 8 caracteres' elif not numerica: status = 400 resposta['status'] = 'inválido' resposta['erro'] = 'Sua senha não pode ser inteiramente numérica' elif not comum: status = 400 resposta['status'] = 'inválido' resposta['erro'] = 'Essa senha é muito comum. Tente outra' elif not similar: status = 400 resposta['status'] = 'inválido' resposta[ 'erro'] = 'Essa senha é muito parecida com seu e-mail ou com seu nome' else: status = 200 resposta['status'] = 'válido' return JsonResponse(resposta, status=status)
def validacao_senha_registro(request): senha = loads(request.body)['valor'] resposta = {} tamanho_minimo = MinimumLengthValidator(8) numerica = NumericPasswordValidator() comum = CommonPasswordValidator() # Checando se a senha tem no mínimo 8 caracteres try: tamanho_minimo.validate(senha) except ValidationError: tamanho_minimo = False # Checando se a senha é totalmente numérica try: numerica.validate(senha) except ValidationError: numerica = False # Checando se a senha é comum try: comum.validate(senha) except ValidationError: comum = False if not tamanho_minimo: status = 400 resposta['status'] = 'inválido' resposta['erro'] = 'Sua senha deve conter pelo menos 8 caracteres' elif not numerica: status = 400 resposta['status'] = 'inválido' resposta['erro'] = 'Sua senha não pode ser inteiramente numérica' elif not comum: status = 400 resposta['status'] = 'inválido' resposta['erro'] = 'Essa senha é muito comum. Tente outra.' else: status = 200 resposta['status'] = 'válido' return JsonResponse(resposta, status=status)