Как настроить Django-сайт, где пользователи имеют разные разрешения для разных проектов - PullRequest
0 голосов
/ 29 октября 2019

Добрый стек! Надеюсь, вы мне поможете.

Я пытаюсь разработать веб-приложение, с помощью которого я могу легко разрабатывать django-приложения и распространять их среди пользователей. Пользователи веб-приложения должны иметь возможность создавать различные проекты и приглашать других пользователей. В среде проекта все django-приложения должны быть доступны. Данные приложений должны зависеть от проекта и быть доступными и редактируемыми только тогда, когда вы являетесь частью проекта.

Я изо всех сил пытаюсь разработать правильные структуры, чтобы данные были доступны и редактировались, только если вы являетесь частью проекта.

Подводя итог:

  • Iесть 1 проект Django
  • У меня есть несколько приложений, и я буду добавлять их позже.
  • Пользователи могут запускать проекты и приглашать пользователей.
  • В рамках проекта всеприложения доступны, но видны и доступны для редактирования только данные, относящиеся к проекту.
  • Если у пользователя нет доступа, он не может видеть данные проекта.

Вопросы, которыепугают меня в голове: Как мне настроить мою модель? Как мне настроить права доступа? Как мне убедиться, что они не могут получить доступ к данным проекта, к которым у них нет разрешений.

Я понимаю, что не существует единственно верного решения, но я ищу рекомендации по передовым методам или рабочим примерам. ,Я просто не знаю, с чего начать.

Я уже много искал в интернете, но не могу найти ничего похожего на то, что я хочу сделать.

Моя точка зренияВ настоящее время создается класс проекта в models.py. В models.py я создаю класс проекта, который связан с классом пользователей. Затем я создаю свои URL-адреса так, чтобы они выглядели так: www.example.com/project//app1/terminpage

Обновление:

Я продолжаю свою первоначальную мысль. Кажется, это работает. Я просто не уверен, что это «правильный» способ. То, что я сделал до сих пор:

  • Я создал приложение проектов, в котором я создал модель проекта.
  • Я создал отношение многие ко многим между моделью проекта и пользователями.
  • Я создал связь между всеми остальными моделями и моделью проекта с Foreignkey.
  • Я восстановил все свои URL-адреса так, чтобы они выглядели так: www.example.com/project//app/. ..
  • Я создал декоратор, который объединяет декоратор login_required и декоратор, который я создал сам, который проверяет, имеет ли пользователь отношение к проекту, и перенаправит, если нет.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...