Как мы можем определить разрешения на уровне организации с помощью Django Rest Framework
Я новичок в Django аутентификации и авторизации, у нас есть логин и регистрация, реализованные с помощью ReactJS на стороне клиента и Django JWT аутентификации на стороне сервера. Теперь я хочу поднять это на новый уровень, добавив авторизацию, чтобы пользователи из одной организации могли просматривать/читать/писать данные, существующие в приложении. Каждый пользователь будет идентифицирован с помощью определенного доменного имени, например: @gmail.com,@xyz.com. Пользователи из одного домена не должны иметь никакого доступа к базе данных других организаций. Я думаю, что мы можем достичь этого с помощью концепции Permissions в Django, но не знаю, как мы можем сделать это технически. Любые идеи будут высоко оценены. Спасибо
Может быть несколько подходов, но я в основном обрабатываю такие вещи в представлениях, вы можете отфильтровать email пользователя и затем сравнить внутри представления. Просто пример:
@api_view(['GET', 'POST'])
def hello_world(request, id):
user = User.objects.get(id=id)
if request.method == 'POST':
if user.email == re.match(r"... regex here ...", user): # regex
return Response({"message": "Got some data of the organization xyz!", "data": request.data})
else:
return Response({"message": "Not authorized for XYZ operations!", "data": request.data})
Мне кажется, что это простой, но понятный подход. И чаще всего я следую этому.