Your suggestions sounds good (but may be you should have used
$util.clearName() for cleaning names). Anyway, you should create a JIRA
issue at 
 under officeimporter component and attach your
suggestions as a patch. I'll review the patch and apply it.
Thanks.
- Asiri
On Tue, May 11, 2010 at 1:45 AM, Wouter Boasson <Wouter.Boasson(a)rivm.nl>wrote;wrote:
  Dear reader,
 Version: XWiki/XE 2.2.4
 I gave the Office importer some treatment to make it work conform
 expectations. Maybe interesting for others?
 Whats weird is, that in IE7 it proposes an ugly document name, something
 like: c-fakepath etc. So I modified XWiki.OfficeImporterResults to strip
 everything in front of the actual documentname:
#set($fileName=$fileUpload.getFileName("filePath").replaceAll("^.*[\\]",""))
 Then, I added a check for an empty spacename (otherwise you'll end-up with
 a document in the XWiki space, which is probably not what you want), and
 also strip any considered 'dangerous' character from the documentname (such
 as &^@, accents, etc):
 ###########################
 ## Validate Target Space ##
 ###########################
  #if(! $request.targetSpace)
    {{error}}$msg.get("xe.officeimporter.results.missingspace",
 [$goBack]){{/error}}
  #else
    #if( $request.targetSpace == "" )
      {{error}}$msg.get("xe.officeimporter.results.missingspace",
 [$goBack]){{/error}}
    #else
      ## #set($targetSpace=$request.targetSpace.replaceAll("[:/&=+?#]",
 "-"))
      ##
#set($targetSpace=$request.targetSpace.replaceAll("[^a-zA-Z0-9-_~]","_").replaceAll("
 \\.\\/", "").replaceAll('"',""))
      #set($targetSpace=$request.targetSpace.replaceAll(" \\.\\/",
"").replaceAll("[\=\&\(a)'\\/()]","-").replaceAll('"',"").replaceAll("[^a-zA-Z0-9-_~]","_"))
    #end
  #end
 ##########################
 ## Validate Target Page ##
 ##########################
  #if(! $request.targetPage)
    {{error}}$msg.get("xe.officeimporter.results.missingpage",
 [$goBack]){{/error}}
  #else
    ## #set($targetPage=$request.targetPage)
    ##
#set($targetPage=$request.targetPage.replaceAll("[^a-zA-Z0-9-_~]","_").replaceAll("/",
 "-").replaceAll('"',""))
    #set($targetPage=$request.targetPage.replaceAll("[\=\&\@'\\/()]",
"-").replaceAll('"',"").replaceAll("[^a-zA-Z0-9-_~]","_"))
  #end
 Finally, I did not want to present the menu option at all for users who
 have no rights to create documents:
 In: templates/menuview.vm
  ## #if($canImport) (original)
  #if($canImport && $hasCreatePage)
    #submenuitem($xwiki.getURL('XWiki.OfficeImporter', 'view')
 $msg.get('core.menu.create.pageFromOffice') 'tmActionImport')
  #end
 More of this to follow, hopefully useful for others!
 Regards,
 Wouter
 _______________________________________________
 users mailing list
 users(a)xwiki.org
 
http://lists.xwiki.org/mailman/listinfo/users