Esempio n. 1
0
    def clean_file(self):
        if self.cleaned_data['file']:
            filename = self.cleaned_data['file'].name

            # CHECK IF FILE EXISTS
            dir_list = os.listdir(os.path.join(self.path_server, self.path))
            if filename in dir_list:
                raise forms.ValidationError(_(u'File already exists.'))

            # TODO: CHECK IF VERSIONS_PATH EXISTS (IF USE_IMAGE_GENERATOR IS TRUE)

            # CHECK FILENAME
            if not alnum_name_re.search(filename):
                raise forms.ValidationError(_(u'Filename is not allowed.'))

            # CHECK EXTENSION / FILE_TYPE
            file_type = _get_file_type(filename)
            if not file_type or file_type == "Folder":
                raise forms.ValidationError(
                    _(u'File extension is not allowed.'))

            # CHECK FILESIZE
            filesize = self.cleaned_data['file'].size
            if filesize > MAX_UPLOAD_SIZE:
                raise forms.ValidationError(
                    _(u'Filesize exceeds allowed Upload Size.'))

            self.cleaned_data['file'].name = self.cleaned_data[
                'file'].name.replace(' ', '_')
        return self.cleaned_data['file']
Esempio n. 2
0
 def clean_file(self):
     if self.cleaned_data['file']:
         filename = self.cleaned_data['file'].name
         
         # CHECK IF FILE EXISTS
         dir_list = os.listdir(os.path.join(self.path_server, self.path))
         if filename in dir_list:
             raise forms.ValidationError(_(u'File already exists.'))
             
         # TODO: CHECK IF VERSIONS_PATH EXISTS (IF USE_IMAGE_GENERATOR IS TRUE)
         
         # CHECK FILENAME
         if not alnum_name_re.search(filename):
             raise forms.ValidationError(_(u'Filename is not allowed.'))
             
         # CHECK EXTENSION / FILE_TYPE
         file_type = _get_file_type(filename)
         if not file_type or file_type == "Folder":
             raise forms.ValidationError(_(u'File extension is not allowed.'))
             
         # CHECK FILESIZE
         filesize = self.cleaned_data['file'].size
         if filesize > MAX_UPLOAD_SIZE:
             raise forms.ValidationError(_(u'Filesize exceeds allowed Upload Size.'))
             
         self.cleaned_data['file'].name = self.cleaned_data['file'].name.replace(' ', '_')
     return self.cleaned_data['file']
Esempio n. 3
0
def rename(request, project_slug, dir_name=None, file_name=None):
    """
    Rename existing File/Directory.
    """
    project = get_object_or_404(Project, slug__iexact=project_slug, members=request.user)
    path = _get_path(dir_name, str(project.pk))
    query = request.GET
    
    if os.path.isfile(os.path.join(PATH_SERVER, path, file_name)): # file
        file_type = _get_file_type(file_name)
        file_extension = os.path.splitext(file_name)[1].lower()
    else:
        file_extension = ""
        file_type = ""
    
    if request.method == 'POST':
        form = RenameForm(PATH_SERVER, path, file_extension, request.POST)
        if form.is_valid():
            old_path = os.path.join(PATH_SERVER, path, file_name)
            new_path = os.path.join(PATH_SERVER, path, request.POST.get('name').lower() + file_extension)
            try:
                os.rename(old_path, new_path)
                # RENAME IMAGE VERSIONS? TOO MUCH MAGIC?
                
                # MESSAGE & REDIRECT
                msg = _('Renaming was successful.')
                request.user.message_set.create(message=msg)
                redirect = _redirect_to_path(path)
                if redirect:
                    return HttpResponseRedirect(reverse('file-folder-list', kwargs = {'project_slug': project.slug, 'dir_name': redirect }))
                else:
                    return HttpResponseRedirect(reverse('file-list', kwargs = {'project_slug': project.slug }))
            except OSError, (errno, strerror):
                form.errors['name'] = forms.util.ErrorList([_('Error.')])
Esempio n. 4
0
 def __init__(self, filename, path, selecttype=None):
     self.filename = filename
     self.filename_lower = filename.lower()
     self.path = path
     self.filesize = os.path.getsize(os.path.join(PATH_SERVER, path, filename))
     self.date = os.path.getmtime(os.path.join(PATH_SERVER, path, filename))
     self.filetype = _get_file_type(filename)
     if not selecttype or self.filetype in SELECT_FORMATS[selecttype.capitalize()]:
         self.selectable = True
Esempio n. 5
0
 def __init__(self, filename, path, selecttype=None):
     self.filename = filename
     self.filename_lower = filename.lower()
     self.path = path
     self.filesize = os.path.getsize(
         os.path.join(PATH_SERVER, path, filename))
     self.date = os.path.getmtime(os.path.join(PATH_SERVER, path, filename))
     self.filetype = _get_file_type(filename)
     if not selecttype or self.filetype in SELECT_FORMATS[
             selecttype.capitalize()]:
         self.selectable = True
Esempio n. 6
0
def rename(request, project_slug, dir_name=None, file_name=None):
    """
    Rename existing File/Directory.
    """
    project = get_object_or_404(Project,
                                slug__iexact=project_slug,
                                members=request.user)
    path = _get_path(dir_name, str(project.pk))
    query = request.GET

    if os.path.isfile(os.path.join(PATH_SERVER, path, file_name)):  # file
        file_type = _get_file_type(file_name)
        file_extension = os.path.splitext(file_name)[1].lower()
    else:
        file_extension = ""
        file_type = ""

    if request.method == 'POST':
        form = RenameForm(PATH_SERVER, path, file_extension, request.POST)
        if form.is_valid():
            old_path = os.path.join(PATH_SERVER, path, file_name)
            new_path = os.path.join(
                PATH_SERVER, path,
                request.POST.get('name').lower() + file_extension)
            try:
                os.rename(old_path, new_path)
                # RENAME IMAGE VERSIONS? TOO MUCH MAGIC?

                # MESSAGE & REDIRECT
                msg = _('Renaming was successful.')
                request.user.message_set.create(message=msg)
                redirect = _redirect_to_path(path)
                if redirect:
                    return HttpResponseRedirect(
                        reverse('file-folder-list',
                                kwargs={
                                    'project_slug': project.slug,
                                    'dir_name': redirect
                                }))
                else:
                    return HttpResponseRedirect(
                        reverse('file-list',
                                kwargs={'project_slug': project.slug}))
            except OSError, (errno, strerror):
                form.errors['name'] = forms.util.ErrorList([_('Error.')])