summary refs log tree commit diff homepage
path: root/src/http.cr
diff options
context:
space:
mode:
Diffstat (limited to 'src/http.cr')
-rw-r--r--src/http.cr10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/http.cr b/src/http.cr
index 1d0be13..bfd7bf7 100644
--- a/src/http.cr
+++ b/src/http.cr
@@ -23,6 +23,7 @@ require "uri"
 require "./sqlite"
 require "./xhtml"
 
+HTML_HEADINGS = Set{"applicants", "criteria", "joining", "members"}
 MAX_CONTENT_LENGTH = 4096
 MAX_NICK_LENGTH = 32
 OPENNIC_TLD = Set{".bbs", ".chan", ".cyb", ".dyn", ".epic",
@@ -38,11 +39,9 @@ class Server
     @db = Database.new cfg.db, cfg.opennic_remote, cfg.icann_remote
 
     @opennic_host = URI.parse(cfg.opennic_remote).host
-    @opennic_page = Page.new cfg.opennic_local, cfg.opennic_remote,
-                             cfg.api, @db
+    @opennic_page = Page.new cfg.opennic_local, cfg.opennic_remote, cfg.api, @db
     @opennic_page.write
-    @icann_page = Page.new cfg.icann_local, cfg.icann_remote,
-                           cfg.api, @db
+    @icann_page = Page.new cfg.icann_local, cfg.icann_remote, cfg.api, @db
     @icann_page.write
 
     @server = HTTP::Server.new do |context|
@@ -100,6 +99,9 @@ class Server
         errors["opennic"] = "Must be unique" if opennic == params["opennic"]
         errors["icann"] = "Must be unique" if icann == params["icann"]
       end
+      if HTML_HEADINGS.includes? params["nick"]
+        errors["nick"] = "Reserved names: #{HTML_HEADINGS.join ", "}"
+      end
 
       if errors.empty?
         @db.add_applicant params["nick"], params["opennic"], params["icann"]