Add SMTP error check

This commit is contained in:
Sokurov Idar 2021-04-11 01:12:07 +03:00
parent 19fc23808c
commit 8c0a589173
3 changed files with 19 additions and 20 deletions

View File

@ -92,12 +92,12 @@ class ZendeskAdmin:
def get_group(self, name: str) -> str: def get_group(self, name: str) -> str:
""" """
Функция возвращает группы, к которым принадлежит пользователь. Функция возвращает группу по названию
:param name: Имя пользователя :param name: Имя пользователя
:return: Группы пользователя (в случае отсутствия None) :return: Группы пользователя (в случае отсутствия None)
""" """
groups = self.admin.search(name) groups = self.admin.search(name, type='group')
for group in groups: for group in groups:
return group return group
return None return None

View File

@ -11,5 +11,5 @@
{% block content %} {% block content %}
<br> <br>
<h4> Нет пользователя с указаным адресом электронной почты.</h4> <h4> Нет пользователя с указаным адресом электронной почты либо произошла ошибка при отправке сообщения.</h4>
{% endblock %} {% endblock %}

View File

@ -1,7 +1,6 @@
import logging from smtplib import SMTPException
import os
from datetime import datetime
from django.contrib import messages
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.contrib.auth.forms import PasswordResetForm from django.contrib.auth.forms import PasswordResetForm
from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin
@ -13,23 +12,19 @@ from django.contrib.messages.views import SuccessMessageMixin
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.core.handlers.wsgi import WSGIRequest from django.core.handlers.wsgi import WSGIRequest
from django.http import HttpResponseRedirect, HttpResponse from django.http import HttpResponseRedirect, HttpResponse
from django.shortcuts import render, get_list_or_404, redirect from django.shortcuts import render, redirect
from django.urls import reverse_lazy, reverse from django.urls import reverse_lazy, reverse
from django.views.generic import FormView from django.views.generic import FormView
from django_registration.views import RegistrationView from django_registration.views import RegistrationView
from django.contrib import messages
# Django REST # Django REST
from rest_framework import viewsets from rest_framework import viewsets
from rest_framework.response import Response from rest_framework.response import Response
from zenpy.lib.api_objects import User as ZenpyUser from zenpy.lib.api_objects import User as ZenpyUser
from access_controller.settings import EMAIL_HOST_USER, ZENDESK_ROLES, ZENDESK_MAX_AGENTS from access_controller.settings import EMAIL_HOST_USER, ZENDESK_ROLES, ZENDESK_MAX_AGENTS, ZENDESK_GROUPS
from main.extra_func import ZendeskAdmin
from main.extra_func import check_user_exist, update_profile, get_user_organization, \ from main.extra_func import check_user_exist, update_profile, get_user_organization, \
make_engineer, make_light_agent, get_users_list, update_users_in_model, count_users, \ make_engineer, make_light_agent, get_users_list, update_users_in_model, count_users, \
StatisticData StatisticData,ZendeskAdmin
from main.forms import AdminPageUsers, CustomRegistrationForm, CustomAuthenticationForm, StatisticForm from main.forms import AdminPageUsers, CustomRegistrationForm, CustomAuthenticationForm, StatisticForm
from main.serializers import ProfileSerializer from main.serializers import ProfileSerializer
from .models import UserProfile from .models import UserProfile
@ -83,10 +78,14 @@ class CustomRegistrationView(RegistrationView):
email=form.data['email'], email=form.data['email'],
password=User.objects.make_random_password(length=50) password=User.objects.make_random_password(length=50)
) )
try:
forms.save(**opts) forms.save(**opts)
update_profile(user.userprofile) update_profile(user.userprofile)
self.set_permission(user) self.set_permission(user)
return user return user
except SMTPException:
user.delete()
self.is_allowed = False
else: else:
raise ValueError('Непредвиденная ошибка') raise ValueError('Непредвиденная ошибка')
else: else: