From ca5d492d8daefbd5a8f428b5b41f27d2e1929508 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Tue, 17 Sep 2013 10:49:50 +0530 Subject: [PATCH] [wsgi] [minor] replace os.environ by webnotes.get_request_header --- webnotes/__init__.py | 6 +++--- webnotes/auth.py | 8 ++++---- webnotes/handler.py | 2 +- webnotes/modules/patch_handler.py | 2 +- webnotes/sessions.py | 13 ++++++++----- webnotes/utils/__init__.py | 6 +++--- website/doctype/blog_post/blog_feed.py | 2 +- 7 files changed, 21 insertions(+), 18 deletions(-) diff --git a/webnotes/__init__.py b/webnotes/__init__.py index 231e48cc4b..c1b5690d78 100644 --- a/webnotes/__init__.py +++ b/webnotes/__init__.py @@ -188,11 +188,11 @@ def connect(db_name=None, password=None): import webnotes.profile local.user = webnotes.profile.Profile('Administrator') -def get_env_vars(env_var): +def get_request_header(key, default=None): import os - return os.environ.get(env_var,'None') + return os.environ.get(key, default) -remote_ip = get_env_vars('REMOTE_ADDR') #Required for login from python shell +remote_ip = get_request_header('REMOTE_ADDR') #Required for login from python shell logger = None def get_db_password(db_name): diff --git a/webnotes/auth.py b/webnotes/auth.py index d907548da3..70b0e8df5f 100644 --- a/webnotes/auth.py +++ b/webnotes/auth.py @@ -14,19 +14,19 @@ class HTTPRequest: def __init__(self): # Get Environment variables - self.domain = webnotes.get_env_vars('HTTP_HOST') + self.domain = webnotes.get_request_header('HTTP_HOST') if self.domain and self.domain.startswith('www.'): self.domain = self.domain[4:] # language - self.set_lang(webnotes.get_env_vars('HTTP_ACCEPT_LANGUAGE')) + self.set_lang(webnotes.get_request_header('HTTP_ACCEPT_LANGUAGE')) - webnotes.remote_ip = webnotes.get_env_vars('REMOTE_ADDR') + webnotes.remote_ip = webnotes.get_request_header('REMOTE_ADDR') # load cookies webnotes.local.cookie_manager = CookieManager() - webnotes.request_method = webnotes.get_env_vars("REQUEST_METHOD") + webnotes.request_method = webnotes.get_request_header("REQUEST_METHOD") # override request method. All request to be of type POST, but if _type == "POST" then commit if webnotes.form_dict.get("_type"): diff --git a/webnotes/handler.py b/webnotes/handler.py index 55001f163e..f7394677d8 100755 --- a/webnotes/handler.py +++ b/webnotes/handler.py @@ -210,7 +210,7 @@ def json_handler(obj): (type(obj), repr(obj)) def accept_gzip(): - if "gzip" in os.environ.get("HTTP_ACCEPT_ENCODING", ""): + if "gzip" in webnotes.get_request_header("HTTP_ACCEPT_ENCODING", ""): return True def compressBuf(buf): diff --git a/webnotes/modules/patch_handler.py b/webnotes/modules/patch_handler.py index ce8028cf88..4292bedfb5 100644 --- a/webnotes/modules/patch_handler.py +++ b/webnotes/modules/patch_handler.py @@ -66,7 +66,7 @@ def execute_patch(patchmodule, method=None, methodargs=None): tb = webnotes.getTraceback() log(tb) import os - if os.environ.get('HTTP_HOST'): + if webnotes.get_request_header('HTTP_HOST'): add_to_patch_log(tb) block_user(False) diff --git a/webnotes/sessions.py b/webnotes/sessions.py index 43ea057c65..5153cace54 100644 --- a/webnotes/sessions.py +++ b/webnotes/sessions.py @@ -98,10 +98,10 @@ class Session: self.data['user'] = webnotes.local.login_manager.user self.data['sid'] = sid self.data['data']['user'] = webnotes.local.login_manager.user - self.data['data']['session_ip'] = os.environ.get('REMOTE_ADDR') + self.data['data']['session_ip'] = webnotes.get_request_header('REMOTE_ADDR') self.data['data']['last_updated'] = webnotes.utils.now() self.data['data']['session_expiry'] = self.get_expiry_period() - self.data['data']['session_country'] = get_geo_ip_country(os.environ.get('REMOTE_ADDR')) + self.data['data']['session_country'] = get_geo_ip_country(webnotes.get_request_header('REMOTE_ADDR')) # insert session webnotes.conn.begin() @@ -247,7 +247,10 @@ def get_geo_ip_country(ip_addr): import os from webnotes.utils import get_base_path - geo_ip_file = os.path.join(get_base_path(), "lib", "data", "GeoIP.dat") - geo_ip = pygeoip.GeoIP(geo_ip_file, pygeoip.MEMORY_CACHE) + try: + geo_ip_file = os.path.join(get_base_path(), "lib", "data", "GeoIP.dat") + geo_ip = pygeoip.GeoIP(geo_ip_file, pygeoip.MEMORY_CACHE) + return geo_ip.country_name_by_addr(ip_addr) + except Exception, e: + return - return geo_ip.country_name_by_addr(ip_addr) \ No newline at end of file diff --git a/webnotes/utils/__init__.py b/webnotes/utils/__init__.py index a0081ccd34..117cd2b8a1 100644 --- a/webnotes/utils/__init__.py +++ b/webnotes/utils/__init__.py @@ -71,13 +71,13 @@ def get_request_site_address(full_address=False): host_name = conf.host_name else: try: - protocol = 'HTTPS' in os.environ.get('SERVER_PROTOCOL') and 'https://' or 'http://' - host_name = protocol + os.environ.get('HTTP_HOST') + protocol = 'HTTPS' in webnotes.get_request_header('SERVER_PROTOCOL') and 'https://' or 'http://' + host_name = protocol + webnotes.get_request_header('HTTP_HOST') except TypeError: return 'http://localhost' if full_address: - return host_name + os.environ.get("REQUEST_URI", "") + return host_name + webnotes.get_request_header("REQUEST_URI", "") else: return host_name diff --git a/website/doctype/blog_post/blog_feed.py b/website/doctype/blog_post/blog_feed.py index 2f77f8258e..bd55ed0aab 100644 --- a/website/doctype/blog_post/blog_feed.py +++ b/website/doctype/blog_post/blog_feed.py @@ -35,7 +35,7 @@ def generate(): from webnotes.model.doc import Document from webnotes.utils import escape_html - host = (os.environ.get('HTTPS') and 'https://' or 'http://') + os.environ.get('HTTP_HOST') + host = (webnotes.get_request_header('HTTPS') and 'https://' or 'http://') + webnotes.get_request_header('HTTP_HOST') items = '' blog_list = webnotes.conn.sql("""\