Выборочная Django Настройка модели пользователя из существующей (Drupal) таблицы базы данных - PullRequest
0 голосов
/ 03 марта 2020

Я работаю над проектом по замене приложения Drupal 6 и пытаюсь выяснить, как использовать его MySQL таблицу 'users' для создания моих Django пользовательских моделей для аутентификации. Оба приложения размещены на одном сервере, поэтому у меня есть легкий доступ к БД. База данных пользователей Drupal по-прежнему активно используется для более масштабного приложения, из которого мой проект является подмножеством, поэтому я не могу реструктурировать его, и я надеюсь избежать необходимости в отдельных учетных записях для моего приложения, поскольку оно все является частью та же экосистема / имеет существующих пользователей. Я не могу просто скопировать существующих пользователей в новую таблицу, так как люди будут продолжать создавать учетные записи в системе Drupal.

Я исследовал AbstractUser и AbstractBaseUser, но не нашел способа назначьте столбцы из существующей таблицы переменным имени пользователя и пароля. Кажется, что все пользовательские решения для пользовательских моделей предполагают, что пользовательская база данных запускается fre sh и заботится о назначении, хранении и сохранении имен пользователей и паролей за кулисами.

Я рассматриваю возможность использования стандартная модель пользователя, проверка нераспознанных имен пользователей и паролей в базе данных пользователей Drupal и создание нового пользователя Django при первом входе в систему, если он существует в таблице 'users'. Это моя лучшая ставка? Это кажется громоздким, но не нашел лучшего решения.

Что я хотел бы сделать (или что-то в этом роде):

class User(AbstractBaseUser):
    uid = models.AutoField(primary_key=True)
    username = models.CharField(unique=True, max_length=60)
    password = models.CharField( max_length=32)
    mail = models.CharField(max_length=64, blank=True, null=True)

    USERNAME_FIELD = ‘username’

    class Meta:
       managed = False
       db_table = ‘users’

Другая информация:

Полагаю, мне понадобится написать пользовательский бэкэнд аутентификации для декодирования хешированного пароля Drupal, который хранится в БД, но я думаю, что это будет довольно легко, как только я проясню модель.

Я довольно новичок в Django, так что прости мое невежество. Спасибо!

...