comparison src/admin/add.txt.luan @ 0:dfc36e7ed22c

init
author Vadim Filimonov <fffilimonov@yandex.ru>
date Thu, 12 May 2022 13:51:59 +0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:dfc36e7ed22c
1 local Luan = require "luan:Luan.luan"
2 local error = Luan.error
3 local Io = require "luan:Io.luan"
4 local Http = require "luan:http/Http.luan"
5 local Shared = require "site:/lib/Shared.luan"
6 local get_user = Shared.get_user or error()
7 local get_raw_config = Shared.get_raw_config or error()
8 local save_raw_config = Shared.save_raw_config or error()
9
10
11 return function()
12 local user = get_user()
13 local repo_name = Http.request.parameters.repo or error "missing repo param"
14 repo_name~="_all" and repo_name~="_private" or error()
15 local mode = Http.request.parameters.mode or error "missing mode param"
16 mode=="public" or mode=="private" or error()
17 Io.stdout = Http.response.text_writer()
18 local raw_config = get_raw_config()
19 local repo = raw_config.repos[repo_name]
20 if repo == nil then
21 raw_config.repos[repo_name] = {
22 mode = mode
23 users = {user}
24 admins = {user}
25 }
26 save_raw_config(raw_config)
27 %>added<%
28 else
29 repo.mode==mode or error "mode mismatch"
30 %>exists<%
31 end
32 end