diff options
Diffstat (limited to 'src/http.cr')
-rw-r--r-- | src/http.cr | 10 |
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"] |