diff --git a/rhodecode/apps/_base/__init__.py b/rhodecode/apps/_base/__init__.py --- a/rhodecode/apps/_base/__init__.py +++ b/rhodecode/apps/_base/__init__.py @@ -221,6 +221,7 @@ class RepoAppView(BaseAppView): return default + class DataGridAppView(object): """ Common class to have re-usable grid rendering components diff --git a/rhodecode/apps/admin/views/main_views.py b/rhodecode/apps/admin/views/main_views.py --- a/rhodecode/apps/admin/views/main_views.py +++ b/rhodecode/apps/admin/views/main_views.py @@ -55,7 +55,7 @@ class AdminMainView(BaseAppView): """ pull_request_id = self.request.matchdict.get('pull_request_id') - pull_request = PullRequest.get_or_404(pull_request_id, pyramid_exc=True) + pull_request = PullRequest.get_or_404(pull_request_id) repo_name = pull_request.target_repo.repo_name raise HTTPFound( diff --git a/rhodecode/apps/admin/views/users.py b/rhodecode/apps/admin/views/users.py --- a/rhodecode/apps/admin/views/users.py +++ b/rhodecode/apps/admin/views/users.py @@ -159,7 +159,7 @@ class AdminUsersView(BaseAppView, DataGr c = self.load_default_context() user_id = self.request.matchdict.get('user_id') - c.user = User.get_or_404(user_id, pyramid_exc=True) + c.user = User.get_or_404(user_id) self._redirect_for_default_user(c.user.username) c.active = 'auth_tokens' @@ -194,7 +194,7 @@ class AdminUsersView(BaseAppView, DataGr c = self.load_default_context() user_id = self.request.matchdict.get('user_id') - c.user = User.get_or_404(user_id, pyramid_exc=True) + c.user = User.get_or_404(user_id) self._redirect_for_default_user(c.user.username) @@ -227,14 +227,14 @@ class AdminUsersView(BaseAppView, DataGr c = self.load_default_context() user_id = self.request.matchdict.get('user_id') - c.user = User.get_or_404(user_id, pyramid_exc=True) + c.user = User.get_or_404(user_id) self._redirect_for_default_user(c.user.username) user_data = c.user.get_api_data() del_auth_token = self.request.POST.get('del_auth_token') if del_auth_token: - token = UserApiKeys.get_or_404(del_auth_token, pyramid_exc=True) + token = UserApiKeys.get_or_404(del_auth_token) token_data = token.get_api_data() AuthTokenModel().delete(del_auth_token, c.user.user_id) @@ -257,7 +257,7 @@ class AdminUsersView(BaseAppView, DataGr c = self.load_default_context() user_id = self.request.matchdict.get('user_id') - c.user = User.get_or_404(user_id, pyramid_exc=True) + c.user = User.get_or_404(user_id) self._redirect_for_default_user(c.user.username) c.active = 'emails' @@ -276,7 +276,7 @@ class AdminUsersView(BaseAppView, DataGr c = self.load_default_context() user_id = self.request.matchdict.get('user_id') - c.user = User.get_or_404(user_id, pyramid_exc=True) + c.user = User.get_or_404(user_id) self._redirect_for_default_user(c.user.username) email = self.request.POST.get('new_email') @@ -307,7 +307,7 @@ class AdminUsersView(BaseAppView, DataGr c = self.load_default_context() user_id = self.request.matchdict.get('user_id') - c.user = User.get_or_404(user_id, pyramid_exc=True) + c.user = User.get_or_404(user_id) self._redirect_for_default_user(c.user.username) email_id = self.request.POST.get('del_email_id') @@ -334,7 +334,7 @@ class AdminUsersView(BaseAppView, DataGr c = self.load_default_context() user_id = self.request.matchdict.get('user_id') - c.user = User.get_or_404(user_id, pyramid_exc=True) + c.user = User.get_or_404(user_id) self._redirect_for_default_user(c.user.username) c.active = 'ips' @@ -357,7 +357,7 @@ class AdminUsersView(BaseAppView, DataGr c = self.load_default_context() user_id = self.request.matchdict.get('user_id') - c.user = User.get_or_404(user_id, pyramid_exc=True) + c.user = User.get_or_404(user_id) # NOTE(marcink): this view is allowed for default users, as we can # edit their IP white list @@ -407,7 +407,7 @@ class AdminUsersView(BaseAppView, DataGr c = self.load_default_context() user_id = self.request.matchdict.get('user_id') - c.user = User.get_or_404(user_id, pyramid_exc=True) + c.user = User.get_or_404(user_id) # NOTE(marcink): this view is allowed for default users, as we can # edit their IP white list @@ -436,7 +436,7 @@ class AdminUsersView(BaseAppView, DataGr c = self.load_default_context() user_id = self.request.matchdict.get('user_id') - c.user = User.get_or_404(user_id, pyramid_exc=True) + c.user = User.get_or_404(user_id) c.data = c.user.group_member self._redirect_for_default_user(c.user.username) groups = [UserGroupModel.get_user_groups_as_dict(group.users_group) @@ -456,7 +456,7 @@ class AdminUsersView(BaseAppView, DataGr c = self.load_default_context() user_id = self.request.matchdict.get('user_id') - c.user = User.get_or_404(user_id, pyramid_exc=True) + c.user = User.get_or_404(user_id) self._redirect_for_default_user(c.user.username) users_groups = set(self.request.POST.getall('users_group_id')) @@ -484,7 +484,7 @@ class AdminUsersView(BaseAppView, DataGr c = self.load_default_context() user_id = self.request.matchdict.get('user_id') - c.user = User.get_or_404(user_id, pyramid_exc=True) + c.user = User.get_or_404(user_id) self._redirect_for_default_user(c.user.username) c.active = 'audit' diff --git a/rhodecode/apps/my_account/views/my_account.py b/rhodecode/apps/my_account/views/my_account.py --- a/rhodecode/apps/my_account/views/my_account.py +++ b/rhodecode/apps/my_account/views/my_account.py @@ -211,7 +211,7 @@ class MyAccountView(BaseAppView, DataGri del_auth_token = self.request.POST.get('del_auth_token') if del_auth_token: - token = UserApiKeys.get_or_404(del_auth_token, pyramid_exc=True) + token = UserApiKeys.get_or_404(del_auth_token) token_data = token.get_api_data() AuthTokenModel().delete(del_auth_token, c.user.user_id) @@ -279,7 +279,7 @@ class MyAccountView(BaseAppView, DataGri del_email_id = self.request.POST.get('del_email_id') if del_email_id: - email = UserEmailMap.get_or_404(del_email_id, pyramid_exc=True).email + email = UserEmailMap.get_or_404(del_email_id).email UserModel().delete_extra_email(c.user.user_id, del_email_id) audit_logger.store_web( 'user.edit.email.delete', action_data={ diff --git a/rhodecode/apps/repository/views/repo_commits.py b/rhodecode/apps/repository/views/repo_commits.py --- a/rhodecode/apps/repository/views/repo_commits.py +++ b/rhodecode/apps/repository/views/repo_commits.py @@ -492,7 +492,7 @@ class RepoCommitsView(RepoAppView): commit_id = self.request.matchdict['commit_id'] comment_id = self.request.matchdict['comment_id'] - comment = ChangesetComment.get_or_404(safe_int(comment_id)) + comment = ChangesetComment.get_or_404(comment_id) if not comment: log.debug('Comment with id:%s not found, skipping', comment_id) # comment already deleted in another call probably diff --git a/rhodecode/controllers/pullrequests.py b/rhodecode/controllers/pullrequests.py --- a/rhodecode/controllers/pullrequests.py +++ b/rhodecode/controllers/pullrequests.py @@ -987,7 +987,7 @@ class PullrequestsController(BaseRepoCon @auth.CSRFRequired() @jsonify def delete_comment(self, repo_name, comment_id): - comment = ChangesetComment.get_or_404(safe_int(comment_id)) + comment = ChangesetComment.get_or_404(comment_id) if not comment: log.debug('Comment with id:%s not found, skipping', comment_id) # comment already deleted in another call probably diff --git a/rhodecode/model/db.py b/rhodecode/model/db.py --- a/rhodecode/model/db.py +++ b/rhodecode/model/db.py @@ -206,22 +206,17 @@ class BaseModel(object): return cls.query().get(id_) @classmethod - def get_or_404(cls, id_, pyramid_exc=False): - if pyramid_exc: - # NOTE(marcink): backward compat, once migration to pyramid - # this should only use pyramid exceptions - from pyramid.httpexceptions import HTTPNotFound - else: - from webob.exc import HTTPNotFound + def get_or_404(cls, id_): + from pyramid.httpexceptions import HTTPNotFound try: id_ = int(id_) except (TypeError, ValueError): - raise HTTPNotFound + raise HTTPNotFound() res = cls.query().get(id_) if not res: - raise HTTPNotFound + raise HTTPNotFound() return res @classmethod @@ -3776,16 +3771,12 @@ class Gist(Base, BaseModel): return h.escape(self.gist_description) @classmethod - def get_or_404(cls, id_, pyramid_exc=False): - - if pyramid_exc: - from pyramid.httpexceptions import HTTPNotFound - else: - from webob.exc import HTTPNotFound + def get_or_404(cls, id_): + from pyramid.httpexceptions import HTTPNotFound res = cls.query().filter(cls.gist_access_id == id_).scalar() if not res: - raise HTTPNotFound + raise HTTPNotFound() return res @classmethod