From: Michael Tremer Date: Sun, 22 Oct 2017 11:42:23 +0000 (+0100) Subject: mirrors: Add option to support HTTPS X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3163c789758423fad61335995b206e5af3a25f4f;p=people%2Fjschlag%2Fpbs.git mirrors: Add option to support HTTPS Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/mirrors.py b/src/buildservice/mirrors.py index 61404f7..0c28ddd 100644 --- a/src/buildservice/mirrors.py +++ b/src/buildservice/mirrors.py @@ -160,13 +160,22 @@ class Mirror(base.DataObject): return self.make_url() def make_url(self, path=""): - url = "http://%s%s" % (self.hostname, self.path) + url = "%s://%s%s" % ( + "https" if self.supports_https else "http", + self.hostname, + self.path + ) if path.startswith("/"): path = path[1:] return urlparse.urljoin(url, path) + def set_supports_https(self, supports_https): + self._set_attribute("supports_https", supports_https) + + supports_https = property(lambda s: s.data.supports_https, set_supports_https) + def set_owner(self, owner): self._set_attribute("owner", owner) diff --git a/src/database.sql b/src/database.sql index 96a03d4..01a1331 100644 --- a/src/database.sql +++ b/src/database.sql @@ -1291,7 +1291,8 @@ CREATE TABLE mirrors ( path text NOT NULL, owner text, contact text, - deleted boolean DEFAULT false NOT NULL + deleted boolean DEFAULT false NOT NULL, + supports_https boolean DEFAULT false NOT NULL ); diff --git a/src/templates/mirrors-edit.html b/src/templates/mirrors-edit.html index ab6c7f4..2e3b3c3 100644 --- a/src/templates/mirrors-edit.html +++ b/src/templates/mirrors-edit.html @@ -40,11 +40,11 @@
- +
diff --git a/src/web/handlers_mirrors.py b/src/web/handlers_mirrors.py index 42d986a..fa32e43 100644 --- a/src/web/handlers_mirrors.py +++ b/src/web/handlers_mirrors.py @@ -99,21 +99,12 @@ class MirrorEditHandler(MirrorActionHandler): if not mirror: raise tornado.web.HTTPError(404, "Could not find mirror: %s" % hostname) - hostname = self.get_argument("name") - path = self.get_argument("path", "") - owner = self.get_argument("owner", None) - contact = self.get_argument("contact", None) - enabled = self.get_argument("enabled", None) - - if enabled: - mirror.set_status("enabled", user=self.current_user) - else: - mirror.set_status("disabled", user=self.current_user) - - mirror.hostname = hostname - mirror.path = path - mirror.owner = owner - mirror.contact = contact + with self.db.transaction(): + mirror.hostname = self.get_argument("name") + mirror.path = self.get_argument("path", "") + mirror.owner = self.get_argument("owner", None) + mirror.contact = self.get_argument("contact", None) + mirror.supports_https = self.get_argument("supports_https", False) self.redirect("/mirror/%s" % mirror.hostname)