Changeset - 4f0de9468da3
[Not reviewed]
default
1 32 1
Mads Kiilerich (mads) - 5 years ago 2020-11-13 01:06:16
mads@kiilerich.com
Grafted from: e05edc445853
controllers: move controllers base class from lib/base to controllers

TG quickstart put it in lib/base.py , but it fits better on the controllers
layer as a base there.

The contributing docs were a bit ahead of time ... but with a typo.
33 files changed with 211 insertions and 211 deletions:
0 comments (0 inline, 0 general)
docs/contributing.rst
Show inline comments
 
@@ -112,7 +112,7 @@ following list, modules may only depend 
 
  everything and has a huge dependency chain, so it should not be used for
 
  anything else. TODO.
 

	
 
``controlles/base.py``
 
``controllers/base.py``
 
  The base class of controllers, with lots of model knowledge.
 

	
 
``lib/auth.py``
kallithea/config/middleware/simplegit.py
Show inline comments
 
@@ -32,8 +32,8 @@ import logging
 
import re
 

	
 
from kallithea.config.middleware.pygrack import make_wsgi_app
 
from kallithea.controllers import base
 
from kallithea.lib import hooks
 
from kallithea.lib.base import BaseVCSController, get_path_info
 

	
 

	
 
log = logging.getLogger(__name__)
 
@@ -48,13 +48,13 @@ cmd_mapping = {
 
}
 

	
 

	
 
class SimpleGit(BaseVCSController):
 
class SimpleGit(base.BaseVCSController):
 

	
 
    scm_alias = 'git'
 

	
 
    @classmethod
 
    def parse_request(cls, environ):
 
        path_info = get_path_info(environ)
 
        path_info = base.get_path_info(environ)
 
        m = GIT_PROTO_PAT.match(path_info)
 
        if m is None:
 
            return None
kallithea/config/middleware/simplehg.py
Show inline comments
 
@@ -34,7 +34,7 @@ import urllib.parse
 

	
 
import mercurial.hgweb
 

	
 
from kallithea.lib.base import BaseVCSController, get_path_info
 
from kallithea.controllers import base
 
from kallithea.lib.utils import make_ui
 
from kallithea.lib.utils2 import safe_bytes
 

	
 
@@ -91,7 +91,7 @@ cmd_mapping = {
 
    }
 

	
 

	
 
class SimpleHg(BaseVCSController):
 
class SimpleHg(base.BaseVCSController):
 

	
 
    scm_alias = 'hg'
 

	
 
@@ -100,7 +100,7 @@ class SimpleHg(BaseVCSController):
 
        http_accept = environ.get('HTTP_ACCEPT', '')
 
        if not http_accept.startswith('application/mercurial'):
 
            return None
 
        path_info = get_path_info(environ)
 
        path_info = base.get_path_info(environ)
 
        if not path_info.startswith('/'): # it must!
 
            return None
 

	
kallithea/config/middleware/wrapper.py
Show inline comments
 
@@ -29,7 +29,7 @@ Original author and date, and relevant c
 
import logging
 
import time
 

	
 
from kallithea.lib.base import get_ip_addr, get_path_info
 
from kallithea.controllers import base
 

	
 

	
 
log = logging.getLogger(__name__)
 
@@ -91,8 +91,8 @@ class RequestWrapper(object):
 
    def __call__(self, environ, start_response):
 
        meter = Meter(start_response)
 
        description = "Request from %s for %s" % (
 
            get_ip_addr(environ),
 
            get_path_info(environ),
 
            base.get_ip_addr(environ),
 
            base.get_path_info(environ),
 
        )
 
        log.info("%s received", description)
 
        try:
kallithea/controllers/admin/admin.py
Show inline comments
 
@@ -36,8 +36,8 @@ from whoosh import query
 
from whoosh.qparser.dateparse import DateParserPlugin
 
from whoosh.qparser.default import QueryParser
 

	
 
from kallithea.controllers import base
 
from kallithea.lib.auth import HasPermissionAnyDecorator, LoginRequired
 
from kallithea.lib.base import BaseController, render
 
from kallithea.lib.indexers import JOURNAL_SCHEMA
 
from kallithea.lib.page import Page
 
from kallithea.lib.utils2 import remove_prefix, remove_suffix, safe_int
 
@@ -118,7 +118,7 @@ def _journal_filter(user_log, search_ter
 
    return user_log
 

	
 

	
 
class AdminController(BaseController):
 
class AdminController(base.BaseController):
 

	
 
    @LoginRequired(allow_default_user=True)
 
    def _before(self, *args, **kwargs):
 
@@ -142,6 +142,6 @@ class AdminController(BaseController):
 
                           filter=c.search_term)
 

	
 
        if request.environ.get('HTTP_X_PARTIAL_XHR'):
 
            return render('admin/admin_log.html')
 
            return base.render('admin/admin_log.html')
 

	
 
        return render('admin/admin.html')
 
        return base.render('admin/admin.html')
kallithea/controllers/admin/auth_settings.py
Show inline comments
 
@@ -32,9 +32,9 @@ from tg import tmpl_context as c
 
from tg.i18n import ugettext as _
 
from webob.exc import HTTPFound
 

	
 
from kallithea.controllers import base
 
from kallithea.lib import auth_modules, webutils
 
from kallithea.lib.auth import HasPermissionAnyDecorator, LoginRequired
 
from kallithea.lib.base import BaseController, render
 
from kallithea.lib.webutils import url
 
from kallithea.model import db, meta
 
from kallithea.model.forms import AuthSettingsForm
 
@@ -43,7 +43,7 @@ from kallithea.model.forms import AuthSe
 
log = logging.getLogger(__name__)
 

	
 

	
 
class AuthSettingsController(BaseController):
 
class AuthSettingsController(base.BaseController):
 

	
 
    @LoginRequired()
 
    @HasPermissionAnyDecorator('hg.admin')
 
@@ -86,7 +86,7 @@ class AuthSettingsController(BaseControl
 

	
 
        log.debug('defaults: %s', defaults)
 
        return formencode.htmlfill.render(
 
            render('admin/auth/auth_settings.html'),
 
            base.render('admin/auth/auth_settings.html'),
 
            defaults=c.defaults,
 
            errors=errors,
 
            prefix_error=False,
kallithea/controllers/admin/defaults.py
Show inline comments
 
@@ -34,9 +34,9 @@ from tg import request
 
from tg.i18n import ugettext as _
 
from webob.exc import HTTPFound
 

	
 
from kallithea.controllers import base
 
from kallithea.lib import webutils
 
from kallithea.lib.auth import HasPermissionAnyDecorator, LoginRequired
 
from kallithea.lib.base import BaseController, render
 
from kallithea.lib.webutils import url
 
from kallithea.model import db, meta
 
from kallithea.model.forms import DefaultsForm
 
@@ -45,7 +45,7 @@ from kallithea.model.forms import Defaul
 
log = logging.getLogger(__name__)
 

	
 

	
 
class DefaultsController(BaseController):
 
class DefaultsController(base.BaseController):
 

	
 
    @LoginRequired()
 
    @HasPermissionAnyDecorator('hg.admin')
 
@@ -56,7 +56,7 @@ class DefaultsController(BaseController)
 
        defaults = db.Setting.get_default_repo_settings()
 

	
 
        return htmlfill.render(
 
            render('admin/defaults/defaults.html'),
 
            base.render('admin/defaults/defaults.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False
 
@@ -77,7 +77,7 @@ class DefaultsController(BaseController)
 
            defaults = errors.value
 

	
 
            return htmlfill.render(
 
                render('admin/defaults/defaults.html'),
 
                base.render('admin/defaults/defaults.html'),
 
                defaults=defaults,
 
                errors=errors.error_dict or {},
 
                prefix_error=False,
kallithea/controllers/admin/gists.py
Show inline comments
 
@@ -35,9 +35,9 @@ from tg import tmpl_context as c
 
from tg.i18n import ugettext as _
 
from webob.exc import HTTPForbidden, HTTPFound, HTTPNotFound
 

	
 
from kallithea.controllers import base
 
from kallithea.lib import auth, webutils
 
from kallithea.lib.auth import LoginRequired
 
from kallithea.lib.base import BaseController, jsonify, render
 
from kallithea.lib.page import Page
 
from kallithea.lib.utils2 import safe_int, safe_str, time_to_datetime
 
from kallithea.lib.vcs.exceptions import NodeNotChangedError, VCSError
 
@@ -50,7 +50,7 @@ from kallithea.model.gist import GistMod
 
log = logging.getLogger(__name__)
 

	
 

	
 
class GistsController(BaseController):
 
class GistsController(base.BaseController):
 

	
 
    def __load_defaults(self, extra_values=None):
 
        c.lifetime_values = [
 
@@ -102,7 +102,7 @@ class GistsController(BaseController):
 
        p = safe_int(request.GET.get('page'), 1)
 
        c.gists_pager = Page(c.gists, page=p, items_per_page=10,
 
                             **url_params)
 
        return render('admin/gists/index.html')
 
        return base.render('admin/gists/index.html')
 

	
 
    @LoginRequired()
 
    def create(self):
 
@@ -134,7 +134,7 @@ class GistsController(BaseController):
 
            defaults = errors.value
 

	
 
            return formencode.htmlfill.render(
 
                render('admin/gists/new.html'),
 
                base.render('admin/gists/new.html'),
 
                defaults=defaults,
 
                errors=errors.error_dict or {},
 
                prefix_error=False,
 
@@ -150,7 +150,7 @@ class GistsController(BaseController):
 
    @LoginRequired()
 
    def new(self, format='html'):
 
        self.__load_defaults()
 
        return render('admin/gists/new.html')
 
        return base.render('admin/gists/new.html')
 

	
 
    @LoginRequired()
 
    def delete(self, gist_id):
 
@@ -186,7 +186,7 @@ class GistsController(BaseController):
 
            )
 
            response.content_type = 'text/plain'
 
            return content
 
        return render('admin/gists/show.html')
 
        return base.render('admin/gists/show.html')
 

	
 
    @LoginRequired()
 
    def edit(self, gist_id, format='html'):
 
@@ -203,7 +203,7 @@ class GistsController(BaseController):
 
            raise HTTPNotFound()
 

	
 
        self.__load_defaults(extra_values=('0', _('Unmodified')))
 
        rendered = render('admin/gists/edit.html')
 
        rendered = base.render('admin/gists/edit.html')
 

	
 
        if request.POST:
 
            rpost = request.POST
 
@@ -248,7 +248,7 @@ class GistsController(BaseController):
 
        return rendered
 

	
 
    @LoginRequired()
 
    @jsonify
 
    @base.jsonify
 
    def check_revision(self, gist_id):
 
        c.gist = db.Gist.get_or_404(gist_id)
 
        last_rev = c.gist.scm_instance.get_changeset()
kallithea/controllers/admin/my_account.py
Show inline comments
 
@@ -35,9 +35,9 @@ from tg import tmpl_context as c
 
from tg.i18n import ugettext as _
 
from webob.exc import HTTPFound
 

	
 
from kallithea.controllers import base
 
from kallithea.lib import auth_modules, webutils
 
from kallithea.lib.auth import AuthUser, LoginRequired
 
from kallithea.lib.base import BaseController, IfSshEnabled, render
 
from kallithea.lib.utils2 import generate_api_key, safe_int
 
from kallithea.lib.webutils import url
 
from kallithea.model import db, meta
 
@@ -51,7 +51,7 @@ from kallithea.model.user import UserMod
 
log = logging.getLogger(__name__)
 

	
 

	
 
class MyAccountController(BaseController):
 
class MyAccountController(base.BaseController):
 

	
 
    @LoginRequired()
 
    def _before(self, *args, **kwargs):
 
@@ -116,7 +116,7 @@ class MyAccountController(BaseController
 

	
 
            except formencode.Invalid as errors:
 
                return htmlfill.render(
 
                    render('admin/my_account/my_account.html'),
 
                    base.render('admin/my_account/my_account.html'),
 
                    defaults=errors.value,
 
                    errors=errors.error_dict or {},
 
                    prefix_error=False,
 
@@ -129,7 +129,7 @@ class MyAccountController(BaseController
 
        if update:
 
            raise HTTPFound(location='my_account')
 
        return htmlfill.render(
 
            render('admin/my_account/my_account.html'),
 
            base.render('admin/my_account/my_account.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
 
@@ -150,7 +150,7 @@ class MyAccountController(BaseController
 
                webutils.flash(_("Successfully updated password"), category='success')
 
            except formencode.Invalid as errors:
 
                return htmlfill.render(
 
                    render('admin/my_account/my_account.html'),
 
                    base.render('admin/my_account/my_account.html'),
 
                    defaults=errors.value,
 
                    errors=errors.error_dict or {},
 
                    prefix_error=False,
 
@@ -160,7 +160,7 @@ class MyAccountController(BaseController
 
                log.error(traceback.format_exc())
 
                webutils.flash(_('Error occurred during update of user password'),
 
                        category='error')
 
        return render('admin/my_account/my_account.html')
 
        return base.render('admin/my_account/my_account.html')
 

	
 
    def my_account_repos(self):
 
        c.active = 'repos'
 
@@ -168,7 +168,7 @@ class MyAccountController(BaseController
 

	
 
        # data used to render the grid
 
        c.data = self._load_my_repos_data()
 
        return render('admin/my_account/my_account.html')
 
        return base.render('admin/my_account/my_account.html')
 

	
 
    def my_account_watched(self):
 
        c.active = 'watched'
 
@@ -176,14 +176,14 @@ class MyAccountController(BaseController
 

	
 
        # data used to render the grid
 
        c.data = self._load_my_repos_data(watched=True)
 
        return render('admin/my_account/my_account.html')
 
        return base.render('admin/my_account/my_account.html')
 

	
 
    def my_account_perms(self):
 
        c.active = 'perms'
 
        self.__load_data()
 
        c.perm_user = AuthUser(user_id=request.authuser.user_id)
 

	
 
        return render('admin/my_account/my_account.html')
 
        return base.render('admin/my_account/my_account.html')
 

	
 
    def my_account_emails(self):
 
        c.active = 'emails'
 
@@ -191,7 +191,7 @@ class MyAccountController(BaseController
 

	
 
        c.user_email_map = db.UserEmailMap.query() \
 
            .filter(db.UserEmailMap.user == c.user).all()
 
        return render('admin/my_account/my_account.html')
 
        return base.render('admin/my_account/my_account.html')
 

	
 
    def my_account_emails_add(self):
 
        email = request.POST.get('new_email')
 
@@ -231,7 +231,7 @@ class MyAccountController(BaseController
 
        c.lifetime_options = [(c.lifetime_values, _("Lifetime"))]
 
        c.user_api_keys = ApiKeyModel().get_api_keys(request.authuser.user_id,
 
                                                     show_expired=show_expired)
 
        return render('admin/my_account/my_account.html')
 
        return base.render('admin/my_account/my_account.html')
 

	
 
    def my_account_api_keys_add(self):
 
        lifetime = safe_int(request.POST.get('lifetime'), -1)
 
@@ -255,14 +255,14 @@ class MyAccountController(BaseController
 

	
 
        raise HTTPFound(location=url('my_account_api_keys'))
 

	
 
    @IfSshEnabled
 
    @base.IfSshEnabled
 
    def my_account_ssh_keys(self):
 
        c.active = 'ssh_keys'
 
        self.__load_data()
 
        c.user_ssh_keys = SshKeyModel().get_ssh_keys(request.authuser.user_id)
 
        return render('admin/my_account/my_account.html')
 
        return base.render('admin/my_account/my_account.html')
 

	
 
    @IfSshEnabled
 
    @base.IfSshEnabled
 
    def my_account_ssh_keys_add(self):
 
        description = request.POST.get('description')
 
        public_key = request.POST.get('public_key')
 
@@ -276,7 +276,7 @@ class MyAccountController(BaseController
 
            webutils.flash(e.args[0], category='error')
 
        raise HTTPFound(location=url('my_account_ssh_keys'))
 

	
 
    @IfSshEnabled
 
    @base.IfSshEnabled
 
    def my_account_ssh_keys_delete(self):
 
        fingerprint = request.POST.get('del_public_key_fingerprint')
 
        try:
kallithea/controllers/admin/permissions.py
Show inline comments
 
@@ -36,9 +36,9 @@ from tg import tmpl_context as c
 
from tg.i18n import ugettext as _
 
from webob.exc import HTTPFound
 

	
 
from kallithea.controllers import base
 
from kallithea.lib import webutils
 
from kallithea.lib.auth import AuthUser, HasPermissionAnyDecorator, LoginRequired
 
from kallithea.lib.base import BaseController, render
 
from kallithea.lib.webutils import url
 
from kallithea.model import db, meta
 
from kallithea.model.forms import DefaultPermissionsForm
 
@@ -48,7 +48,7 @@ from kallithea.model.permission import P
 
log = logging.getLogger(__name__)
 

	
 

	
 
class PermissionsController(BaseController):
 
class PermissionsController(base.BaseController):
 

	
 
    @LoginRequired()
 
    @HasPermissionAnyDecorator('hg.admin')
 
@@ -120,7 +120,7 @@ class PermissionsController(BaseControll
 
                defaults = errors.value
 

	
 
                return htmlfill.render(
 
                    render('admin/permissions/permissions.html'),
 
                    base.render('admin/permissions/permissions.html'),
 
                    defaults=defaults,
 
                    errors=errors.error_dict or {},
 
                    prefix_error=False,
 
@@ -162,7 +162,7 @@ class PermissionsController(BaseControll
 
                defaults['default_fork'] = p.permission.permission_name
 

	
 
        return htmlfill.render(
 
            render('admin/permissions/permissions.html'),
 
            base.render('admin/permissions/permissions.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
 
@@ -173,10 +173,10 @@ class PermissionsController(BaseControll
 
        c.user_ip_map = db.UserIpMap.query() \
 
                        .filter(db.UserIpMap.user == c.user).all()
 

	
 
        return render('admin/permissions/permissions.html')
 
        return base.render('admin/permissions/permissions.html')
 

	
 
    def permission_perms(self):
 
        c.active = 'perms'
 
        c.user = db.User.get_default_user()
 
        c.perm_user = AuthUser(dbuser=c.user)
 
        return render('admin/permissions/permissions.html')
 
        return base.render('admin/permissions/permissions.html')
kallithea/controllers/admin/repo_groups.py
Show inline comments
 
@@ -37,9 +37,9 @@ from tg.i18n import ungettext
 
from webob.exc import HTTPForbidden, HTTPFound, HTTPInternalServerError, HTTPNotFound
 

	
 
import kallithea.lib.helpers as h
 
from kallithea.controllers import base
 
from kallithea.lib import webutils
 
from kallithea.lib.auth import HasPermissionAny, HasRepoGroupPermissionLevel, HasRepoGroupPermissionLevelDecorator, LoginRequired
 
from kallithea.lib.base import BaseController, render
 
from kallithea.lib.utils2 import safe_int
 
from kallithea.lib.webutils import url
 
from kallithea.model import db, meta
 
@@ -52,7 +52,7 @@ from kallithea.model.scm import Availabl
 
log = logging.getLogger(__name__)
 

	
 

	
 
class RepoGroupsController(BaseController):
 
class RepoGroupsController(base.BaseController):
 

	
 
    @LoginRequired(allow_default_user=True)
 
    def _before(self, *args, **kwargs):
 
@@ -132,7 +132,7 @@ class RepoGroupsController(BaseControlle
 
            "records": repo_groups_data
 
        }
 

	
 
        return render('admin/repo_groups/repo_groups.html')
 
        return base.render('admin/repo_groups/repo_groups.html')
 

	
 
    def create(self):
 
        self.__load_defaults()
 
@@ -154,7 +154,7 @@ class RepoGroupsController(BaseControlle
 
            # TODO: in future action_logger(, '', '', '')
 
        except formencode.Invalid as errors:
 
            return htmlfill.render(
 
                render('admin/repo_groups/repo_group_add.html'),
 
                base.render('admin/repo_groups/repo_group_add.html'),
 
                defaults=errors.value,
 
                errors=errors.error_dict or {},
 
                prefix_error=False,
 
@@ -190,7 +190,7 @@ class RepoGroupsController(BaseControlle
 

	
 
        self.__load_defaults()
 
        return htmlfill.render(
 
            render('admin/repo_groups/repo_group_add.html'),
 
            base.render('admin/repo_groups/repo_group_add.html'),
 
            defaults={'parent_group_id': parent_group_id},
 
            errors={},
 
            prefix_error=False,
 
@@ -230,7 +230,7 @@ class RepoGroupsController(BaseControlle
 
        except formencode.Invalid as errors:
 
            c.active = 'settings'
 
            return htmlfill.render(
 
                render('admin/repo_groups/repo_group_edit.html'),
 
                base.render('admin/repo_groups/repo_group_edit.html'),
 
                defaults=errors.value,
 
                errors=errors.error_dict or {},
 
                prefix_error=False,
 
@@ -298,7 +298,7 @@ class RepoGroupsController(BaseControlle
 
                                               repo_groups_list=repo_groups_list,
 
                                               short_name=True)
 

	
 
        return render('admin/repo_groups/repo_group_show.html')
 
        return base.render('admin/repo_groups/repo_group_show.html')
 

	
 
    @HasRepoGroupPermissionLevelDecorator('admin')
 
    def edit(self, group_name):
 
@@ -310,7 +310,7 @@ class RepoGroupsController(BaseControlle
 
        defaults = self.__load_data(c.repo_group.group_id)
 

	
 
        return htmlfill.render(
 
            render('admin/repo_groups/repo_group_edit.html'),
 
            base.render('admin/repo_groups/repo_group_edit.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False
 
@@ -321,7 +321,7 @@ class RepoGroupsController(BaseControlle
 
        c.active = 'advanced'
 
        c.repo_group = db.RepoGroup.guess_instance(group_name)
 

	
 
        return render('admin/repo_groups/repo_group_edit.html')
 
        return base.render('admin/repo_groups/repo_group_edit.html')
 

	
 
    @HasRepoGroupPermissionLevelDecorator('admin')
 
    def edit_repo_group_perms(self, group_name):
 
@@ -331,7 +331,7 @@ class RepoGroupsController(BaseControlle
 
        defaults = self.__load_data(c.repo_group.group_id)
 

	
 
        return htmlfill.render(
 
            render('admin/repo_groups/repo_group_edit.html'),
 
            base.render('admin/repo_groups/repo_group_edit.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False
kallithea/controllers/admin/repos.py
Show inline comments
 
@@ -36,9 +36,9 @@ from tg.i18n import ugettext as _
 
from webob.exc import HTTPForbidden, HTTPFound, HTTPInternalServerError, HTTPNotFound
 

	
 
import kallithea
 
from kallithea.controllers import base
 
from kallithea.lib import webutils
 
from kallithea.lib.auth import HasRepoPermissionLevelDecorator, LoginRequired, NotAnonymous
 
from kallithea.lib.base import BaseRepoController, jsonify, render
 
from kallithea.lib.exceptions import AttachedForksError
 
from kallithea.lib.utils2 import safe_int
 
from kallithea.lib.vcs import RepositoryError
 
@@ -52,7 +52,7 @@ from kallithea.model.scm import Availabl
 
log = logging.getLogger(__name__)
 

	
 

	
 
class ReposController(BaseRepoController):
 
class ReposController(base.BaseRepoController):
 

	
 
    @LoginRequired(allow_default_user=True)
 
    def _before(self, *args, **kwargs):
 
@@ -93,7 +93,7 @@ class ReposController(BaseRepoController
 
        # data used to render the grid
 
        c.data = repos_data
 

	
 
        return render('admin/repos/repos.html')
 
        return base.render('admin/repos/repos.html')
 

	
 
    @NotAnonymous()
 
    def create(self):
 
@@ -106,7 +106,7 @@ class ReposController(BaseRepoController
 
        except formencode.Invalid as errors:
 
            log.info(errors)
 
            return htmlfill.render(
 
                render('admin/repos/repo_add.html'),
 
                base.render('admin/repos/repo_add.html'),
 
                defaults=errors.value,
 
                errors=errors.error_dict or {},
 
                prefix_error=False,
 
@@ -148,7 +148,7 @@ class ReposController(BaseRepoController
 
        defaults.update({'repo_group': parent_group})
 

	
 
        return htmlfill.render(
 
            render('admin/repos/repo_add.html'),
 
            base.render('admin/repos/repo_add.html'),
 
            defaults=defaults,
 
            errors={},
 
            prefix_error=False,
 
@@ -161,10 +161,10 @@ class ReposController(BaseRepoController
 
        c.task_id = request.GET.get('task_id')
 
        if not c.repo:
 
            raise HTTPNotFound()
 
        return render('admin/repos/repo_creating.html')
 
        return base.render('admin/repos/repo_creating.html')
 

	
 
    @LoginRequired()
 
    @jsonify
 
    @base.jsonify
 
    def repo_check(self, repo_name):
 
        c.repo = repo_name
 
        task_id = request.GET.get('task_id')
 
@@ -230,7 +230,7 @@ class ReposController(BaseRepoController
 
            defaults = self.__load_data()
 
            defaults.update(errors.value)
 
            return htmlfill.render(
 
                render('admin/repos/repo_edit.html'),
 
                base.render('admin/repos/repo_edit.html'),
 
                defaults=defaults,
 
                errors=errors.error_dict or {},
 
                prefix_error=False,
 
@@ -286,7 +286,7 @@ class ReposController(BaseRepoController
 
            .filter(db.RepositoryField.repository == c.repo_info).all()
 
        c.active = 'settings'
 
        return htmlfill.render(
 
            render('admin/repos/repo_edit.html'),
 
            base.render('admin/repos/repo_edit.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
 
@@ -298,7 +298,7 @@ class ReposController(BaseRepoController
 
        defaults = RepoModel()._get_defaults(repo_name)
 

	
 
        return htmlfill.render(
 
            render('admin/repos/repo_edit.html'),
 
            base.render('admin/repos/repo_edit.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
 
@@ -355,7 +355,7 @@ class ReposController(BaseRepoController
 
        if request.POST:
 

	
 
            raise HTTPFound(location=url('repo_edit_fields'))
 
        return render('admin/repos/repo_edit.html')
 
        return base.render('admin/repos/repo_edit.html')
 

	
 
    @HasRepoPermissionLevelDecorator('admin')
 
    def create_repo_field(self, repo_name):
 
@@ -413,7 +413,7 @@ class ReposController(BaseRepoController
 
        if request.POST:
 
            raise HTTPFound(location=url('repo_edit_advanced'))
 
        return htmlfill.render(
 
            render('admin/repos/repo_edit.html'),
 
            base.render('admin/repos/repo_edit.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
 
@@ -478,7 +478,7 @@ class ReposController(BaseRepoController
 
                webutils.flash(_('An error occurred during pull from remote location'),
 
                        category='error')
 
            raise HTTPFound(location=url('edit_repo_remote', repo_name=c.repo_name))
 
        return render('admin/repos/repo_edit.html')
 
        return base.render('admin/repos/repo_edit.html')
 

	
 
    @HasRepoPermissionLevelDecorator('admin')
 
    def edit_statistics(self, repo_name):
 
@@ -510,4 +510,4 @@ class ReposController(BaseRepoController
 
                        category='error')
 
            raise HTTPFound(location=url('edit_repo_statistics', repo_name=c.repo_name))
 

	
 
        return render('admin/repos/repo_edit.html')
 
        return base.render('admin/repos/repo_edit.html')
kallithea/controllers/admin/settings.py
Show inline comments
 
@@ -36,9 +36,9 @@ from tg.i18n import ugettext as _
 
from webob.exc import HTTPFound
 

	
 
import kallithea
 
from kallithea.controllers import base
 
from kallithea.lib import webutils
 
from kallithea.lib.auth import HasPermissionAnyDecorator, LoginRequired
 
from kallithea.lib.base import BaseController, render
 
from kallithea.lib.utils import repo2db_mapper, set_app_settings
 
from kallithea.lib.utils2 import safe_str
 
from kallithea.lib.vcs import VCSError
 
@@ -52,7 +52,7 @@ from kallithea.model.scm import ScmModel
 
log = logging.getLogger(__name__)
 

	
 

	
 
class SettingsController(BaseController):
 
class SettingsController(base.BaseController):
 

	
 
    @LoginRequired(allow_default_user=True)
 
    def _before(self, *args, **kwargs):
 
@@ -85,7 +85,7 @@ class SettingsController(BaseController)
 
                form_result = application_form.to_python(dict(request.POST))
 
            except formencode.Invalid as errors:
 
                return htmlfill.render(
 
                     render('admin/settings/settings.html'),
 
                     base.render('admin/settings/settings.html'),
 
                     defaults=errors.value,
 
                     errors=errors.error_dict or {},
 
                     prefix_error=False,
 
@@ -124,7 +124,7 @@ class SettingsController(BaseController)
 
        defaults.update(self._get_hg_ui_settings())
 

	
 
        return htmlfill.render(
 
            render('admin/settings/settings.html'),
 
            base.render('admin/settings/settings.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
 
@@ -172,7 +172,7 @@ class SettingsController(BaseController)
 
        defaults.update(self._get_hg_ui_settings())
 

	
 
        return htmlfill.render(
 
            render('admin/settings/settings.html'),
 
            base.render('admin/settings/settings.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
 
@@ -186,7 +186,7 @@ class SettingsController(BaseController)
 
                form_result = application_form.to_python(dict(request.POST))
 
            except formencode.Invalid as errors:
 
                return htmlfill.render(
 
                    render('admin/settings/settings.html'),
 
                    base.render('admin/settings/settings.html'),
 
                    defaults=errors.value,
 
                    errors=errors.error_dict or {},
 
                    prefix_error=False,
 
@@ -219,7 +219,7 @@ class SettingsController(BaseController)
 
        defaults.update(self._get_hg_ui_settings())
 

	
 
        return htmlfill.render(
 
            render('admin/settings/settings.html'),
 
            base.render('admin/settings/settings.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
 
@@ -233,7 +233,7 @@ class SettingsController(BaseController)
 
                form_result = application_form.to_python(dict(request.POST))
 
            except formencode.Invalid as errors:
 
                return htmlfill.render(
 
                    render('admin/settings/settings.html'),
 
                    base.render('admin/settings/settings.html'),
 
                    defaults=errors.value,
 
                    errors=errors.error_dict or {},
 
                    prefix_error=False,
 
@@ -274,7 +274,7 @@ class SettingsController(BaseController)
 
        defaults.update(self._get_hg_ui_settings())
 

	
 
        return htmlfill.render(
 
            render('admin/settings/settings.html'),
 
            base.render('admin/settings/settings.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
 
@@ -312,7 +312,7 @@ class SettingsController(BaseController)
 
        c.ini = kallithea.CONFIG
 

	
 
        return htmlfill.render(
 
            render('admin/settings/settings.html'),
 
            base.render('admin/settings/settings.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
 
@@ -367,7 +367,7 @@ class SettingsController(BaseController)
 
        c.custom_hooks = db.Ui.get_custom_hooks()
 

	
 
        return htmlfill.render(
 
            render('admin/settings/settings.html'),
 
            base.render('admin/settings/settings.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
 
@@ -386,7 +386,7 @@ class SettingsController(BaseController)
 
        defaults.update(self._get_hg_ui_settings())
 

	
 
        return htmlfill.render(
 
            render('admin/settings/settings.html'),
 
            base.render('admin/settings/settings.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
 
@@ -404,7 +404,7 @@ class SettingsController(BaseController)
 
            setattr(c, key, val)
 

	
 
        return htmlfill.render(
 
            render('admin/settings/settings.html'),
 
            base.render('admin/settings/settings.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
kallithea/controllers/admin/user_groups.py
Show inline comments
 
@@ -38,9 +38,9 @@ from tg.i18n import ugettext as _
 
from webob.exc import HTTPFound, HTTPInternalServerError
 

	
 
import kallithea.lib.helpers as h
 
from kallithea.controllers import base
 
from kallithea.lib import webutils
 
from kallithea.lib.auth import HasPermissionAnyDecorator, HasUserGroupPermissionLevelDecorator, LoginRequired
 
from kallithea.lib.base import BaseController, render
 
from kallithea.lib.exceptions import RepoGroupAssignmentError, UserGroupsAssignedException
 
from kallithea.lib.utils2 import safe_int, safe_str
 
from kallithea.lib.webutils import url
 
@@ -53,7 +53,7 @@ from kallithea.model.user_group import U
 
log = logging.getLogger(__name__)
 

	
 

	
 
class UserGroupsController(BaseController):
 
class UserGroupsController(base.BaseController):
 

	
 
    @LoginRequired(allow_default_user=True)
 
    def _before(self, *args, **kwargs):
 
@@ -113,7 +113,7 @@ class UserGroupsController(BaseControlle
 
            "records": user_groups_data
 
        }
 

	
 
        return render('admin/user_groups/user_groups.html')
 
        return base.render('admin/user_groups/user_groups.html')
 

	
 
    @HasPermissionAnyDecorator('hg.admin', 'hg.usergroup.create.true')
 
    def create(self):
 
@@ -134,7 +134,7 @@ class UserGroupsController(BaseControlle
 
            meta.Session().commit()
 
        except formencode.Invalid as errors:
 
            return htmlfill.render(
 
                render('admin/user_groups/user_group_add.html'),
 
                base.render('admin/user_groups/user_group_add.html'),
 
                defaults=errors.value,
 
                errors=errors.error_dict or {},
 
                prefix_error=False,
 
@@ -149,7 +149,7 @@ class UserGroupsController(BaseControlle
 

	
 
    @HasPermissionAnyDecorator('hg.admin', 'hg.usergroup.create.true')
 
    def new(self, format='html'):
 
        return render('admin/user_groups/user_group_add.html')
 
        return base.render('admin/user_groups/user_group_add.html')
 

	
 
    @HasUserGroupPermissionLevelDecorator('admin')
 
    def update(self, id):
 
@@ -184,7 +184,7 @@ class UserGroupsController(BaseControlle
 
            })
 

	
 
            return htmlfill.render(
 
                render('admin/user_groups/user_group_edit.html'),
 
                base.render('admin/user_groups/user_group_edit.html'),
 
                defaults=defaults,
 
                errors=e,
 
                prefix_error=False,
 
@@ -221,7 +221,7 @@ class UserGroupsController(BaseControlle
 
        defaults = self.__load_defaults(id)
 

	
 
        return htmlfill.render(
 
            render('admin/user_groups/user_group_edit.html'),
 
            base.render('admin/user_groups/user_group_edit.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False
 
@@ -243,7 +243,7 @@ class UserGroupsController(BaseControlle
 
                             p.permission.permission_name})
 

	
 
        return htmlfill.render(
 
            render('admin/user_groups/user_group_edit.html'),
 
            base.render('admin/user_groups/user_group_edit.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False
 
@@ -344,7 +344,7 @@ class UserGroupsController(BaseControlle
 
        })
 

	
 
        return htmlfill.render(
 
            render('admin/user_groups/user_group_edit.html'),
 
            base.render('admin/user_groups/user_group_edit.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False
 
@@ -394,7 +394,7 @@ class UserGroupsController(BaseControlle
 
        c.active = 'advanced'
 
        c.group_members_obj = sorted((x.user for x in c.user_group.members),
 
                                     key=lambda u: u.username.lower())
 
        return render('admin/user_groups/user_group_edit.html')
 
        return base.render('admin/user_groups/user_group_edit.html')
 

	
 
    @HasUserGroupPermissionLevelDecorator('admin')
 
    def edit_members(self, id):
 
@@ -404,4 +404,4 @@ class UserGroupsController(BaseControlle
 
                                     key=lambda u: u.username.lower())
 

	
 
        c.group_members = [(x.user_id, x.username) for x in c.group_members_obj]
 
        return render('admin/user_groups/user_group_edit.html')
 
        return base.render('admin/user_groups/user_group_edit.html')
kallithea/controllers/admin/users.py
Show inline comments
 
@@ -38,9 +38,9 @@ from webob.exc import HTTPFound, HTTPNot
 

	
 
import kallithea
 
import kallithea.lib.helpers as h
 
from kallithea.controllers import base
 
from kallithea.lib import auth_modules, webutils
 
from kallithea.lib.auth import AuthUser, HasPermissionAnyDecorator, LoginRequired
 
from kallithea.lib.base import BaseController, IfSshEnabled, render
 
from kallithea.lib.exceptions import DefaultUserException, UserCreationError, UserOwnsReposException
 
from kallithea.lib.utils2 import datetime_to_time, fmt_date, generate_api_key, safe_int
 
from kallithea.lib.webutils import url
 
@@ -54,7 +54,7 @@ from kallithea.model.user import UserMod
 
log = logging.getLogger(__name__)
 

	
 

	
 
class UsersController(BaseController):
 
class UsersController(base.BaseController):
 

	
 
    @LoginRequired()
 
    @HasPermissionAnyDecorator('hg.admin')
 
@@ -103,7 +103,7 @@ class UsersController(BaseController):
 
            "records": users_data
 
        }
 

	
 
        return render('admin/users/users.html')
 
        return base.render('admin/users/users.html')
 

	
 
    def create(self):
 
        c.default_extern_type = db.User.DEFAULT_AUTH_TYPE
 
@@ -120,7 +120,7 @@ class UsersController(BaseController):
 
            meta.Session().commit()
 
        except formencode.Invalid as errors:
 
            return htmlfill.render(
 
                render('admin/users/user_add.html'),
 
                base.render('admin/users/user_add.html'),
 
                defaults=errors.value,
 
                errors=errors.error_dict or {},
 
                prefix_error=False,
 
@@ -137,7 +137,7 @@ class UsersController(BaseController):
 
    def new(self, format='html'):
 
        c.default_extern_type = db.User.DEFAULT_AUTH_TYPE
 
        c.default_extern_name = ''
 
        return render('admin/users/user_add.html')
 
        return base.render('admin/users/user_add.html')
 

	
 
    def update(self, id):
 
        user_model = UserModel()
 
@@ -208,7 +208,7 @@ class UsersController(BaseController):
 
        c.perm_user = AuthUser(dbuser=user)
 
        managed_fields = auth_modules.get_managed_fields(user)
 
        c.readonly = lambda n: 'readonly' if n in managed_fields else None
 
        return render('admin/users/user_edit.html')
 
        return base.render('admin/users/user_edit.html')
 

	
 
    def edit(self, id, format='html'):
 
        user = self._get_user_or_raise_if_default(id)
 
@@ -234,7 +234,7 @@ class UsersController(BaseController):
 
            'fork_repo_perm': umodel.has_perm(c.user, 'hg.fork.repository'),
 
        })
 
        return htmlfill.render(
 
            render('admin/users/user_edit.html'),
 
            base.render('admin/users/user_edit.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
 
@@ -255,7 +255,7 @@ class UsersController(BaseController):
 
                                                     show_expired=show_expired)
 
        defaults = c.user.get_dict()
 
        return htmlfill.render(
 
            render('admin/users/user_edit.html'),
 
            base.render('admin/users/user_edit.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
 
@@ -302,7 +302,7 @@ class UsersController(BaseController):
 
            'fork_repo_perm': umodel.has_perm(c.user, 'hg.fork.repository'),
 
        })
 
        return htmlfill.render(
 
            render('admin/users/user_edit.html'),
 
            base.render('admin/users/user_edit.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
 
@@ -350,7 +350,7 @@ class UsersController(BaseController):
 

	
 
        defaults = c.user.get_dict()
 
        return htmlfill.render(
 
            render('admin/users/user_edit.html'),
 
            base.render('admin/users/user_edit.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
 
@@ -393,7 +393,7 @@ class UsersController(BaseController):
 

	
 
        defaults = c.user.get_dict()
 
        return htmlfill.render(
 
            render('admin/users/user_edit.html'),
 
            base.render('admin/users/user_edit.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
 
@@ -429,19 +429,19 @@ class UsersController(BaseController):
 
            raise HTTPFound(location=url('admin_permissions_ips'))
 
        raise HTTPFound(location=url('edit_user_ips', id=id))
 

	
 
    @IfSshEnabled
 
    @base.IfSshEnabled
 
    def edit_ssh_keys(self, id):
 
        c.user = self._get_user_or_raise_if_default(id)
 
        c.active = 'ssh_keys'
 
        c.user_ssh_keys = SshKeyModel().get_ssh_keys(c.user.user_id)
 
        defaults = c.user.get_dict()
 
        return htmlfill.render(
 
            render('admin/users/user_edit.html'),
 
            base.render('admin/users/user_edit.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
 

	
 
    @IfSshEnabled
 
    @base.IfSshEnabled
 
    def ssh_keys_add(self, id):
 
        c.user = self._get_user_or_raise_if_default(id)
 

	
 
@@ -457,7 +457,7 @@ class UsersController(BaseController):
 
            webutils.flash(e.args[0], category='error')
 
        raise HTTPFound(location=url('edit_user_ssh_keys', id=c.user.user_id))
 

	
 
    @IfSshEnabled
 
    @base.IfSshEnabled
 
    def ssh_keys_delete(self, id):
 
        c.user = self._get_user_or_raise_if_default(id)
 

	
kallithea/controllers/api/__init__.py
Show inline comments
 
@@ -35,9 +35,9 @@ import types
 
from tg import Response, TGController, request, response
 
from webob.exc import HTTPError, HTTPException
 

	
 
from kallithea.controllers import base
 
from kallithea.lib import ext_json
 
from kallithea.lib.auth import AuthUser
 
from kallithea.lib.base import get_ip_addr, get_path_info
 
from kallithea.lib.utils2 import ascii_bytes
 
from kallithea.model import db
 

	
 
@@ -99,7 +99,7 @@ class JSONRPCController(TGController):
 

	
 
        environ = state.request.environ
 
        start = time.time()
 
        ip_addr = get_ip_addr(environ)
 
        ip_addr = base.get_ip_addr(environ)
 
        self._req_id = None
 
        if 'CONTENT_LENGTH' not in environ:
 
            log.debug("No Content-Length")
 
@@ -204,8 +204,8 @@ class JSONRPCController(TGController):
 
        self._rpc_args['environ'] = environ
 

	
 
        log.info('IP: %s Request to %s time: %.3fs' % (
 
            get_ip_addr(environ),
 
            get_path_info(environ), time.time() - start)
 
            base.get_ip_addr(environ),
 
            base.get_path_info(environ), time.time() - start)
 
        )
 

	
 
        state.set_action(self._rpc_call, [])
kallithea/controllers/base.py
Show inline comments
 
file renamed from kallithea/lib/base.py to kallithea/controllers/base.py
 
@@ -13,8 +13,8 @@
 
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 

	
 
"""
 
kallithea.lib.base
 
~~~~~~~~~~~~~~~~~~
 
kallithea.controllers.base
 
~~~~~~~~~~~~~~~~~~~~~~~~~~
 

	
 
The base Controller API
 
Provides the BaseController class for subclassing. And usage in different
kallithea/controllers/changelog.py
Show inline comments
 
@@ -33,9 +33,9 @@ from tg import tmpl_context as c
 
from tg.i18n import ugettext as _
 
from webob.exc import HTTPBadRequest, HTTPFound, HTTPNotFound
 

	
 
from kallithea.controllers import base
 
from kallithea.lib import webutils
 
from kallithea.lib.auth import HasRepoPermissionLevelDecorator, LoginRequired
 
from kallithea.lib.base import BaseRepoController, render
 
from kallithea.lib.graphmod import graph_data
 
from kallithea.lib.page import Page
 
from kallithea.lib.utils2 import safe_int
 
@@ -46,7 +46,7 @@ from kallithea.lib.webutils import url
 
log = logging.getLogger(__name__)
 

	
 

	
 
class ChangelogController(BaseRepoController):
 
class ChangelogController(base.BaseRepoController):
 

	
 
    def _before(self, *args, **kwargs):
 
        super(ChangelogController, self)._before(*args, **kwargs)
 
@@ -146,12 +146,12 @@ class ChangelogController(BaseRepoContro
 

	
 
        c.revision = revision # requested revision ref
 
        c.first_revision = c.cs_pagination[0] # pagination is never empty here!
 
        return render('changelog/changelog.html')
 
        return base.render('changelog/changelog.html')
 

	
 
    @LoginRequired(allow_default_user=True)
 
    @HasRepoPermissionLevelDecorator('read')
 
    def changelog_details(self, cs):
 
        if request.environ.get('HTTP_X_PARTIAL_XHR'):
 
            c.cs = c.db_repo_scm_instance.get_changeset(cs)
 
            return render('changelog/changelog_details.html')
 
            return base.render('changelog/changelog_details.html')
 
        raise HTTPNotFound()
kallithea/controllers/changeset.py
Show inline comments
 
@@ -36,9 +36,9 @@ from tg.i18n import ugettext as _
 
from webob.exc import HTTPBadRequest, HTTPForbidden, HTTPNotFound
 

	
 
import kallithea.lib.helpers as h
 
from kallithea.controllers import base
 
from kallithea.lib import auth, diffs, webutils
 
from kallithea.lib.auth import HasRepoPermissionLevelDecorator, LoginRequired
 
from kallithea.lib.base import BaseRepoController, jsonify, render
 
from kallithea.lib.graphmod import graph_data
 
from kallithea.lib.utils2 import ascii_str, safe_str
 
from kallithea.lib.vcs.backends.base import EmptyChangeset
 
@@ -148,7 +148,7 @@ def create_cs_pr_comment(repo_name, revi
 
        c.comment = comment
 
        data.update(comment.get_dict())
 
        data.update({'rendered_text':
 
                     render('changeset/changeset_comment_block.html')})
 
                     base.render('changeset/changeset_comment_block.html')})
 

	
 
    return data
 

	
 
@@ -170,7 +170,7 @@ def delete_cs_pr_comment(repo_name, comm
 
    else:
 
        raise HTTPForbidden()
 

	
 
class ChangesetController(BaseRepoController):
 
class ChangesetController(base.BaseRepoController):
 

	
 
    def _before(self, *args, **kwargs):
 
        super(ChangesetController, self)._before(*args, **kwargs)
 
@@ -285,19 +285,19 @@ class ChangesetController(BaseRepoContro
 
        elif method == 'patch':
 
            response.content_type = 'text/plain'
 
            c.diff = safe_str(raw_diff)
 
            return render('changeset/patch_changeset.html')
 
            return base.render('changeset/patch_changeset.html')
 
        elif method == 'raw':
 
            response.content_type = 'text/plain'
 
            return raw_diff
 
        elif method == 'show':
 
            if len(c.cs_ranges) == 1:
 
                return render('changeset/changeset.html')
 
                return base.render('changeset/changeset.html')
 
            else:
 
                c.cs_ranges_org = None
 
                c.cs_comments = {}
 
                revs = [ctx.revision for ctx in reversed(c.cs_ranges)]
 
                c.jsdata = graph_data(c.db_repo_scm_instance, revs)
 
                return render('changeset/changeset_range.html')
 
                return base.render('changeset/changeset_range.html')
 

	
 
    @LoginRequired(allow_default_user=True)
 
    @HasRepoPermissionLevelDecorator('read')
 
@@ -321,19 +321,19 @@ class ChangesetController(BaseRepoContro
 

	
 
    @LoginRequired()
 
    @HasRepoPermissionLevelDecorator('read')
 
    @jsonify
 
    @base.jsonify
 
    def comment(self, repo_name, revision):
 
        return create_cs_pr_comment(repo_name, revision=revision)
 

	
 
    @LoginRequired()
 
    @HasRepoPermissionLevelDecorator('read')
 
    @jsonify
 
    @base.jsonify
 
    def delete_comment(self, repo_name, comment_id):
 
        return delete_cs_pr_comment(repo_name, comment_id)
 

	
 
    @LoginRequired(allow_default_user=True)
 
    @HasRepoPermissionLevelDecorator('read')
 
    @jsonify
 
    @base.jsonify
 
    def changeset_info(self, repo_name, revision):
 
        if request.is_xhr:
 
            try:
 
@@ -345,7 +345,7 @@ class ChangesetController(BaseRepoContro
 

	
 
    @LoginRequired(allow_default_user=True)
 
    @HasRepoPermissionLevelDecorator('read')
 
    @jsonify
 
    @base.jsonify
 
    def changeset_children(self, repo_name, revision):
 
        if request.is_xhr:
 
            changeset = c.db_repo_scm_instance.get_changeset(revision)
 
@@ -358,7 +358,7 @@ class ChangesetController(BaseRepoContro
 

	
 
    @LoginRequired(allow_default_user=True)
 
    @HasRepoPermissionLevelDecorator('read')
 
    @jsonify
 
    @base.jsonify
 
    def changeset_parents(self, repo_name, revision):
 
        if request.is_xhr:
 
            changeset = c.db_repo_scm_instance.get_changeset(revision)
kallithea/controllers/compare.py
Show inline comments
 
@@ -35,9 +35,9 @@ from tg.i18n import ugettext as _
 
from webob.exc import HTTPBadRequest, HTTPFound, HTTPNotFound
 

	
 
import kallithea.lib.helpers as h
 
from kallithea.controllers import base
 
from kallithea.lib import diffs, webutils
 
from kallithea.lib.auth import HasRepoPermissionLevelDecorator, LoginRequired
 
from kallithea.lib.base import BaseRepoController, render
 
from kallithea.lib.graphmod import graph_data
 
from kallithea.lib.webutils import url
 
from kallithea.model import db
 
@@ -46,7 +46,7 @@ from kallithea.model import db
 
log = logging.getLogger(__name__)
 

	
 

	
 
class CompareController(BaseRepoController):
 
class CompareController(base.BaseRepoController):
 

	
 
    def _before(self, *args, **kwargs):
 
        super(CompareController, self)._before(*args, **kwargs)
 
@@ -76,7 +76,7 @@ class CompareController(BaseRepoControll
 
    def index(self, repo_name):
 
        c.compare_home = True
 
        c.a_ref_name = c.cs_ref_name = None
 
        return render('compare/compare_diff.html')
 
        return base.render('compare/compare_diff.html')
 

	
 
    @LoginRequired(allow_default_user=True)
 
    @HasRepoPermissionLevelDecorator('read')
 
@@ -129,7 +129,7 @@ class CompareController(BaseRepoControll
 
        c.jsdata = graph_data(c.cs_repo.scm_instance, revs)
 

	
 
        if partial:
 
            return render('compare/compare_cs.html')
 
            return base.render('compare/compare_cs.html')
 

	
 
        org_repo = c.a_repo
 
        other_repo = c.cs_repo
 
@@ -185,4 +185,4 @@ class CompareController(BaseRepoControll
 
            html_diff = diffs.as_html(parsed_lines=[f])
 
            c.file_diff_data.append((fid, None, f['operation'], f['old_filename'], filename, html_diff, st))
 

	
 
        return render('compare/compare_diff.html')
 
        return base.render('compare/compare_diff.html')
kallithea/controllers/error.py
Show inline comments
 
@@ -32,13 +32,13 @@ from tg import config, expose, request
 
from tg import tmpl_context as c
 
from tg.i18n import ugettext as _
 

	
 
from kallithea.lib.base import BaseController
 
from kallithea.controllers import base
 

	
 

	
 
log = logging.getLogger(__name__)
 

	
 

	
 
class ErrorController(BaseController):
 
class ErrorController(base.BaseController):
 
    """Generates error documents as and when they are required.
 

	
 
    The errorpage middleware renders /error/document when error
kallithea/controllers/feed.py
Show inline comments
 
@@ -35,9 +35,9 @@ from tg.i18n import ugettext as _
 

	
 
import kallithea
 
import kallithea.lib.helpers as h
 
from kallithea.controllers import base
 
from kallithea.lib import feeds, webutils
 
from kallithea.lib.auth import HasRepoPermissionLevelDecorator, LoginRequired
 
from kallithea.lib.base import BaseRepoController
 
from kallithea.lib.diffs import DiffProcessor
 
from kallithea.lib.utils2 import asbool, fmt_date, safe_int, safe_str, shorter
 

	
 
@@ -45,7 +45,7 @@ from kallithea.lib.utils2 import asbool,
 
log = logging.getLogger(__name__)
 

	
 

	
 
class FeedController(BaseRepoController):
 
class FeedController(base.BaseRepoController):
 

	
 
    @LoginRequired(allow_default_user=True)
 
    @HasRepoPermissionLevelDecorator('read')
kallithea/controllers/files.py
Show inline comments
 
@@ -40,9 +40,9 @@ from webob.exc import HTTPFound, HTTPNot
 

	
 
import kallithea
 
import kallithea.lib.helpers as h
 
from kallithea.controllers import base
 
from kallithea.lib import diffs, webutils
 
from kallithea.lib.auth import HasRepoPermissionLevelDecorator, LoginRequired
 
from kallithea.lib.base import BaseRepoController, jsonify, render
 
from kallithea.lib.exceptions import NonRelativePathError
 
from kallithea.lib.utils2 import asbool, convert_line_endings, detect_mode, safe_str
 
from kallithea.lib.vcs.backends.base import EmptyChangeset
 
@@ -60,7 +60,7 @@ from kallithea.model.scm import ScmModel
 
log = logging.getLogger(__name__)
 

	
 

	
 
class FilesController(BaseRepoController):
 
class FilesController(base.BaseRepoController):
 

	
 
    def _before(self, *args, **kwargs):
 
        super(FilesController, self)._before(*args, **kwargs)
 
@@ -179,7 +179,7 @@ class FilesController(BaseRepoController
 
            raise HTTPNotFound()
 

	
 
        if request.environ.get('HTTP_X_PARTIAL_XHR'):
 
            return render('files/files_ypjax.html')
 
            return base.render('files/files_ypjax.html')
 

	
 
        # TODO: tags and bookmarks?
 
        c.revision_options = [(c.changeset.raw_id,
 
@@ -190,11 +190,11 @@ class FilesController(BaseRepoController
 
            c.revision_options += [('-', '-')] + \
 
                [(n, prefix + b) for b, n in c.db_repo_scm_instance.closed_branches.items()]
 

	
 
        return render('files/files.html')
 
        return base.render('files/files.html')
 

	
 
    @LoginRequired(allow_default_user=True)
 
    @HasRepoPermissionLevelDecorator('read')
 
    @jsonify
 
    @base.jsonify
 
    def history(self, repo_name, revision, f_path):
 
        changeset = self.__get_cs(revision)
 
        _file = changeset.get_node(f_path)
 
@@ -224,7 +224,7 @@ class FilesController(BaseRepoController
 
            c.authors = []
 
            for a in set([x.author for x in _hist]):
 
                c.authors.append((author_email(a), h.person(a)))
 
            return render('files/files_history_box.html')
 
            return base.render('files/files_history_box.html')
 

	
 
    @LoginRequired(allow_default_user=True)
 
    @HasRepoPermissionLevelDecorator('read')
 
@@ -335,7 +335,7 @@ class FilesController(BaseRepoController
 
            raise HTTPFound(location=url('changeset_home',
 
                                repo_name=c.repo_name, revision='tip'))
 

	
 
        return render('files/files_delete.html')
 
        return base.render('files/files_delete.html')
 

	
 
    @LoginRequired()
 
    @HasRepoPermissionLevelDecorator('write')
 
@@ -393,7 +393,7 @@ class FilesController(BaseRepoController
 
            raise HTTPFound(location=url('changeset_home',
 
                                repo_name=c.repo_name, revision='tip'))
 

	
 
        return render('files/files_edit.html')
 
        return base.render('files/files_edit.html')
 

	
 
    @LoginRequired()
 
    @HasRepoPermissionLevelDecorator('write')
 
@@ -468,7 +468,7 @@ class FilesController(BaseRepoController
 
            raise HTTPFound(location=url('changeset_home',
 
                                repo_name=c.repo_name, revision='tip'))
 

	
 
        return render('files/files_add.html')
 
        return base.render('files/files_add.html')
 

	
 
    @LoginRequired(allow_default_user=True)
 
    @HasRepoPermissionLevelDecorator('read')
 
@@ -645,7 +645,7 @@ class FilesController(BaseRepoController
 
                                         ignore_whitespace=ignore_whitespace_diff,
 
                                         line_context=diff_context_size)
 
            c.file_diff_data = [(fid, fid, op, a_path, node2.path, diff, st)]
 
            return render('files/file_diff.html')
 
            return base.render('files/file_diff.html')
 

	
 
    @LoginRequired(allow_default_user=True)
 
    @HasRepoPermissionLevelDecorator('read')
 
@@ -693,7 +693,7 @@ class FilesController(BaseRepoController
 
        c.cs1 = c.changeset_1
 
        c.cs2 = c.changeset_2
 

	
 
        return render('files/diff_2way.html')
 
        return base.render('files/diff_2way.html')
 

	
 
    def _get_node_history(self, cs, f_path, changesets=None):
 
        """
 
@@ -736,7 +736,7 @@ class FilesController(BaseRepoController
 

	
 
    @LoginRequired(allow_default_user=True)
 
    @HasRepoPermissionLevelDecorator('read')
 
    @jsonify
 
    @base.jsonify
 
    def nodelist(self, repo_name, revision, f_path):
 
        if request.environ.get('HTTP_X_PARTIAL_XHR'):
 
            cs = self.__get_cs(revision)
kallithea/controllers/followers.py
Show inline comments
 
@@ -30,8 +30,8 @@ import logging
 
from tg import request
 
from tg import tmpl_context as c
 

	
 
from kallithea.controllers import base
 
from kallithea.lib.auth import HasRepoPermissionLevelDecorator, LoginRequired
 
from kallithea.lib.base import BaseRepoController, render
 
from kallithea.lib.page import Page
 
from kallithea.lib.utils2 import safe_int
 
from kallithea.model import db
 
@@ -40,7 +40,7 @@ from kallithea.model import db
 
log = logging.getLogger(__name__)
 

	
 

	
 
class FollowersController(BaseRepoController):
 
class FollowersController(base.BaseRepoController):
 

	
 
    @LoginRequired(allow_default_user=True)
 
    @HasRepoPermissionLevelDecorator('read')
 
@@ -52,6 +52,6 @@ class FollowersController(BaseRepoContro
 
        c.followers_pager = Page(d, page=p, items_per_page=20)
 

	
 
        if request.environ.get('HTTP_X_PARTIAL_XHR'):
 
            return render('/followers/followers_data.html')
 
            return base.render('/followers/followers_data.html')
 

	
 
        return render('/followers/followers.html')
 
        return base.render('/followers/followers.html')
kallithea/controllers/forks.py
Show inline comments
 
@@ -36,9 +36,9 @@ from tg.i18n import ugettext as _
 
from webob.exc import HTTPFound, HTTPNotFound
 

	
 
import kallithea
 
from kallithea.controllers import base
 
from kallithea.lib import webutils
 
from kallithea.lib.auth import HasPermissionAnyDecorator, HasRepoPermissionLevel, HasRepoPermissionLevelDecorator, LoginRequired
 
from kallithea.lib.base import BaseRepoController, render
 
from kallithea.lib.page import Page
 
from kallithea.lib.utils2 import safe_int
 
from kallithea.model import db
 
@@ -50,7 +50,7 @@ from kallithea.model.scm import Availabl
 
log = logging.getLogger(__name__)
 

	
 

	
 
class ForksController(BaseRepoController):
 
class ForksController(base.BaseRepoController):
 

	
 
    def __load_defaults(self):
 
        c.repo_groups = AvailableRepoGroupChoices('write')
 
@@ -113,9 +113,9 @@ class ForksController(BaseRepoController
 
        c.forks_pager = Page(d, page=p, items_per_page=20)
 

	
 
        if request.environ.get('HTTP_X_PARTIAL_XHR'):
 
            return render('/forks/forks_data.html')
 
            return base.render('/forks/forks_data.html')
 

	
 
        return render('/forks/forks.html')
 
        return base.render('/forks/forks.html')
 

	
 
    @LoginRequired()
 
    @HasPermissionAnyDecorator('hg.admin', 'hg.fork.repository')
 
@@ -128,7 +128,7 @@ class ForksController(BaseRepoController
 
        defaults = self.__load_data()
 

	
 
        return htmlfill.render(
 
            render('forks/fork.html'),
 
            base.render('forks/fork.html'),
 
            defaults=defaults,
 
            encoding="UTF-8",
 
            force_defaults=False)
 
@@ -157,7 +157,7 @@ class ForksController(BaseRepoController
 
            task_id = task.task_id
 
        except formencode.Invalid as errors:
 
            return htmlfill.render(
 
                render('forks/fork.html'),
 
                base.render('forks/fork.html'),
 
                defaults=errors.value,
 
                errors=errors.error_dict or {},
 
                prefix_error=False,
kallithea/controllers/home.py
Show inline comments
 
@@ -35,8 +35,8 @@ from tg.i18n import ugettext as _
 
from webob.exc import HTTPBadRequest
 

	
 
import kallithea.lib.helpers as h
 
from kallithea.controllers import base
 
from kallithea.lib.auth import HasRepoPermissionLevelDecorator, LoginRequired
 
from kallithea.lib.base import BaseController, jsonify, render
 
from kallithea.lib.utils2 import safe_str
 
from kallithea.model import db
 
from kallithea.model.repo import RepoModel
 
@@ -46,10 +46,10 @@ from kallithea.model.scm import UserGrou
 
log = logging.getLogger(__name__)
 

	
 

	
 
class HomeController(BaseController):
 
class HomeController(base.BaseController):
 

	
 
    def about(self):
 
        return render('/about.html')
 
        return base.render('/about.html')
 

	
 
    @LoginRequired(allow_default_user=True)
 
    def index(self):
 
@@ -62,10 +62,10 @@ class HomeController(BaseController):
 
                                               repo_groups_list=repo_groups_list,
 
                                               short_name=True)
 

	
 
        return render('/index.html')
 
        return base.render('/index.html')
 

	
 
    @LoginRequired(allow_default_user=True)
 
    @jsonify
 
    @base.jsonify
 
    def repo_switcher_data(self):
 
        if request.is_xhr:
 
            all_repos = db.Repository.query(sorted=True).all()
 
@@ -109,7 +109,7 @@ class HomeController(BaseController):
 

	
 
    @LoginRequired(allow_default_user=True)
 
    @HasRepoPermissionLevelDecorator('read')
 
    @jsonify
 
    @base.jsonify
 
    def repo_refs_data(self, repo_name):
 
        repo = db.Repository.get_by_repo_name(repo_name).scm_instance
 
        res = []
 
@@ -144,7 +144,7 @@ class HomeController(BaseController):
 
        return data
 

	
 
    @LoginRequired()
 
    @jsonify
 
    @base.jsonify
 
    def users_and_groups_data(self):
 
        """
 
        Returns 'results' with a list of users and user groups.
kallithea/controllers/journal.py
Show inline comments
 
@@ -37,10 +37,10 @@ from tg.i18n import ugettext as _
 
from webob.exc import HTTPBadRequest
 

	
 
import kallithea.lib.helpers as h
 
from kallithea.controllers import base
 
from kallithea.controllers.admin.admin import _journal_filter
 
from kallithea.lib import feeds, webutils
 
from kallithea.lib.auth import LoginRequired
 
from kallithea.lib.base import BaseController, render
 
from kallithea.lib.page import Page
 
from kallithea.lib.utils2 import AttributeDict, safe_int
 
from kallithea.model import db, meta
 
@@ -55,7 +55,7 @@ ttl = "5"
 
feed_nr = 20
 

	
 

	
 
class JournalController(BaseController):
 
class JournalController(base.BaseController):
 

	
 
    def _before(self, *args, **kwargs):
 
        super(JournalController, self)._before(*args, **kwargs)
 
@@ -178,7 +178,7 @@ class JournalController(BaseController):
 
        c.journal_day_aggregate = self._get_daily_aggregate(c.journal_pager)
 

	
 
        if request.environ.get('HTTP_X_PARTIAL_XHR'):
 
            return render('journal/journal_data.html')
 
            return base.render('journal/journal_data.html')
 

	
 
        repos_list = db.Repository.query(sorted=True) \
 
            .filter_by(owner_id=request.authuser.user_id).all()
 
@@ -187,7 +187,7 @@ class JournalController(BaseController):
 
        # data used to render the grid
 
        c.data = repos_data
 

	
 
        return render('journal/journal.html')
 
        return base.render('journal/journal.html')
 

	
 
    @LoginRequired()
 
    def journal_atom(self):
 
@@ -250,9 +250,9 @@ class JournalController(BaseController):
 
        c.journal_day_aggregate = self._get_daily_aggregate(c.journal_pager)
 

	
 
        if request.environ.get('HTTP_X_PARTIAL_XHR'):
 
            return render('journal/journal_data.html')
 
            return base.render('journal/journal_data.html')
 

	
 
        return render('journal/public_journal.html')
 
        return base.render('journal/public_journal.html')
 

	
 
    @LoginRequired(allow_default_user=True)
 
    def public_journal_atom(self):
kallithea/controllers/login.py
Show inline comments
 
@@ -36,9 +36,9 @@ from tg import tmpl_context as c
 
from tg.i18n import ugettext as _
 
from webob.exc import HTTPBadRequest, HTTPFound
 

	
 
from kallithea.controllers import base
 
from kallithea.lib import webutils
 
from kallithea.lib.auth import AuthUser, HasPermissionAnyDecorator
 
from kallithea.lib.base import BaseController, log_in_user, render
 
from kallithea.lib.exceptions import UserCreationError
 
from kallithea.lib.recaptcha import submit
 
from kallithea.lib.webutils import url
 
@@ -50,7 +50,7 @@ from kallithea.model.user import UserMod
 
log = logging.getLogger(__name__)
 

	
 

	
 
class LoginController(BaseController):
 
class LoginController(base.BaseController):
 

	
 
    def _validate_came_from(self, came_from,
 
            _re=re.compile(r"/(?!/)[-!#$%&'()*+,./:;=?@_~0-9A-Za-z]*$")):
 
@@ -89,7 +89,7 @@ class LoginController(BaseController):
 
                # remove password from filling in form again
 
                defaults.pop('password', None)
 
                return htmlfill.render(
 
                    render('/login.html'),
 
                    base.render('/login.html'),
 
                    defaults=errors.value,
 
                    errors=errors.error_dict or {},
 
                    prefix_error=False,
 
@@ -103,7 +103,7 @@ class LoginController(BaseController):
 
                webutils.flash(e, 'error')
 
            else:
 
                # login_form already validated the password - now set the session cookie accordingly
 
                auth_user = log_in_user(user, c.form_result['remember'], is_external_auth=False, ip_addr=request.ip_addr)
 
                auth_user = base.log_in_user(user, c.form_result['remember'], is_external_auth=False, ip_addr=request.ip_addr)
 
                if auth_user:
 
                    raise HTTPFound(location=c.came_from)
 
                webutils.flash(_('Authentication failed.'), 'error')
 
@@ -113,7 +113,7 @@ class LoginController(BaseController):
 
                raise HTTPFound(location=c.came_from)
 
            # continue to show login to default user
 

	
 
        return render('/login.html')
 
        return base.render('/login.html')
 

	
 
    @HasPermissionAnyDecorator('hg.admin', 'hg.register.auto_activate',
 
                               'hg.register.manual_activate')
 
@@ -151,7 +151,7 @@ class LoginController(BaseController):
 

	
 
            except formencode.Invalid as errors:
 
                return htmlfill.render(
 
                    render('/register.html'),
 
                    base.render('/register.html'),
 
                    defaults=errors.value,
 
                    errors=errors.error_dict or {},
 
                    prefix_error=False,
 
@@ -164,7 +164,7 @@ class LoginController(BaseController):
 
                # Exception itself
 
                webutils.flash(e, 'error')
 

	
 
        return render('/register.html')
 
        return base.render('/register.html')
 

	
 
    def password_reset(self):
 
        settings = db.Setting.get_app_settings()
 
@@ -193,14 +193,14 @@ class LoginController(BaseController):
 

	
 
            except formencode.Invalid as errors:
 
                return htmlfill.render(
 
                    render('/password_reset.html'),
 
                    base.render('/password_reset.html'),
 
                    defaults=errors.value,
 
                    errors=errors.error_dict or {},
 
                    prefix_error=False,
 
                    encoding="UTF-8",
 
                    force_defaults=False)
 

	
 
        return render('/password_reset.html')
 
        return base.render('/password_reset.html')
 

	
 
    def password_reset_confirmation(self):
 
        # This controller handles both GET and POST requests, though we
 
@@ -213,14 +213,14 @@ class LoginController(BaseController):
 
        c.timestamp = request.params.get('timestamp') or ''
 
        c.token = request.params.get('token') or ''
 
        if not request.POST:
 
            return render('/password_reset_confirmation.html')
 
            return base.render('/password_reset_confirmation.html')
 

	
 
        form = PasswordResetConfirmationForm()()
 
        try:
 
            form_result = form.to_python(dict(request.POST))
 
        except formencode.Invalid as errors:
 
            return htmlfill.render(
 
                render('/password_reset_confirmation.html'),
 
                base.render('/password_reset_confirmation.html'),
 
                defaults=errors.value,
 
                errors=errors.error_dict or {},
 
                prefix_error=False,
 
@@ -232,7 +232,7 @@ class LoginController(BaseController):
 
            form_result['token'],
 
        ):
 
            return htmlfill.render(
 
                render('/password_reset_confirmation.html'),
 
                base.render('/password_reset_confirmation.html'),
 
                defaults=form_result,
 
                errors={'token': _('Invalid password reset token')},
 
                prefix_error=False,
kallithea/controllers/pullrequests.py
Show inline comments
 
@@ -36,10 +36,10 @@ from tg.i18n import ugettext as _
 
from webob.exc import HTTPBadRequest, HTTPForbidden, HTTPFound, HTTPNotFound
 

	
 
import kallithea.lib.helpers as h
 
from kallithea.controllers import base
 
from kallithea.controllers.changeset import create_cs_pr_comment, delete_cs_pr_comment
 
from kallithea.lib import auth, diffs, webutils
 
from kallithea.lib.auth import HasRepoPermissionLevelDecorator, LoginRequired
 
from kallithea.lib.base import BaseRepoController, jsonify, render
 
from kallithea.lib.graphmod import graph_data
 
from kallithea.lib.page import Page
 
from kallithea.lib.utils2 import ascii_bytes, safe_bytes, safe_int
 
@@ -69,7 +69,7 @@ def _get_reviewer(user_id):
 
    return user
 

	
 

	
 
class PullrequestsController(BaseRepoController):
 
class PullrequestsController(base.BaseRepoController):
 

	
 
    def _get_repo_refs(self, repo, rev=None, branch=None, branch_rev=None):
 
        """return a structure with scm repo's interesting changesets, suitable for
 
@@ -211,7 +211,7 @@ class PullrequestsController(BaseRepoCon
 

	
 
        c.pullrequests_pager = Page(c.pull_requests, page=p, items_per_page=100, **url_params)
 

	
 
        return render('/pullrequests/pullrequest_show_all.html')
 
        return base.render('/pullrequests/pullrequest_show_all.html')
 

	
 
    @LoginRequired()
 
    def show_my(self):
 
@@ -236,7 +236,7 @@ class PullrequestsController(BaseRepoCon
 
            else:
 
                c.participate_in_pull_requests_todo.append(pr)
 

	
 
        return render('/pullrequests/pullrequest_show_my.html')
 
        return base.render('/pullrequests/pullrequest_show_my.html')
 

	
 
    @LoginRequired()
 
    @HasRepoPermissionLevelDecorator('read')
 
@@ -291,11 +291,11 @@ class PullrequestsController(BaseRepoCon
 
        for fork in org_repo.forks:
 
            c.a_repos.append((fork.repo_name, fork.repo_name))
 

	
 
        return render('/pullrequests/pullrequest.html')
 
        return base.render('/pullrequests/pullrequest.html')
 

	
 
    @LoginRequired()
 
    @HasRepoPermissionLevelDecorator('read')
 
    @jsonify
 
    @base.jsonify
 
    def repo_info(self, repo_name):
 
        repo = c.db_repo
 
        refs, selected_ref = self._get_repo_refs(repo.scm_instance)
 
@@ -432,7 +432,7 @@ class PullrequestsController(BaseRepoCon
 

	
 
    @LoginRequired()
 
    @HasRepoPermissionLevelDecorator('read')
 
    @jsonify
 
    @base.jsonify
 
    def delete(self, repo_name, pull_request_id):
 
        pull_request = db.PullRequest.get_or_404(pull_request_id)
 
        # only owner can delete it !
 
@@ -620,11 +620,11 @@ class PullrequestsController(BaseRepoCon
 

	
 
        c.is_ajax_preview = False
 
        c.ancestors = None # [c.a_rev] ... but that is shown in an other way
 
        return render('/pullrequests/pullrequest_show.html')
 
        return base.render('/pullrequests/pullrequest_show.html')
 

	
 
    @LoginRequired()
 
    @HasRepoPermissionLevelDecorator('read')
 
    @jsonify
 
    @base.jsonify
 
    def comment(self, repo_name, pull_request_id):
 
        pull_request = db.PullRequest.get_or_404(pull_request_id)
 
        allowed_to_change_status = self._is_allowed_to_change_status(pull_request)
 
@@ -633,6 +633,6 @@ class PullrequestsController(BaseRepoCon
 

	
 
    @LoginRequired()
 
    @HasRepoPermissionLevelDecorator('read')
 
    @jsonify
 
    @base.jsonify
 
    def delete_comment(self, repo_name, comment_id):
 
        return delete_cs_pr_comment(repo_name, comment_id)
kallithea/controllers/root.py
Show inline comments
 
@@ -14,9 +14,9 @@
 
from tg import config
 
from tgext.routes import RoutedController
 

	
 
from kallithea.controllers import base
 
from kallithea.controllers.error import ErrorController
 
from kallithea.controllers.routing import make_map
 
from kallithea.lib.base import BaseController
 

	
 

	
 
# This is the main Kallithea entry point; TurboGears will forward all requests
 
@@ -26,7 +26,7 @@ from kallithea.lib.base import BaseContr
 
# The mapper is configured using routes defined in routing.py.  This use of the
 
# 'mapper' attribute is a feature of tgext.routes, which is activated by
 
# inheriting from its RoutedController class.
 
class RootController(RoutedController, BaseController):
 
class RootController(RoutedController, base.BaseController):
 

	
 
    def __init__(self):
 
        self.mapper = make_map(config)
kallithea/controllers/search.py
Show inline comments
 
@@ -35,8 +35,8 @@ from whoosh.index import EmptyIndexError
 
from whoosh.qparser import QueryParser, QueryParserError
 
from whoosh.query import Phrase, Prefix
 

	
 
from kallithea.controllers import base
 
from kallithea.lib.auth import LoginRequired
 
from kallithea.lib.base import BaseRepoController, render
 
from kallithea.lib.indexers import CHGSET_IDX_NAME, CHGSETS_SCHEMA, IDX_NAME, SCHEMA, WhooshResultWrapper
 
from kallithea.lib.page import Page
 
from kallithea.lib.utils2 import safe_int
 
@@ -46,7 +46,7 @@ from kallithea.model.repo import RepoMod
 
log = logging.getLogger(__name__)
 

	
 

	
 
class SearchController(BaseRepoController):
 
class SearchController(base.BaseRepoController):
 

	
 
    @LoginRequired(allow_default_user=True)
 
    def index(self, repo_name=None):
 
@@ -139,4 +139,4 @@ class SearchController(BaseRepoControlle
 
                c.runtime = _('An error occurred during search operation.')
 

	
 
        # Return a rendered template
 
        return render('/search/search.html')
 
        return base.render('/search/search.html')
kallithea/controllers/summary.py
Show inline comments
 
@@ -38,9 +38,9 @@ from tg import tmpl_context as c
 
from tg.i18n import ugettext as _
 
from webob.exc import HTTPBadRequest
 

	
 
from kallithea.controllers import base
 
from kallithea.lib import ext_json, webutils
 
from kallithea.lib.auth import HasRepoPermissionLevelDecorator, LoginRequired
 
from kallithea.lib.base import BaseRepoController, jsonify, render
 
from kallithea.lib.conf import ALL_EXTS, ALL_READMES, LANGUAGES_EXTENSIONS_MAP
 
from kallithea.lib.markup_renderer import MarkupRenderer
 
from kallithea.lib.page import Page
 
@@ -58,7 +58,7 @@ README_FILES = [''.join([x[0][0], x[1][0
 
                           key=lambda y:y[0][1] + y[1][1])]
 

	
 

	
 
class SummaryController(BaseRepoController):
 
class SummaryController(base.BaseRepoController):
 

	
 
    def __get_readme_data(self, db_repo):
 
        repo_name = db_repo.repo_name
 
@@ -148,11 +148,11 @@ class SummaryController(BaseRepoControll
 
        c.enable_downloads = c.db_repo.enable_downloads
 
        c.readme_data, c.readme_file = \
 
            self.__get_readme_data(c.db_repo)
 
        return render('summary/summary.html')
 
        return base.render('summary/summary.html')
 

	
 
    @LoginRequired()
 
    @HasRepoPermissionLevelDecorator('read')
 
    @jsonify
 
    @base.jsonify
 
    def repo_size(self, repo_name):
 
        if request.is_xhr:
 
            return c.db_repo._repo_size()
 
@@ -209,4 +209,4 @@ class SummaryController(BaseRepoControll
 

	
 
        recurse_limit = 500  # don't recurse more than 500 times when parsing
 
        async_tasks.get_commits_stats(c.db_repo.repo_name, ts_min_y, ts_max_y, recurse_limit)
 
        return render('summary/statistics.html')
 
        return base.render('summary/statistics.html')
scripts/deps.py
Show inline comments
 
@@ -131,10 +131,10 @@ conftest
 

	
 
normal_modules = set('''
 
kallithea
 
kallithea.controllers.base
 
kallithea.lib
 
kallithea.lib.auth
 
kallithea.lib.auth_modules
 
kallithea.lib.base
 
kallithea.lib.celerylib
 
kallithea.lib.db_manage
 
kallithea.lib.helpers
0 comments (0 inline, 0 general)