summaryrefslogtreecommitdiffstats
path: root/ipawebui/__init__.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2009-10-26 05:16:18 -0600
committerJason Gerard DeRose <jderose@redhat.com>2009-10-27 21:38:13 -0600
commitc4b7b70636fb34e48fde0e740e690fe9c5cc13cc (patch)
treed49e9211387d070bfe785365dda465b0a18fdf6d /ipawebui/__init__.py
parent23b800a879afcbb49a2ce095cbe2e309a26976a7 (diff)
downloadfreeipa-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__.py45
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()