Изоляция арендаторов с помощью django-tenant-users в Django?

Я создаю многопользовательское приложение, используя Django с django-tenant и django-tenant-users для работы с арендаторами и аутентификации пользователей. Однако я пытаюсь найти оптимальный подход для предотвращения доступа пользователей из одного арендатора к данным или функциональности другого арендатора.

Я изучил пользовательское промежуточное ПО, систему разрешений Django и модели пользовательских профилей, но не нашел четкого руководства по обеспечению изоляции арендаторов в рамках фреймворка Django.

Для тех, кто знаком с django-tenant и django-tenant-users, как сделать так, чтобы пользователи одного арендатора не могли получить доступ к данным или функциям, принадлежащим другому арендатору?

Спасибо!

У вас есть публичная схема (доступная для всех). У каждого арендатора должна быть своя схема. Приватные данные всегда должны храниться в их собственной схеме. Убедившись в этом, вы получаете путь поиска, которым за вас управляет библиотека django Django-tenants.

При каждом запросе имя хоста используется для поиска арендатора в базе данных. При совпадении путь поиска обновляется, чтобы использовать схему этого арендатора.

Таким образом, путь поиска будет (схема хоста, публичная схема). Если таблица не существует в хост-схеме, поиск будет производиться в публичной схеме. Таким образом, вы можете иметь структуру, основанную на арендаторах, только в схемах арендаторов, а публичные структуры (для всех) - в публичной схеме.

Надеюсь, это прояснило процедуру.

Вернуться на верх