1.1 --- a/imip_manager.py Wed Mar 25 16:41:43 2015 +0100
1.2 +++ b/imip_manager.py Wed Mar 25 17:57:42 2015 +0100
1.3 @@ -27,7 +27,7 @@
1.4 from datetime import date, datetime, timedelta
1.5 import babel.dates
1.6 import pytz
1.7 -import cgi, os, sys
1.8 +import sys
1.9
1.10 sys.path.append(LIBRARY_PATH)
1.11
1.12 @@ -47,71 +47,10 @@
1.13 partition_by_day, remove_period, remove_affected_period, \
1.14 update_freebusy
1.15 from imiptools.profile import Preferences
1.16 +from imipweb.env import CGIEnvironment
1.17 import imip_store
1.18 import markup
1.19
1.20 -getenv = os.environ.get
1.21 -setenv = os.environ.__setitem__
1.22 -
1.23 -class CGIEnvironment:
1.24 -
1.25 - "A CGI-compatible environment."
1.26 -
1.27 - def __init__(self, charset=None):
1.28 - self.charset = charset
1.29 - self.args = None
1.30 - self.method = None
1.31 - self.path = None
1.32 - self.path_info = None
1.33 - self.user = None
1.34 -
1.35 - def get_args(self):
1.36 - if self.args is None:
1.37 - if self.get_method() != "POST":
1.38 - setenv("QUERY_STRING", "")
1.39 - args = cgi.parse(keep_blank_values=True)
1.40 -
1.41 - if not self.charset:
1.42 - self.args = args
1.43 - else:
1.44 - self.args = {}
1.45 - for key, values in args.items():
1.46 - self.args[key] = [unicode(value, self.charset) for value in values]
1.47 -
1.48 - return self.args
1.49 -
1.50 - def get_method(self):
1.51 - if self.method is None:
1.52 - self.method = getenv("REQUEST_METHOD") or "GET"
1.53 - return self.method
1.54 -
1.55 - def get_path(self):
1.56 - if self.path is None:
1.57 - self.path = getenv("SCRIPT_NAME") or ""
1.58 - return self.path
1.59 -
1.60 - def get_path_info(self):
1.61 - if self.path_info is None:
1.62 - self.path_info = getenv("PATH_INFO") or ""
1.63 - return self.path_info
1.64 -
1.65 - def get_user(self):
1.66 - if self.user is None:
1.67 - self.user = getenv("REMOTE_USER") or ""
1.68 - return self.user
1.69 -
1.70 - def get_output(self):
1.71 - return sys.stdout
1.72 -
1.73 - def get_url(self):
1.74 - path = self.get_path()
1.75 - path_info = self.get_path_info()
1.76 - return "%s%s" % (path.rstrip("/"), path_info)
1.77 -
1.78 - def new_url(self, path_info):
1.79 - path = self.get_path()
1.80 - return "%s/%s" % (path.rstrip("/"), path_info.lstrip("/"))
1.81 -
1.82 class Common:
1.83
1.84 "Common handler and manager methods."