Mercurial Hosting > hghosting
comparison src/admin/add.html.luan @ 10:a7187a447835
restrict repo names
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 12 Jul 2022 19:40:50 -0600 |
parents | a09d8bcdc0f9 |
children | b14073ab9d07 |
comparison
equal
deleted
inserted
replaced
9:338ab58d91f2 | 10:a7187a447835 |
---|---|
1 local Luan = require "luan:Luan.luan" | 1 local Luan = require "luan:Luan.luan" |
2 local error = Luan.error | 2 local error = Luan.error |
3 local String = require "luan:String.luan" | 3 local String = require "luan:String.luan" |
4 local to_lower = String.lower or error() | 4 local matches = String.matches or error() |
5 local Io = require "luan:Io.luan" | 5 local Io = require "luan:Io.luan" |
6 local Http = require "luan:http/Http.luan" | 6 local Http = require "luan:http/Http.luan" |
7 local Shared = require "site:/lib/Shared.luan" | 7 local Shared = require "site:/lib/Shared.luan" |
8 local head = Shared.head or error() | 8 local head = Shared.head or error() |
9 local header = Shared.admin_header or error() | 9 local header = Shared.admin_header or error() |
14 | 14 |
15 | 15 |
16 local function handle() | 16 local function handle() |
17 local user = get_user() | 17 local user = get_user() |
18 local repo_name = Http.request.parameters.repo or error() | 18 local repo_name = Http.request.parameters.repo or error() |
19 repo_name = to_lower(repo_name) | 19 matches( repo_name, "^[a-z0-9_][a-z0-9_-]*$" ) or error "invalid regex name" |
20 if repo_name=="_all" or repo_name=="_private" then | 20 if repo_name=="_all" or repo_name=="_private" then |
21 return [[<p error>Invalid rep name</p>]] | 21 return [[<p error>Invalid rep name</p>]] |
22 end | 22 end |
23 local raw_config = get_raw_config() | 23 local raw_config = get_raw_config() |
24 if raw_config.repos[repo_name] ~= nil then | 24 if raw_config.repos[repo_name] ~= nil then |