Как реализовать два уровня аутентификации в Django - PullRequest
0 голосов
/ 13 мая 2019

У меня есть веб-приложение для бизнеса.После входа в систему пользователь (управляющий бизнесом) может просматривать таблицы с информацией о своем бизнесе.

userID 1 -> * строк в MasterTable,

userID 1 -> * строк вa ForecastTable

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

Я думал об измененииСхема базы данных примерно такая: userID - businessID 1- * строки в MasterTable, строки в ForecastTable

Если у меня будет 2 страницы входа, сначала для userID, затем businessID.Тогда все столбцы в базе данных ссылаются только на businessID, поэтому разные пользователи могут редактировать одни и те же данные.

Или одна и та же форма входа заставляет пользователя вводить businessID и свое имя пользователя, затем в зависимости от того, какой businessID они вводят, он входит в эту страницу?

Я не уверен, как лучше всего реализовать что-то подобное.

Вот как выглядит моя модель django:

from django.db import models
from django.contrib.auth.models import User

class MasterEntry(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    date = models.DateField()
    cutoff1 = models.IntegerField(default=0)
    cutoff2 = models.IntegerField(default=0)
    rooms_sold = models.IntegerField(default=0)
    is_blackout = models.BooleanField(default=False)

class ForecastEntry(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    date = models.DateField()
    rate = models.IntegerField(default=0)

У пользователя есть сотни этих строк «основной записи» и «записи прогноза».Я запрашиваю в базе данных строки и создаю таблицу во внешнем интерфейсе.

1 Ответ

0 голосов
/ 14 мая 2019

Вам не нужно два уровня аутентификации.

Например, пользователь, который не является только администратором, может просматривать бизнес, которым он владеет, это достигается с помощью простого фильтра в представлении, отображающем упомянутый список предприятий.

И вы можете отобразить каждыйназвание компании в виде ссылки, которая затем отображает список MasterEntry с.

Это скорее проблема с разметкой информации.

Вывод:

  1. Показать страницу только с бизнесом, принадлежащим аутентифицированному пользователю.
  2. Суперпользователь может видеть все бизнес.
  3. Вы можете щелкнуть бизнес-запись, чтобы просмотреть / отредактировать / удалить любой из MasterEntrys он содержит.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...