Validate COMMON_TEMPORARY_DIRECTORY and fallback to use mkdtemp on failure
This commit is contained in:
@@ -2,11 +2,10 @@ import tempfile
|
|||||||
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from common.conf import settings as common_settings
|
|
||||||
from navigation.api import register_links
|
from navigation.api import register_links
|
||||||
|
|
||||||
TEMPORARY_DIRECTORY = common_settings.TEMPORARY_DIRECTORY \
|
from common.conf import settings as common_settings
|
||||||
if common_settings.TEMPORARY_DIRECTORY else tempfile.mkdtemp()
|
from common.utils import validate_path
|
||||||
|
|
||||||
|
|
||||||
def has_usable_password(context):
|
def has_usable_password(context):
|
||||||
@@ -17,3 +16,6 @@ current_user_details = {'text': _(u'user details'), 'view': 'current_user_detail
|
|||||||
current_user_edit = {'text': _(u'edit details'), 'view': 'current_user_edit', 'famfam': 'vcard_edit'}
|
current_user_edit = {'text': _(u'edit details'), 'view': 'current_user_edit', 'famfam': 'vcard_edit'}
|
||||||
|
|
||||||
register_links(['current_user_details', 'current_user_edit', 'password_change_view'], [current_user_details, current_user_edit, password_change_view], menu_name='secondary_menu')
|
register_links(['current_user_details', 'current_user_edit', 'password_change_view'], [current_user_details, current_user_edit, password_change_view], menu_name='secondary_menu')
|
||||||
|
|
||||||
|
if (validate_path(common_settings.TEMPORARY_DIRECTORY) == False) or (not common_settings.TEMPORARY_DIRECTORY):
|
||||||
|
setattr(common_settings, 'TEMPORARY_DIRECTORY', tempfile.mkdtemp())
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import types
|
import types
|
||||||
|
import tempfile
|
||||||
|
|
||||||
from django.utils.http import urlquote as django_urlquote
|
from django.utils.http import urlquote as django_urlquote
|
||||||
from django.utils.http import urlencode as django_urlencode
|
from django.utils.http import urlencode as django_urlencode
|
||||||
@@ -374,3 +375,22 @@ def get_mimetype(filepath):
|
|||||||
file_mimetype, file_mime_encoding = mimetypes.guess_type(filename)
|
file_mimetype, file_mime_encoding = mimetypes.guess_type(filename)
|
||||||
|
|
||||||
return file_mimetype, file_mime_encoding
|
return file_mimetype, file_mime_encoding
|
||||||
|
|
||||||
|
|
||||||
|
def validate_path(path):
|
||||||
|
if os.path.exists(path) != True:
|
||||||
|
# If doesn't exist try to create it
|
||||||
|
try:
|
||||||
|
os.mkdir(path)
|
||||||
|
except:
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Check if it is writable
|
||||||
|
try:
|
||||||
|
fd, test_filepath = tempfile.mkstemp(dir=path)
|
||||||
|
os.close(fd)
|
||||||
|
os.unlink(test_filepath)
|
||||||
|
except:
|
||||||
|
return False
|
||||||
|
|
||||||
|
return True
|
||||||
|
|||||||
Reference in New Issue
Block a user