46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
# DRF Rack
|
|
# Библиотека классов расширений для Django REST Framework
|
|
#
|
|
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
|
|
# Все права защищены. Лицензия: MIT
|
|
|
|
"""
|
|
Описание класса ForbiddenException
|
|
"""
|
|
|
|
from typing import Any
|
|
|
|
from django.utils.translation import gettext as _
|
|
from rest_framework import status
|
|
|
|
from net.xeaf.rack.core import CoreException
|
|
|
|
|
|
class ForbiddenException(CoreException):
|
|
"""
|
|
Исключение, возникающее при нарушении прав доступа
|
|
"""
|
|
|
|
def __init__(self, detail: list | str | None = None, meta: dict | None = None, **kwargs: Any):
|
|
"""
|
|
Инициализация
|
|
|
|
:param detail: Информация об ошибке
|
|
:param meta: Информация для обработки ошибки
|
|
:param kwargs: Дополнительные параметры
|
|
"""
|
|
|
|
# Сообщение об ошибке по умолчанию
|
|
if detail is None:
|
|
detail = _(self.Msg.DEFAULT_MESSAGE)
|
|
|
|
super().__init__(status.HTTP_403_FORBIDDEN, detail, meta, **kwargs)
|
|
|
|
class Msg:
|
|
"""
|
|
Константы сообщений
|
|
"""
|
|
|
|
DEFAULT_MESSAGE = _("rack.errors.http.forbidden")
|
|
""" Доступ запрещен """
|