Mercurial > moin > 1.9
view MoinMoin/wsgiapp.py @ 4149:769850545997
Removed request.editlog
author | Florian Krupicka <florian.krupicka@googlemail.com> |
---|---|
date | Sun, 08 Jun 2008 00:37:59 +0200 |
parents | 0a62a439d81b |
children | 30ac757e72de |
line wrap: on
line source
# -*- coding: iso-8859-1 -*- """ MoinMoin - WSGI application @copyright: 2003-2008 MoinMoin:ThomasWaldmann, 2008-2008 MoinMoin:FlorianKrupicka @license: GNU GPL, see COPYING for details. """ from werkzeug.utils import responder from werkzeug.wrappers import Response from werkzeug.exceptions import NotFound from MoinMoin.web.contexts import HTTPContext from MoinMoin.web.utils import check_spider, handle_auth_form from MoinMoin.Page import Page from MoinMoin import config, wikiutil, user, caching, error from MoinMoin.action import get_names, get_available_actions from MoinMoin.config import multiconfig from MoinMoin.support.python_compatibility import set from MoinMoin.util import IsWin9x from MoinMoin.util.clock import Clock from MoinMoin import auth def _request_init(request): request.clock = Clock() request.clock.start('total') request.clock.start('base__init__') try: request.clock.start('load_multi_cfg') request.cfg = multiconfig.getConfig(request.url) request.clock.stop('load_multi_cfg') except error.NoConfigMatchedError: raise NotFound('<p>No wiki configuration matching the URL found!</p>') request.isSpiderAgent = check_spider(request.user_agent, request.cfg) request.action = request.form.get('action', 'show') try: request.rev = int(request.form['rev']) except: request.rev = None from MoinMoin.Page import RootPage request.rootpage = RootPage(request) from MoinMoin import i18n request.i18n = i18n i18n.i18n_init(request) lang = i18n.requestLanguage(request, try_user=False) request.getText = lambda text, i18n=i18n, request=request, lang=lang, **kw: i18n.getText(text, request, lang, **kw) user_obj = request.cfg.session_handler.start(request, request.cfg.session_id_handler) request.user = None request.user = handle_auth_form(user_obj) request.cfg.session_handler.after_auth(request, request.cfg.session_id_handler, request.user) if not request.user: request.user = user.User(request, auth_method='request:invalid') if 'setuid' in request.session and request.user.isSuperUser(): request._setuid_real_user = request.user uid = request.session['setuid'] request.user = user.User(request, uid, auth_method='setuid') request.user.valid = True if request.action != 'xmlrpc': if not request.forbidden and request.isForbidden(): raise Forbidden() if not request.forbidden and request.surge_protect(): raise SurgeProtection(retry_after=request.cfg.surge_lockout_time) request.pragma = {} request.mode_getpagelinks = 0 # is > 0 as long as we are in a getPageLinks call request.parsePageLinks_running = {} # avoid infinite recursion by remembering what we are already running request.lang = i18n.requestLanguage(request) # Language for content. Page content should use the wiki default lang, # but generated content like search results should use the user language. request.content_lang = request.cfg.language_default request.getText = lambda text, i18n=request.i18n, request=request, lang=request.lang, **kv: i18n.getText(text, request, lang, **kv) request.reset() from MoinMoin.formatter.text_html import Formatter request.html_formatter = Formatter(request) request.formatter = request.html_formatter request.clock.stop('base__init__') def application(environ, start_response): request = HTTPContext(environ) _request_init(request) request.run() response = Response(status=request.status, headers=request.headers) if getattr(request, '_send_file', None) is not None: # moin wants to send a file (e.g. AttachFile.do_get) def simple_wrapper(fileobj, bufsize): return iter(lambda: fileobj.read(bufsize), '') file_wrapper = environ.get('wsgi.file_wrapper', simple_wrapper) response.response = file_wrapper(request._send_file, request._send_bufsize) else: response.response = request.output() return response application = responder(application)