Django 3 Защита доступа к медиа-файлам для указанной c пользователя / папки - PullRequest
0 голосов
/ 11 февраля 2020

В этом представлении я проверяю, вошел ли пользователь в систему или нет, перед загрузкой медиа-файла

from django.urls import path, include, re_path
from . import views
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.auth.decorators import login_required
from django.views.static import serve

### require login for showing media 
## todo restrict to specific patterns ? e.g. an authenticated user can only access
## files in his own folder 

@login_required
def protected_serve(request, path, document_root=None, show_indexes=False):
    return serve(request, path, document_root, show_indexes)


urlpatterns = [
        path('', views.home, name='home'),
        re_path (r'^%s(?P<path>.*)$' % settings.MEDIA_URL[1:], protected_serve, {'document_root': settings.MEDIA_ROOT}),

           ]

я хочу добиться проверки доступа пользователя только к папке с его собственное имя пользователя, например, пользователь "FOO" может обращаться только к файлам в подпапке мультимедиа с тем же именем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...