Kaydet (Commit) 87d36fea authored tarafından Caolán McNamara's avatar Caolán McNamara

keep pyuno script processing below base uri

Change-Id: Icc13fb7193fb1e7c50e0df286161a10b4ed636c7
Reviewed-on: https://gerrit.libreoffice.org/61957Reviewed-by: 's avatarStephan Bergmann <sbergman@redhat.com>
Tested-by: Jenkins
üst 834500c9
......@@ -25,6 +25,7 @@ import imp
import time
import ast
import platform
from com.sun.star.uri.RelativeUriExcessParentSegments import RETAIN
try:
unicode
......@@ -212,8 +213,33 @@ class MyUriHelper:
def scriptURI2StorageUri( self, scriptURI ):
try:
myUri = self.m_uriRefFac.parse(scriptURI)
ret = self.m_baseUri + "/" + myUri.getName().replace( "|", "/" )
# base path to the python script location
sBaseUri = self.m_baseUri + "/"
xBaseUri = self.m_uriRefFac.parse(sBaseUri)
# path to the .py file + "$functionname, arguments, etc
xStorageUri = self.m_uriRefFac.parse(scriptURI)
sStorageUri = xStorageUri.getName().replace( "|", "/" );
# path to the .py file, relative to the base
sFileUri = sStorageUri[0:sStorageUri.find("$")]
xFileUri = self.m_uriRefFac.parse(sFileUri)
if not xFileUri:
message = "pythonscript: invalid relative uri '" + sFileUri+ "'"
log.debug( message )
raise RuntimeException( message )
# absolute path to the .py file
xAbsScriptUri = self.m_uriRefFac.makeAbsolute(xBaseUri, xFileUri, True, RETAIN)
sAbsScriptUri = xAbsScriptUri.getUriReference()
# ensure py file is under the base path
if not sAbsScriptUri.startswith(sBaseUri):
message = "pythonscript: storage uri '" + sAbsScriptUri + "' not in base uri '" + self.m_baseUri + "'"
log.debug( message )
raise RuntimeException( message )
ret = sBaseUri + sStorageUri
log.debug( "converting scriptURI="+scriptURI + " to storageURI=" + ret )
return ret
except UnoException as e:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment