# HG changeset patch # User Mads Kiilerich # Date 2015-03-27 15:25:27 # Node ID 959a9fa7d1a1c1ca422f2ccc7a721569245ad241 # Parent 8927a1ac8d41263554d4515bd393b48218296a4f controllers: remove old auth_token checks - it was only partial CSRF protection diff --git a/kallithea/controllers/admin/repos.py b/kallithea/controllers/admin/repos.py --- a/kallithea/controllers/admin/repos.py +++ b/kallithea/controllers/admin/repos.py @@ -41,7 +41,6 @@ from kallithea.lib.auth import LoginRequ HasRepoGroupPermissionAny, HasRepoPermissionAnyDecorator from kallithea.lib.base import BaseRepoController, render from kallithea.lib.utils import action_logger, repo_name_slug, jsonify -from kallithea.lib.helpers import get_token from kallithea.lib.vcs import RepositoryError from kallithea.model.meta import Session from kallithea.model.db import User, Repository, UserFollowing, RepoGroup,\ @@ -516,23 +515,17 @@ class ReposController(BaseRepoController :param repo_name: """ - cur_token = request.POST.get('auth_token') - token = get_token() - if cur_token == token: - try: - repo_id = Repository.get_by_repo_name(repo_name).repo_id - user_id = User.get_default_user().user_id - self.scm_model.toggle_following_repo(repo_id, user_id) - h.flash(_('Updated repository visibility in public journal'), - category='success') - Session().commit() - except Exception: - h.flash(_('An error occurred during setting this' - ' repository in public journal'), - category='error') - - else: - h.flash(_('Token mismatch'), category='error') + try: + repo_id = Repository.get_by_repo_name(repo_name).repo_id + user_id = User.get_default_user().user_id + self.scm_model.toggle_following_repo(repo_id, user_id) + h.flash(_('Updated repository visibility in public journal'), + category='success') + Session().commit() + except Exception: + h.flash(_('An error occurred during setting this' + ' repository in public journal'), + category='error') return redirect(url('edit_repo_advanced', repo_name=repo_name)) diff --git a/kallithea/controllers/journal.py b/kallithea/controllers/journal.py --- a/kallithea/controllers/journal.py +++ b/kallithea/controllers/journal.py @@ -304,33 +304,28 @@ class JournalController(BaseController): @LoginRequired() @NotAnonymous() def toggle_following(self): - cur_token = request.POST.get('auth_token') - token = h.get_token() - if cur_token == token: + user_id = request.POST.get('follows_user_id') + if user_id: + try: + self.scm_model.toggle_following_user(user_id, + self.authuser.user_id) + Session.commit() + return 'ok' + except Exception: + log.error(traceback.format_exc()) + raise HTTPBadRequest() - user_id = request.POST.get('follows_user_id') - if user_id: - try: - self.scm_model.toggle_following_user(user_id, - self.authuser.user_id) - Session.commit() - return 'ok' - except Exception: - log.error(traceback.format_exc()) - raise HTTPBadRequest() + repo_id = request.POST.get('follows_repo_id') + if repo_id: + try: + self.scm_model.toggle_following_repo(repo_id, + self.authuser.user_id) + Session.commit() + return 'ok' + except Exception: + log.error(traceback.format_exc()) + raise HTTPBadRequest() - repo_id = request.POST.get('follows_repo_id') - if repo_id: - try: - self.scm_model.toggle_following_repo(repo_id, - self.authuser.user_id) - Session.commit() - return 'ok' - except Exception: - log.error(traceback.format_exc()) - raise HTTPBadRequest() - - log.debug('token mismatch %s vs %s' % (cur_token, token)) raise HTTPBadRequest() @LoginRequired() diff --git a/kallithea/lib/helpers.py b/kallithea/lib/helpers.py --- a/kallithea/lib/helpers.py +++ b/kallithea/lib/helpers.py @@ -134,23 +134,6 @@ def FID(raw_id, path): return 'C-%s-%s' % (short_id(raw_id), md5(safe_str(path)).hexdigest()[:12]) -def get_token(): - """Return the current authentication token, creating one if one doesn't - already exist. - """ - token_key = "_authentication_token" - from pylons import session - if not token_key in session: - try: - token = hashlib.sha1(str(random.getrandbits(128))).hexdigest() - except AttributeError: # Python < 2.4 - token = hashlib.sha1(str(random.randrange(2 ** 128))).hexdigest() - session[token_key] = token - if hasattr(session, 'save'): - session.save() - return session[token_key] - - class _GetError(object): """Get error from form_errors, and represent it as span wrapped error message diff --git a/kallithea/public/js/base.js b/kallithea/public/js/base.js --- a/kallithea/public/js/base.js +++ b/kallithea/public/js/base.js @@ -458,20 +458,16 @@ var _onSuccessFollow = function(target){ } } -var toggleFollowingRepo = function(target, follows_repo_id, token, user_id){ +var toggleFollowingRepo = function(target, follows_repo_id){ var args = 'follows_repo_id=' + follows_repo_id; - args += '&auth_token=' + token; - if(user_id != undefined){ - args +="&user_id=" + user_id; - } $.post(TOGGLE_FOLLOW_URL, args, function(data){ _onSuccessFollow(target); }); return false; }; -var showRepoSize = function(target, repo_name, token){ - var args = 'auth_token=' + token; +var showRepoSize = function(target, repo_name){ + var args = ''; if(!$("#" + target).hasClass('loaded')){ $("#" + target).html(_TM['Loading ...']); diff --git a/kallithea/templates/admin/repos/repo_edit_advanced.html b/kallithea/templates/admin/repos/repo_edit_advanced.html --- a/kallithea/templates/admin/repos/repo_edit_advanced.html +++ b/kallithea/templates/admin/repos/repo_edit_advanced.html @@ -22,7 +22,6 @@

${_('Public Journal Visibility')}

${h.form(url('edit_repo_advanced_journal', repo_name=c.repo_info.repo_name), method='put')}
- ${h.hidden('auth_token',str(h.get_token()))}
%if c.in_public_journal: