2013-12-17 16 views
1

Существует проект Django, над которым работает моя команда. У него будет панель управления для управления несколькими компаниями. Чтобы добавить новую систему в систему, администратор добавит домен компании с помощью панели. Эти домены будут фактически направлены на нашу систему. Мы будем определять компанию по URL и управлять мнениями в соответствии с доменом этой компании. Например: мы покажем пользователям под этой компанией, сделаем транзакции под этой компанией и так далее. Вся информация о таких компаниях, как информация о пользователе, сведения о компании и члены, будет храниться в основной базе данных нашего проекта. Пользователи будут входить в систему со своими электронными письмами. Из-за этого мы не можем сделать поле электронной почты (или имя пользователя) в базе данных уникальным, используя модель авторизации Django, поскольку пользователи электронной почты могут зарегистрироваться в нескольких разных компаниях, не зная об этом. Мой вопрос в том, какой должен быть наш подход для этой ситуации?Управление несколькими базами пользователей в одной таблице базы данных

вопроса мы ищем ответы на:

  • Устанавливает случайное имя пользователя к пользователю, но мы боремся с проблемой при создании супер-пользователя в командной строке после SyncDB, так как первый параметр будет тот, который определен с помощью USERNAME_FIELD. Как решить эту проблему с уникальным именем пользователя?

  • Создайте разные таблицы пользователей для каждой компании. Если да, КАК это сделать автоматически?

ответ

0

Похоже, что вы можете столкнуться с каким-то сложным сценарием управления пользователями/идентификаторами. Рассмотрите возможность использования какого-либо единого знака. Есть несколько Django дружественных решений, которые помогут вам разработать брокер идентичности:

OpenID интеграцию для django.contrib.auth https://launchpad.net/django-openid-auth

я использую OpenAm, который поддерживает OpenID здесь пост, который дает некоторые примеры Implementing Single Sign On (SSO) using Django

Джанго Social Auth https://github.com/omab/django-social-auth

В качестве альтернативы вы можете попробовать «Джанго Auth с использованием адреса электронной почты « http://www.micahcarrick.com/django-email-authentication.html

+0

Возможно, я не мог ясно проиллюстрировать ситуацию. Позвольте мне пояснить его примерами: допустим, у нас есть таблица с именем Application, и есть другая таблица с именем Users. Будет несколько приложений, и все их пользователи будут в той же таблице, что и «Пользователи». Каждый пользователь сможет присоединиться к нескольким приложениям. Но приложения не будут делиться пользователями, каждый пользователь будет иметь разные профили (информацию) для разных приложений. Мы думали создать разные таблицы для каждого приложения, но как мы можем сделать это динамически? Логично ли создавать пользовательскую таблицу для сохранения всех пользователей вместе? –