# HG changeset patch
# User Franklin Schmidt
# Date 1652396051 21600
# Node ID 028e74c8889d494f85263f7d473eee8e0565ce27
# Parent e3448053230aad773b22cfdec7dc6bb8c0cdd6d0
add all_users
diff -r e3448053230a -r 028e74c8889d src/admin/index.html.luan
--- a/src/admin/index.html.luan Thu May 12 10:26:43 2022 -0600
+++ b/src/admin/index.html.luan Thu May 12 16:54:11 2022 -0600
@@ -1,6 +1,5 @@
local Luan = require "luan:Luan.luan"
local error = Luan.error
-local pairs = Luan.pairs or error()
local ipairs = Luan.ipairs or error()
local Io = require "luan:Io.luan"
local Http = require "luan:http/Http.luan"
@@ -9,19 +8,8 @@
local header = Shared.admin_header or error()
local get_user = Shared.get_user or error()
local config = Shared.config or error()
-
+local user_repos = Shared.user_repos or error()
-local user_repos = {}
-for _, repo in pairs(config.repos) do
- for user in pairs(repo.users) do
- local repos = user_repos[user]
- if repos == nil then
- repos = {}
- user_repos[user] = repos
- end
- repos[#repos+1] = repo
- end
-end
return function()
local user = get_user()
diff -r e3448053230a -r 028e74c8889d src/lib/Shared.luan
--- a/src/lib/Shared.luan Thu May 12 10:26:43 2022 -0600
+++ b/src/lib/Shared.luan Thu May 12 16:54:11 2022 -0600
@@ -141,6 +141,19 @@
config.private = config.private and list_to_set(config.private)
Shared.config = config
+local user_repos = {}
+for _, repo in pairs(config.repos) do
+ for user in pairs(repo.users) do
+ local repos = user_repos[user]
+ if repos == nil then
+ repos = {}
+ user_repos[user] = repos
+ end
+ repos[#repos+1] = repo
+ end
+end
+Shared.user_repos = user_repos
+
function Shared.get_raw_config()
return deep_copy(raw_config)
end
diff -r e3448053230a -r 028e74c8889d src/private/tools/all_users.html.luan
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/private/tools/all_users.html.luan Thu May 12 16:54:11 2022 -0600
@@ -0,0 +1,52 @@
+local Luan = require "luan:Luan.luan"
+local error = Luan.error
+local pairs = Luan.pairs or error()
+local ipairs = Luan.ipairs or error()
+local Io = require "luan:Io.luan"
+local Http = require "luan:http/Http.luan"
+local Shared = require "site:/lib/Shared.luan"
+local head = Shared.head or error()
+local header = Shared.private_header or error()
+local config = Shared.config or error()
+local user_repos = Shared.user_repos or error()
+
+
+return function()
+ Io.stdout = Http.response.text_writer()
+%>
+
+
+
+<% head() %>
+ Mercurial All Users
+
+
+
+<% header() %>
+
+
All Users
+<% for user in pairs(config.users) do %>
+
+ <%=user%>
+<% local repos = user_repos[user]
+ if repos == nil then %>
+ [] delete user
+<% else %>
+ [
+<% for _, repo in ipairs(repos) do %>
+ <%=repo.name%>
+<% end %>
+ ]
+<% end %>
+
+<% end %>
+
+
+
+<%
+end
diff -r e3448053230a -r 028e74c8889d src/private/tools/backup.html.luan
--- a/src/private/tools/backup.html.luan Thu May 12 10:26:43 2022 -0600
+++ b/src/private/tools/backup.html.luan Thu May 12 16:54:11 2022 -0600
@@ -13,7 +13,7 @@
local get_raw_config = Shared.get_raw_config or error()
local save_raw_config = Shared.save_raw_config or error()
local Logging = require "luan:logging/Logging.luan"
-local logger = Logging.logger "private-users.html"
+local logger = Logging.logger "backup.html"
local function response(content)
diff -r e3448053230a -r 028e74c8889d src/private/tools/delete_user.html.luan
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/private/tools/delete_user.html.luan Thu May 12 16:54:11 2022 -0600
@@ -0,0 +1,41 @@
+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 head = Shared.head or error()
+local header = Shared.private_header or error()
+local config = Shared.config or error()
+local user_repos = Shared.user_repos or error()
+local get_raw_config = Shared.get_raw_config or error()
+local save_raw_config = Shared.save_raw_config or error()
+
+
+local function handle()
+ local user = Http.request.parameters.user or error()
+ user_repos[user] and error "has repos"
+ local raw_config = get_raw_config()
+ raw_config.users[user] = nil
+ save_raw_config(raw_config)
+ return [[User ]]..user..[[ has been deleted
]]
+end
+
+return function()
+ Io.stdout = Http.response.text_writer()
+%>
+
+
+
+<% head() %>
+ Delete Mercurial User
+
+
+<% header() %>
+
+
Delete User
+ <%=handle()%>
+
+
+
+<%
+end
diff -r e3448053230a -r 028e74c8889d src/private/tools/index.html.luan
--- a/src/private/tools/index.html.luan Thu May 12 10:26:43 2022 -0600
+++ b/src/private/tools/index.html.luan Thu May 12 16:54:11 2022 -0600
@@ -20,8 +20,9 @@
<% header() %>
+<% header() %>
+
+
Private Users
+ <%=content%>
+
+
diff -r e3448053230a -r 028e74c8889d src/private/tools/private_users.html.luan
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/private/tools/private_users.html.luan Thu May 12 16:54:11 2022 -0600
@@ -0,0 +1,96 @@
+local Luan = require "luan:Luan.luan"
+local error = Luan.error
+local pairs = Luan.pairs or error()
+local ipairs = Luan.ipairs or error()
+local stringify = Luan.stringify or error()
+local Io = require "luan:Io.luan"
+local Http = require "luan:http/Http.luan"
+local Shared = require "site:/lib/Shared.luan"
+local head = Shared.head or error()
+local header = Shared.private_header or error()
+local text_to_list = Shared.text_to_list or error()
+local config = Shared.config or error()
+local get_raw_config = Shared.get_raw_config or error()
+local save_raw_config = Shared.save_raw_config or error()
+local Logging = require "luan:logging/Logging.luan"
+local logger = Logging.logger "private_users.html"
+
+
+local function response(content)
+%>
+
+
+