Esempio n. 1
0
    def process_send_reset_email_action(self, request):
        email = request.data.get('email').lower()

        if not email:
            return bad_request('Email is required')

        try:
            validator = EmailValidator()
            validator.__call__(email)
        except ValidationError:
            return bad_request('Invalid email format')

        try:
            user = User.objects.get(email__iexact=email)
        except User.DoesNotExist:
            user = None

        if user is None:
            return bad_request('There is no account registered for this email')

        try:
            link = PwResetLink.objects.get(user=user)
        except PwResetLink.DoesNotExist:
            link = PwResetLink()

        token = '{0}-{1}'.format(uuid.uuid4(), uuid.uuid4())
        link.user = user
        link.token = token
        link.last_modified_date = datetime.datetime.now()
        link.save()

        EmailService().send_reset_pwd_email(user, token)

        return Response({}, status=status.HTTP_200_OK)
Esempio n. 2
0
def validate_email(email):
    if not email:
        raise ValidationError('Email is required')

    try:
        validator = EmailValidator()
        validator.__call__(email)
    except ValidationError:
        raise ValidationError('Invalid email format')
Esempio n. 3
0
 def clean_send_to_users(self):
     v = EmailValidator()
     for user in self.cleaned_data['send_to_users']:
         email = user.userprofile.email
         if email:
             try:
                 v.__call__(email)
             except ValidationError as e:
                 raise ValidationError(
                     _("Invalid email '%(email)s' of user %(user)s: %(exception)s"
                       ) % {
                           'email': email,
                           'user': user,
                           'exception': e,
                       }, )
     return self.cleaned_data['send_to_users']
Esempio n. 4
0
 def validate_email(email):
     email_validator = EmailValidator()
     email_valid = email_validator.__call__(email)
     if email_valid == False:
         raise ValidationError()
     return email