Changeset 756:8745488a7e28 in hatta-dev for hatta.py
Legend:
- Unmodified
- Added
- Removed
-
hatta.py
r755 r756 383 383 return path 384 384 385 386 385 def _check_path(self, path): 387 386 """ … … 391 390 abspath = os.path.abspath(path) 392 391 if os.path.islink(path) or os.path.isdir(path): 393 raise werkzeug.exceptions.Forbidden(_(u"Can't use symbolic links or directories as pages")) 392 raise werkzeug.exceptions.Forbidden( 393 _(u"Can't use symbolic links or directories as pages")) 394 394 if not abspath.startswith(self.path): 395 raise werkzeug.exceptions.Forbidden( _(u"Can't read or write outside of the pages repository"))396 395 raise werkzeug.exceptions.Forbidden( 396 _(u"Can't read or write outside of the pages repository")) 397 397 398 398 def _file_path(self, title): … … 401 401 def _title_to_file(self, title): 402 402 title = unicode(title).strip() 403 return os.path.join(self.repo_prefix, 404 werkzeug.url_quote(title, safe='')) 405 406 def _file_to_title(self, filename): 407 assert filename.startswith(self.repo_prefix) 408 name = filename[len(self.repo_prefix):].strip('/') 403 filename = werkzeug.url_quote(title, safe='') 404 # Escape special windows filenames and dot files 405 _windows_device_files = ('CON', 'AUX', 'COM1', 'COM2', 'COM3', 406 'COM4', 'LPT1', 'LPT2', 'LPT3', 'PRN', 407 'NUL') 408 if (filename.split('.')[0].upper() in _windows_device_files or 409 filename.startswith('_') or filename.startswith('.')): 410 filename = '_' + filename 411 return os.path.join(self.repo_prefix, filename) 412 413 def _file_to_title(self, filepath): 414 if not filepath.startswith(self.repo_prefix): 415 raise werkzeug.exceptions.Forbidden( 416 _(u"Can't read or write outside of the pages repository")) 417 name = filepath[len(self.repo_prefix):].strip('/') 418 # Unescape special windows filenames and dot files 419 if name.startswith('_') and len(name)>1: 420 name = name[1:] 409 421 return werkzeug.url_unquote(name) 410 422
Note: See TracChangeset
for help on using the changeset viewer.
