PDF: pdftk as snap (ubuntu): print warning about pdf attachments if TMPDIR does not belong to user

This commit is contained in:
Jean-Francois Dockes 2020-08-20 11:27:12 +02:00
parent 1d7868d93c
commit 2c0fd8502a
3 changed files with 31 additions and 1 deletions

View File

@ -193,7 +193,6 @@ class PDFExtractor:
if not tmpdir or not self.pdftk:
# no big deal
return True
try:
vacuumdir(tmpdir)
subprocess.check_call([self.pdftk, self.filename, "unpack_files",
@ -433,6 +432,21 @@ class PDFExtractor:
return False
else:
tmpdir = tempfile.mkdtemp(prefix='rclmpdf')
if self.pdftk and re.match("/snap/", self.pdftk):
# We know this is Unix (Ubuntu actually). Check that tmpdir
# belongs to the user as snap commands can't use /tmp to share
# files. Don't generate an error as this only affects
# attachment extraction
ok = False
if "TMPDIR" in os.environ:
st = os.stat(os.environ["TMPDIR"])
if st.st_uid == os.getuid():
ok = True
if not ok:
self.em.rclog(
"pdftk is a snap command and needs TMPDIR to be "
"a directory you own")
###### File type handler api, used by rclexecm ---------->
def openfile(self, params):

14
tests/pdfattach/pdfattach.sh Executable file
View File

@ -0,0 +1,14 @@
#!/bin/sh
topdir=`dirname $0`/..
. $topdir/shared.sh
initvariables $0
(
recollq -S url '"Rosetten von Spitzwegerich"'
) 2> $mystderr | egrep -v '^Recoll query: ' > $mystdout
diff -w ${myname}.txt $mystdout > $mydiffs 2>&1
checkresult

View File

@ -0,0 +1,2 @@
1 results
application/pdf [file:///home/dockes/projets/fulltext/testrecoll/pdfattach/Turnierausschreibung.pdf] [Rezept] 57269 bytes