Изоляция арендаторов с помощью django-tenant-users в Django?
Я создаю многопользовательское приложение, используя Django с django-tenant
и django-tenant-users
для работы с арендаторами и аутентификации пользователей. Однако я пытаюсь найти оптимальный подход для предотвращения доступа пользователей из одного арендатора к данным или функциональности другого арендатора.
Я изучил пользовательское промежуточное ПО, систему разрешений Django и модели пользовательских профилей, но не нашел четкого руководства по обеспечению изоляции арендаторов в рамках фреймворка Django.
Для тех, кто знаком с django-tenant
и django-tenant-users
, как сделать так, чтобы пользователи одного арендатора не могли получить доступ к данным или функциям, принадлежащим другому арендатору?
Спасибо!
У вас есть публичная схема (доступная для всех). У каждого арендатора должна быть своя схема. Приватные данные всегда должны храниться в их собственной схеме. Убедившись в этом, вы получаете путь поиска, которым за вас управляет библиотека django Django-tenants.
Таким образом, путь поиска будет (схема хоста, публичная схема). Если таблица не существует в хост-схеме, поиск будет производиться в публичной схеме. Таким образом, вы можете иметь структуру, основанную на арендаторах, только в схемах арендаторов, а публичные структуры (для всех) - в публичной схеме.
Надеюсь, это прояснило процедуру.