A simple app for Django 3.2.8 and Python 3.9.2 that allows listing and downloading files from a given directory, while controlling who can access the files.
python manage.py migrate is not required as there are no models.
Add to the settings.py file::
INSTALLED_APPS += ['directory']
DIRECTORY_DIRECTORY = '/path/to/dir'
That's the directory to be listed.
Add to the urls.py file the url entry, e.g.:
('files/', include('directory.urls')),
If setting DIRECTORY_ACCESS_MODE is set to 'use-perms', or (possibly) 'custom',
then this app will require django.contrib.auth installed in the project.
Setting DIRECTORY_ACCESS_MODE, can be one of: 'public', 'use-perms', 'custom',
value 'public' is default.
- value
'public'means that anyone can see the directory and download files. 'use-perms'means that django permission'directory_read'fromdjango.contrib.authwill be checked'custom'- means that function provided withDIRECTORY_ACCESS_FUNCTIONwill be called to check the permission
DIRECTORY_ACCESS_FUNCTION - a function or python path to the custom permission checking function e.g. 'myapp.perms.check_get_backups_perm'.
The function should accept parameter request and return a Boolean value - access granted if True.
DIRECTORY_TEMPLATE - path to the template file for the directory listing. Default value
is 'directory/list.html'