core: no longer rely on webob exception inside get_or_404 function.
- relly on pyramid exc only - helps reduce number of appenlight problems with 404 handling via webob
This commit is contained in:
parent
0c1f7e3306
commit
4de255d013
7 changed files with 26 additions and 34 deletions
|
|
@ -221,6 +221,7 @@ class RepoAppView(BaseAppView):
|
|||
|
||||
return default
|
||||
|
||||
|
||||
class DataGridAppView(object):
|
||||
"""
|
||||
Common class to have re-usable grid rendering components
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -159,7 +159,7 @@ class AdminUsersView(BaseAppView, DataGridAppView):
|
|||
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, DataGridAppView):
|
|||
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, DataGridAppView):
|
|||
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, DataGridAppView):
|
|||
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, DataGridAppView):
|
|||
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, DataGridAppView):
|
|||
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, DataGridAppView):
|
|||
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, DataGridAppView):
|
|||
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, DataGridAppView):
|
|||
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, DataGridAppView):
|
|||
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, DataGridAppView):
|
|||
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, DataGridAppView):
|
|||
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'
|
||||
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@ class MyAccountView(BaseAppView, DataGridAppView):
|
|||
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, DataGridAppView):
|
|||
|
||||
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={
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -987,7 +987,7 @@ class PullrequestsController(BaseRepoController):
|
|||
@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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue