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