diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2009-10-26 05:16:18 -0600 |
---|---|---|
committer | Jason Gerard DeRose <jderose@redhat.com> | 2009-10-27 21:38:13 -0600 |
commit | c4b7b70636fb34e48fde0e740e690fe9c5cc13cc (patch) | |
tree | d49e9211387d070bfe785365dda465b0a18fdf6d /ipawebui/__init__.py | |
parent | 23b800a879afcbb49a2ce095cbe2e309a26976a7 (diff) | |
download | freeipa-c4b7b70636fb34e48fde0e740e690fe9c5cc13cc.tar.gz freeipa-c4b7b70636fb34e48fde0e740e690fe9c5cc13cc.tar.xz freeipa-c4b7b70636fb34e48fde0e740e690fe9c5cc13cc.zip |
Add mod_python adapter and some UI tuning
Diffstat (limited to 'ipawebui/__init__.py')
-rw-r--r-- | ipawebui/__init__.py | 45 |
1 files changed, 32 insertions, 13 deletions
diff --git a/ipawebui/__init__.py b/ipawebui/__init__.py index ba14438fd..9f86da344 100644 --- a/ipawebui/__init__.py +++ b/ipawebui/__init__.py @@ -20,6 +20,9 @@ IPA web UI. """ +from ipalib.backend import Executioner +from ipalib.request import destroy_context +from ipaserver.rpcserver import extract_query from controllers import JSON from engine import Engine from widgets import create_widgets @@ -34,20 +37,36 @@ def join_url(base, url): return base + url -def create_wsgi_app(api): - baseurl = api.env.mount_ipa - assets = Assets( - url=join_url(baseurl, api.env.mount_webui_assets), - dir=api.env.webui_assets_dir, - prod=api.env.webui_prod, - ) - app = Application( - url=join_url(baseurl, api.env.mount_webui), - assets=assets, - widgets=create_widgets(), - prod=api.env.webui_prod, - ) +class WebUI(Application): + def __init__(self, api): + self.api = api + self.session = api.Backend.session + baseurl = api.env.mount_ipa + assets = Assets( + url=join_url(baseurl, api.env.mount_webui_assets), + dir=api.env.webui_assets_dir, + prod=api.env.webui_prod, + ) + super(WebUI, self).__init__( + url=join_url(baseurl, api.env.mount_webui), + assets=assets, + widgets=create_widgets(), + prod=api.env.webui_prod, + ) + + def __call__(self, environ, start_response): + self.session.create_context(ccache=environ.get('KRB5CCNAME')) + try: + query = extract_query(environ) + print query + response = super(WebUI, self).__call__(environ, start_response) + finally: + destroy_context() + return response + +def create_wsgi_app(api): + app = WebUI(api) engine = Engine(api, app) engine.build() |