Mercurial Hosting > hghost-test
changeset 48:b8065a1a0b50
add admin/add.txt
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 08 May 2022 16:27:26 -0600 |
parents | ca1e8a6f4dca |
children | 89f225eb8601 |
files | src/admin/add.txt.luan |
diffstat | 1 files changed, 32 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/admin/add.txt.luan Sun May 08 16:27:26 2022 -0600 @@ -0,0 +1,32 @@ +local Luan = require "luan:Luan.luan" +local error = Luan.error +local Io = require "luan:Io.luan" +local Http = require "luan:http/Http.luan" +local Shared = require "site:/lib/Shared.luan" +local get_user = Shared.get_user or error() +local get_raw_config = Shared.get_raw_config or error() +local save_raw_config = Shared.save_raw_config or error() + + +return function() + local user = get_user() + local repo_name = Http.request.parameters.repo or error "missing repo param" + repo_name~="_all" and repo_name~="_private" or error() + local mode = Http.request.parameters.mode or error "missing mode param" + mode=="public" or mode=="private" or error() + Io.stdout = Http.response.text_writer() + local raw_config = get_raw_config() + local repo = raw_config.repos[repo_name] + if repo == nil then + raw_config.repos[repo_name] = { + mode = mode + users = {user} + admins = {user} + } + save_raw_config(raw_config) + %>added<% + else + repo.mode==mode or error "mode mismatch" + %>exists<% + end +end