|
@ -1,5 +1,6 @@ |
|
|
import hashlib |
|
|
import hashlib |
|
|
import logging |
|
|
import logging |
|
|
|
|
|
import os |
|
|
import re |
|
|
import re |
|
|
from datetime import date |
|
|
from datetime import date |
|
|
from functools import wraps |
|
|
from functools import wraps |
|
@ -364,6 +365,10 @@ TIPOS_IMG_PERMITIDOS = ( |
|
|
def fabrica_validador_de_tipos_de_arquivo(lista, nome): |
|
|
def fabrica_validador_de_tipos_de_arquivo(lista, nome): |
|
|
|
|
|
|
|
|
def restringe_tipos_de_arquivo(value): |
|
|
def restringe_tipos_de_arquivo(value): |
|
|
|
|
|
if not os.path.splitext(value.path)[1][:1]: |
|
|
|
|
|
raise ValidationError(_( |
|
|
|
|
|
'Não é possível fazer upload de arquivos sem extensão.')) |
|
|
|
|
|
|
|
|
mime = magic.from_buffer(value.read(), mime=True) |
|
|
mime = magic.from_buffer(value.read(), mime=True) |
|
|
if mime not in lista: |
|
|
if mime not in lista: |
|
|
raise ValidationError(_('Tipo de arquivo não suportado')) |
|
|
raise ValidationError(_('Tipo de arquivo não suportado')) |
|
@ -371,6 +376,7 @@ def fabrica_validador_de_tipos_de_arquivo(lista, nome): |
|
|
restringe_tipos_de_arquivo.__name__ = nome |
|
|
restringe_tipos_de_arquivo.__name__ = nome |
|
|
return restringe_tipos_de_arquivo |
|
|
return restringe_tipos_de_arquivo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
restringe_tipos_de_arquivo_txt = fabrica_validador_de_tipos_de_arquivo( |
|
|
restringe_tipos_de_arquivo_txt = fabrica_validador_de_tipos_de_arquivo( |
|
|
TIPOS_TEXTO_PERMITIDOS, 'restringe_tipos_de_arquivo_txt') |
|
|
TIPOS_TEXTO_PERMITIDOS, 'restringe_tipos_de_arquivo_txt') |
|
|
restringe_tipos_de_arquivo_img = fabrica_validador_de_tipos_de_arquivo( |
|
|
restringe_tipos_de_arquivo_img = fabrica_validador_de_tipos_de_arquivo( |
|
@ -382,6 +388,7 @@ def intervalos_tem_intersecao(a_inicio, a_fim, b_inicio, b_fim): |
|
|
menor_fim = min(a_fim, b_fim) |
|
|
menor_fim = min(a_fim, b_fim) |
|
|
return maior_inicio <= menor_fim |
|
|
return maior_inicio <= menor_fim |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
""" |
|
|
""" |
|
|
def permissoes(nome_grupo, app_label): |
|
|
def permissoes(nome_grupo, app_label): |
|
|
lista_permissoes = [] |
|
|
lista_permissoes = [] |
|
|