[Calypso] [PATCH 01/15] add custom headers via config file

Jelmer Vernooij jelmer at jelmer.uk
Sat Apr 9 12:15:12 PDT 2016


From: chrysn <chrysn at fsfe.org>

this is required when using calypso with a web application on a
different server
---
 calypso/__init__.py |  3 +++
 calypso/config.py   |  6 +++++-
 config              | 11 +++++++++++
 3 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/calypso/__init__.py b/calypso/__init__.py
index 18cb880..d50329b 100644
--- a/calypso/__init__.py
+++ b/calypso/__init__.py
@@ -157,6 +157,9 @@ class CollectionHTTPHandler(server.BaseHTTPRequestHandler):
         self.send_response(response)
         self.send_connection_header()
         self.send_header("Content-Length", length)
+        for header, value in config.items('headers'):
+            self.send_header(header, value)
+
 
     def handle_one_request(self):
         """Handle a single HTTP request.
diff --git a/calypso/config.py b/calypso/config.py
index 59cbd85..0c3fee9 100644
--- a/calypso/config.py
+++ b/calypso/config.py
@@ -60,7 +60,11 @@ INITIAL_CONFIG = {
         "pam_service": "passwd",
     },
     "storage": {
-        "folder": os.path.expanduser("~/.config/calypso/calendars")}}
+        "folder": os.path.expanduser("~/.config/calypso/calendars")
+    },
+    "headers": {
+    },
+}
 
 # Create a ConfigParser and configure it
 _CONFIG_PARSER = ConfigParser()
diff --git a/config b/config
index 1ef574c..7093716 100644
--- a/config
+++ b/config
@@ -51,4 +51,15 @@ encryption = crypt
 # created if not present
 folder = ~/.config/calypso/calendars
 
+# The headers section allows verbatim addition of static headers to
+# responses. The following exemplary headers are useful when the calendar
+# should be accessed from users' web browsers using a web application hosted on
+# a different server.
+#
+#[headers]
+#Access-Control-Allow-Origin = *
+#Access-Control-Allow-Credentials = *
+#Access-Control-Allow-Methods = GET, POST, PUT, DELETE, PROPFIND, REPORT
+#Access-Control-Allow-Headers = accept, authorization, content-type, depth, x-client, if-match
+
 # vim:ft=cfg
-- 
2.8.0.rc3



More information about the Calypso mailing list