From c3183aae9aa9724a796751967a84649176aa2de0 Mon Sep 17 00:00:00 2001 From: Sandu Turcan Date: Mon, 19 Feb 2018 09:48:47 -0500 Subject: [PATCH] path-permissions: Introduced a _get_f_path_unchecked method, which can be used by redirects, which don't have to create a template context --- rhodecode/apps/_base/__init__.py | 12 +++++++++--- rhodecode/apps/repository/views/repo_files.py | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/rhodecode/apps/_base/__init__.py b/rhodecode/apps/_base/__init__.py index 61358dc4..f53e1b68 100644 --- a/rhodecode/apps/_base/__init__.py +++ b/rhodecode/apps/_base/__init__.py @@ -229,13 +229,19 @@ class RepoAppView(BaseAppView): return c - def _get_f_path(self, matchdict, default=None): + def _get_f_path_unchecked(self, matchdict, default=None): + """ + Should only be used by redirects, everything else should call _get_f_path + """ f_path = matchdict.get('f_path') if f_path: # fix for multiple initial slashes that causes errors for GIT - return self.path_filter.assert_path_permissions(f_path.lstrip('/')) + return f_path.lstrip('/') - return self.path_filter.assert_path_permissions(default) + return default + + def _get_f_path(self, matchdict, default=None): + return self.path_filter.assert_path_permissions(self._get_f_path_unchecked(matchdict, default)) class PathFilter(object): diff --git a/rhodecode/apps/repository/views/repo_files.py b/rhodecode/apps/repository/views/repo_files.py index 8706b8e5..8bf08a04 100644 --- a/rhodecode/apps/repository/views/repo_files.py +++ b/rhodecode/apps/repository/views/repo_files.py @@ -462,7 +462,7 @@ class RepoFilesView(RepoAppView): """ Kept only to make OLD links work """ - f_path = self._get_f_path(self.request.matchdict) + f_path = self._get_f_path_unchecked(self.request.matchdict) diff1 = self.request.GET.get('diff1', '') diff2 = self.request.GET.get('diff2', '')