comparison rhodecode/controllers/admin/admin.py @ 2845:6b176c679896 beta

failsafe the GET `page` argument
author Marcin Kuzminski <marcin@python-works.com>
date Mon, 17 Sep 2012 22:17:25 +0200
parents 91c442a489bb
children d998cc84cf72 a08624dd675e
comparison
equal deleted inserted replaced
2844:7b0f803229be 2845:6b176c679896
30 from webhelpers.paginate import Page 30 from webhelpers.paginate import Page
31 31
32 from rhodecode.lib.auth import LoginRequired, HasPermissionAllDecorator 32 from rhodecode.lib.auth import LoginRequired, HasPermissionAllDecorator
33 from rhodecode.lib.base import BaseController, render 33 from rhodecode.lib.base import BaseController, render
34 from rhodecode.model.db import UserLog 34 from rhodecode.model.db import UserLog
35 from rhodecode.lib.utils2 import safe_int
35 36
36 log = logging.getLogger(__name__) 37 log = logging.getLogger(__name__)
37 38
38 39
39 class AdminController(BaseController): 40 class AdminController(BaseController):
48 users_log = UserLog.query()\ 49 users_log = UserLog.query()\
49 .options(joinedload(UserLog.user))\ 50 .options(joinedload(UserLog.user))\
50 .options(joinedload(UserLog.repository))\ 51 .options(joinedload(UserLog.repository))\
51 .order_by(UserLog.action_date.desc()) 52 .order_by(UserLog.action_date.desc())
52 53
53 p = int(request.params.get('page', 1)) 54 p = safe_int(request.params.get('page', 1), 1)
54 c.users_log = Page(users_log, page=p, items_per_page=10) 55 c.users_log = Page(users_log, page=p, items_per_page=10)
55 c.log_data = render('admin/admin_log.html') 56 c.log_data = render('admin/admin_log.html')
56 57
57 if request.environ.get('HTTP_X_PARTIAL_XHR'): 58 if request.environ.get('HTTP_X_PARTIAL_XHR'):
58 return c.log_data 59 return c.log_data