mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed #21219 -- Added a way to set different permission for static files.
Previously, when collecting static files, the files would receive permission from FILE_UPLOAD_PERMISSIONS. Now, there's an option to give different permission from uploaded files permission by subclassing any of the static files storage classes and setting the file_permissions_mode parameter. Thanks dblack at atlassian.com for the suggestion.
This commit is contained in:
@@ -442,7 +442,6 @@ class FileStoragePermissions(unittest.TestCase):
|
||||
self.umask = 0o027
|
||||
self.old_umask = os.umask(self.umask)
|
||||
self.storage_dir = tempfile.mkdtemp()
|
||||
self.storage = FileSystemStorage(self.storage_dir)
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self.storage_dir)
|
||||
@@ -450,24 +449,28 @@ class FileStoragePermissions(unittest.TestCase):
|
||||
|
||||
@override_settings(FILE_UPLOAD_PERMISSIONS=0o654)
|
||||
def test_file_upload_permissions(self):
|
||||
self.storage = FileSystemStorage(self.storage_dir)
|
||||
name = self.storage.save("the_file", ContentFile("data"))
|
||||
actual_mode = os.stat(self.storage.path(name))[0] & 0o777
|
||||
self.assertEqual(actual_mode, 0o654)
|
||||
|
||||
@override_settings(FILE_UPLOAD_PERMISSIONS=None)
|
||||
def test_file_upload_default_permissions(self):
|
||||
self.storage = FileSystemStorage(self.storage_dir)
|
||||
fname = self.storage.save("some_file", ContentFile("data"))
|
||||
mode = os.stat(self.storage.path(fname))[0] & 0o777
|
||||
self.assertEqual(mode, 0o666 & ~self.umask)
|
||||
|
||||
@override_settings(FILE_UPLOAD_DIRECTORY_PERMISSIONS=0o765)
|
||||
def test_file_upload_directory_permissions(self):
|
||||
self.storage = FileSystemStorage(self.storage_dir)
|
||||
name = self.storage.save("the_directory/the_file", ContentFile("data"))
|
||||
dir_mode = os.stat(os.path.dirname(self.storage.path(name)))[0] & 0o777
|
||||
self.assertEqual(dir_mode, 0o765)
|
||||
|
||||
@override_settings(FILE_UPLOAD_DIRECTORY_PERMISSIONS=None)
|
||||
def test_file_upload_directory_default_permissions(self):
|
||||
self.storage = FileSystemStorage(self.storage_dir)
|
||||
name = self.storage.save("the_directory/the_file", ContentFile("data"))
|
||||
dir_mode = os.stat(os.path.dirname(self.storage.path(name)))[0] & 0o777
|
||||
self.assertEqual(dir_mode, 0o777 & ~self.umask)
|
||||
|
||||
Reference in New Issue
Block a user