Correct view documentation using typehints
This commit is contained in:
parent
d50a88e8bc
commit
be6005c4be
@ -32,7 +32,7 @@ class CustomRegistrationForm(RegistrationFormUniqueEmail):
|
|||||||
|
|
||||||
class AdminPageUsers(forms.Form):
|
class AdminPageUsers(forms.Form):
|
||||||
"""
|
"""
|
||||||
Форма для установки статусов engineer или light_agent пользователям
|
Форма для установки статусов engineer или light_agent пользователям.
|
||||||
|
|
||||||
:param users: Поле для установки статуса
|
:param users: Поле для установки статуса
|
||||||
:type users: :class:`ModelMultipleChoiceField`
|
:type users: :class:`ModelMultipleChoiceField`
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<button type="submit" class="btn btn-primary">Войти</button>
|
<button type="submit" class="btn btn-primary">Войти</button>
|
||||||
<a href="password_reset" class="btn btn-link" style="display: block;">Забыли пароль?</a>
|
<a href="../../password_reset/" class="btn btn-link" style="display: block;">Забыли пароль?</a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -27,7 +27,7 @@ from .models import UserProfile
|
|||||||
|
|
||||||
class CustomRegistrationView(RegistrationView):
|
class CustomRegistrationView(RegistrationView):
|
||||||
"""
|
"""
|
||||||
Отображение и логика работы страницы регистрации пользователя
|
Класс отображения и логики работы страницы регистрации пользователя
|
||||||
|
|
||||||
1. Ввод email пользователя, указанный на Zendesk
|
1. Ввод email пользователя, указанный на Zendesk
|
||||||
2. В случае если пользователь с данным паролем зарегистрирован на Zendesk и относится к определенной организации, происходит сброс ссылки с установлением пароля на указанный email
|
2. В случае если пользователь с данным паролем зарегистрирован на Zendesk и относится к определенной организации, происходит сброс ссылки с установлением пароля на указанный email
|
||||||
@ -68,9 +68,11 @@ class CustomRegistrationView(RegistrationView):
|
|||||||
self.is_allowed = False
|
self.is_allowed = False
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def set_permission(user) -> None:
|
def set_permission(user: User) -> None:
|
||||||
"""
|
"""
|
||||||
Дает разрешение на просмотр страница администратора, если пользователь имеет роль admin
|
Функция дает разрешение на просмотр страница администратора, если пользователь имеет роль admin.
|
||||||
|
|
||||||
|
:param user: авторизованный пользователь (получает разрешение, имея роль "admin"
|
||||||
"""
|
"""
|
||||||
if user.userprofile.role == 'admin':
|
if user.userprofile.role == 'admin':
|
||||||
content_type = ContentType.objects.get_for_model(UserProfile)
|
content_type = ContentType.objects.get_for_model(UserProfile)
|
||||||
@ -82,8 +84,11 @@ class CustomRegistrationView(RegistrationView):
|
|||||||
|
|
||||||
def get_success_url(self, user: User = None) -> success_url:
|
def get_success_url(self, user: User = None) -> success_url:
|
||||||
"""
|
"""
|
||||||
Возвращает url-адрес страницы, куда нужно перейти после успешной/неуспешной регистрации
|
Функция возвращает url-адрес страницы, куда нужно перейти после успешной/неуспешной регистрации.
|
||||||
Используется самой django-registration
|
Используется самой django-registration.
|
||||||
|
|
||||||
|
:param user: пользователь, пытающийся зарегистроваться
|
||||||
|
:return: адресация на страницу успешной регистрации
|
||||||
"""
|
"""
|
||||||
if self.is_allowed:
|
if self.is_allowed:
|
||||||
return reverse_lazy('password_reset_done')
|
return reverse_lazy('password_reset_done')
|
||||||
@ -94,7 +99,10 @@ class CustomRegistrationView(RegistrationView):
|
|||||||
@login_required()
|
@login_required()
|
||||||
def profile_page(request: WSGIRequest) -> HttpResponse:
|
def profile_page(request: WSGIRequest) -> HttpResponse:
|
||||||
"""
|
"""
|
||||||
Отображение страницы профиля
|
Функция отображения страницы профиля.
|
||||||
|
|
||||||
|
:param request: данные пользователя из БД
|
||||||
|
:return: адресация на страницу пользователя
|
||||||
"""
|
"""
|
||||||
user_profile: UserProfile = request.user.userprofile
|
user_profile: UserProfile = request.user.userprofile
|
||||||
update_profile(user_profile)
|
update_profile(user_profile)
|
||||||
@ -105,7 +113,13 @@ def profile_page(request: WSGIRequest) -> HttpResponse:
|
|||||||
return render(request, 'pages/profile.html', context)
|
return render(request, 'pages/profile.html', context)
|
||||||
|
|
||||||
|
|
||||||
def auth_user(request):
|
def auth_user(request: WSGIRequest) -> ZenpyUser:
|
||||||
|
"""
|
||||||
|
Функция возвращает профиль пользователя на Zendesk.
|
||||||
|
|
||||||
|
:param request: email, subdomain и token пользователя
|
||||||
|
:return: объект пользователя Zendesk
|
||||||
|
"""
|
||||||
admin_creds = {
|
admin_creds = {
|
||||||
'email': os.environ.get('ACCESS_CONTROLLER_API_EMAIL'),
|
'email': os.environ.get('ACCESS_CONTROLLER_API_EMAIL'),
|
||||||
'subdomain': 'ngenix1612197338',
|
'subdomain': 'ngenix1612197338',
|
||||||
@ -117,7 +131,14 @@ def auth_user(request):
|
|||||||
|
|
||||||
|
|
||||||
@login_required()
|
@login_required()
|
||||||
def work_page(request, id):
|
def work_page(request: WSGIRequest, id: int) -> HttpResponse:
|
||||||
|
"""
|
||||||
|
Функция отображения страницы "Управления правами" для текущего пользователя (login_required).
|
||||||
|
|
||||||
|
:param request: объект пользователя
|
||||||
|
:param id: id пользователя, используется для динамической адресации
|
||||||
|
:return: адресация на страницу "Управления правами" (либо на страницу "Авторизации", если id и user.id не совпадают
|
||||||
|
"""
|
||||||
users = get_users_list()
|
users = get_users_list()
|
||||||
if request.user.id == id:
|
if request.user.id == id:
|
||||||
engineers = []
|
engineers = []
|
||||||
@ -139,7 +160,14 @@ def work_page(request, id):
|
|||||||
|
|
||||||
|
|
||||||
@login_required()
|
@login_required()
|
||||||
def work_hand_over(request):
|
def work_hand_over(request: WSGIRequest) -> HttpResponseRedirect:
|
||||||
|
"""
|
||||||
|
Функция позволяет текущему пользователю (login_required) сдать права, а именно сменить в Zendesk роль с "engineer" на "light agent"
|
||||||
|
и установить роль "agent" в БД. Действия выполняются, если исходная роль пользователя "engineer".
|
||||||
|
|
||||||
|
:param request: данные текущего пользователя (login_required)
|
||||||
|
:return: перезагрузка текущей страницы после выполнения смены роли
|
||||||
|
"""
|
||||||
zenpy_user, admin = auth_user(request)
|
zenpy_user, admin = auth_user(request)
|
||||||
|
|
||||||
if zenpy_user.custom_role_id == ZENDESK_ROLES['engineer']:
|
if zenpy_user.custom_role_id == ZENDESK_ROLES['engineer']:
|
||||||
@ -151,7 +179,13 @@ def work_hand_over(request):
|
|||||||
|
|
||||||
|
|
||||||
@login_required()
|
@login_required()
|
||||||
def work_become_engineer(request):
|
def work_become_engineer(request: WSGIRequest) -> HttpResponseRedirect:
|
||||||
|
"""
|
||||||
|
Функция меняет роль пользователя в Zendesk на "engineer" и присваевает роль "agent" в БД (в случае, если исходная роль пользователя была "light_agent").
|
||||||
|
|
||||||
|
:param request: данные текущего пользователя (login_required)
|
||||||
|
:return: перезагрузка текущей страницы после выполнения смены роли
|
||||||
|
"""
|
||||||
zenpy_user, admin = auth_user(request)
|
zenpy_user, admin = auth_user(request)
|
||||||
if zenpy_user.custom_role_id == ZENDESK_ROLES['light_agent']:
|
if zenpy_user.custom_role_id == ZENDESK_ROLES['light_agent']:
|
||||||
zenpy_user.custom_role_id = ZENDESK_ROLES['engineer']
|
zenpy_user.custom_role_id = ZENDESK_ROLES['engineer']
|
||||||
|
Loading…
x
Reference in New Issue
Block a user