Removing the allowlist and replacing with admin-generated invite codes
the allowlist functionality originally existed to populate the merveilles forum using pre-authorized domains where merv-adjacent people could be found. this was in the form of 1) the merveilles town mastodon instance, and 2) xxiivv webring denizens.
users of the mastodon instance were encouraged to temporarily put the signup-generated redemption code into their profile information, which would then be scraped. however, mastodon has gone away from providing static html in preference of dynamic, javascript rendered html rendering option 1) obsolete. as the forum is mostly populated now, and there is the possibility to request invites from known admin users, i don't feel like the allowlist functionality has relevancy anymore
wdy @decentral1se, will pmc use this functionality?
a more modular replacement could instead be:
- admins can create invite codes. an invite code is a static string which can be redeemed by users in the registration flow. an invite code may have a pre-specified number of uses.
- pinned threads.
combining these two we can achieve the following: a private and pinned thread that is posted by an admin and, by way of edits, contains the latest invite code could act as a simple member-based invite system.
thoughts welcome :]
From what I remember, we won't be using the allowlist verification, no. We'll go with something like "drop us a mail if you find this interesting" + template of what to send on as the moderation "front line". Then either manually make accounts or yeh, send an invite code for sign up!
Could be handy to just go for a "single manually generated invite code" replace for the verification functionality? And see where it goes from there?
Like the pinned threads idea but seems optional for the core of this issue.
Could be handy to just go for a "single manually generated invite code" replace for the verification functionality? And see where it goes from there?
been thinking more about this. i think i have a simple compromise between my desire to create multi-use invites and the keep-it-simple approach for a single invite.
the idea
the admin view has a new panel / secondary view added, "forum invitations". on this page admins can:
- see a listing of currently generated-unclaimed invites
- generate
xamount of invites, refreshing the page and updating the listing - selectively remove generated invite codes
this is inspired from the bandcamp album redemption codes i've seen floating around on the net, where artists seem to be able to generate X codes and then paste them all in a block. for cerca it could be visualized as:
12b16705-c627-48b0-9834-a9746be05f9a
d77954ed-818a-454b-92cd-2e38867d68e6
67d91664-70e1-41c5-96e5-cba04d4d3141
b966da18-6743-4f67-9474-d1d31530c5f4
85ef11f8-f2f0-42fe-bb5e-05fb002b7850
320fc331-1b7f-458e-97ea-cbc9a0be46d9
3d13ef7d-3e9c-45d3-afab-1c3b60070fb7
35e093a2-fae7-4f08-9957-17465fffada0
b4f53270-83dc-4613-9812-16505d1e9eb5
58ff602e-3615-4c70-bbd0-c41b954d26ac
where each invite is a generated uuid v4 identifier
optionally each displayed code could also have a link beside it invite link which is a link to the sign up page with the the uuid invite code as a query parameter, prefilling the correct field if present. alternatively, a little tool on page that takes an invite code and puts out an invite link.
it might also be interesting to display on the side which admin generated a batch of invites, in case people are generating invites and giving out to their different friend groups -> low-key categorizing of invites. might even be really useful to actually just arbitrarily label a batch of generated invites like "webring invites", "forum user invites" etc. then split the invite code listing up per label
when an invite is redeemed, it is removed from the table tracking invites => won't be visible in the invite listing anymore.
for me this seems to solve, in a simple way, the following use cases:
- "as an admin i want to generate a single invite code"
- "as a forum host, i want forum users to be able to invite others" - generate a batch of codes and give to someone, or dump them in a private thread which could optionally be pinned once that functionality is added
- "as an admin, i want community-only invites" same as the above really; could be displayed in a local-only post on mastodon for instance
Nice!
it might also be interesting to display on the side which admin generated a batch of invites
Does this also tie into the moderation log? "x generated invite codes" or "y was invited via invite code of x" (upon signup?). Not sure if necessary, but something might be nice.
Slightly off-topic, but in the mean time, we've disabled registration and reset password placeholder with the following patch. We make all the accounts on request "out-of-band".
diff --git a/html/login.html b/html/login.html
index 9665415..fd5dae4 100644
--- a/html/login.html
+++ b/html/login.html
@@ -1,10 +1,9 @@
{{ template "head" . }}
<main>
<h1>{{ "Login" | translate | capitalize }}</h1>
- <p>{{ "ForumDescription" | translateWithData | tohtml }} {{ "LoginNoAccount" | translate | tohtml }}</p>
+ <p>{{ "ForumDescription" | translateWithData | tohtml }}</p>
<div style="max-width: 20rem">
{{ template "login-component" . }}
- <p><a href="/reset">{{ "PasswordForgot" | translate }}</a></p>
</div>
{{ if .Data.FailedAttempt }}
<p> {{ "LoginFailure" | translate | tohtml }} </p>
exciting to see patches being made in the wild!!
starting to spec this out fwiw!
lil wip view goin! i think this has pretty much everything a v1 would need