start work on invite keys
This commit is contained in:
@@ -20,12 +20,12 @@
|
||||
{%- if thread_count > 0 -%}
|
||||
<details class="inner" data-id="{{collection.id}}" data-r="restoreThreadDetails setThreadDetails" data-s="setThreadDetails">
|
||||
<summary class="plank no-shadow even">Threads</summary>
|
||||
<table class="three-cols">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="plank even no-shadow contrast-bg">Title</th>
|
||||
<th class="plank even no-shadow contrast-bg">Memo</th>
|
||||
<th class="plank even no-shadow contrast-bg">Manage</th>
|
||||
<th class="plank even no-shadow contrast-bg" style="--w:65%">Title</th>
|
||||
<th class="plank even no-shadow contrast-bg" style="--w:25%">Memo</th>
|
||||
<th class="plank even no-shadow contrast-bg" style="--w:10%">Manage</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{%- from 'common/macros.html' import babycode_editor_component -%}
|
||||
{%- from 'common/macros.html' import subheader, avatar -%}
|
||||
{%- from 'common/macros.html' import subheader, avatar, timestamp -%}
|
||||
{%- extends 'base.html' -%}
|
||||
{%- block title -%}settings{%- endblock -%}
|
||||
{%- block content -%}
|
||||
@@ -76,6 +76,45 @@
|
||||
<div>Loading badges…</div>
|
||||
<div>If badges fail to load, make sure JS is enabled.</div>
|
||||
</fieldset>
|
||||
{%- if user.can_invite() -%}
|
||||
<fieldset class="plank" id="invite">
|
||||
<legend>Invite keys</legend>
|
||||
<p>To manage growth, {{ config.SITE_NAME }} disallows direct sign ups. Instead, users already with an account may invite people they know. You can create invite links here.</p>
|
||||
<p>Invite links are valid for 48 hours. Once an invite link is used to sign up, it can no longer be used.</p>
|
||||
<form method="POST" action="{{url_for('users.create_invite_key', username=user.username)}}">
|
||||
{{ csrf_input() | safe }}
|
||||
<input type="submit" value="Create new invite">
|
||||
</form>
|
||||
{%- if invites -%}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="plank even no-shadow contrast-bg" style="--w: 50%;">Link</th>
|
||||
<th class="plank even no-shadow contrast-bg" style="--w: 30%;">Expires</th>
|
||||
<th class="plank even no-shadow contrast-bg" style="--w: 20%;">Revoke</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{%- for invite in invites -%}
|
||||
<tr>
|
||||
<td class="plank even no-shadow minimal"><a href="{{url_for('users.sign_up', key=invite.key)}}">Copy this</a></td>
|
||||
<td class="plank even no-shadow minimal">{{timestamp(invite.expires_at)}}</td>
|
||||
<td class="plank even no-shadow minimal center">
|
||||
<form method="POST" action="{{url_for('users.revoke_invite_key', username=user.username)}}">
|
||||
{{ csrf_input() | safe }}
|
||||
<input type="hidden" name="key" value="{{invite.key}}">
|
||||
<input type="submit" class="warn" value="Revoke">
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
{%- endfor -%}
|
||||
</tbody>
|
||||
</table>
|
||||
{%- else -%}
|
||||
<p>You do not have any invites pending activation.</p>
|
||||
{%- endif -%}
|
||||
</fieldset>
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
<fieldset class="plank">
|
||||
<legend>Disown & Delete account</legend>
|
||||
|
||||
@@ -4,13 +4,22 @@
|
||||
{%- block title -%}sign up{%- endblock -%}
|
||||
{%- block content -%}
|
||||
{%- set welcome -%}
|
||||
Please read the rules etc. stub
|
||||
<p>Please read the rules etc. stub</p>
|
||||
{%- if not inviter -%}
|
||||
<p>After you sign up, a moderator will need to confirm your account before you will be allowed to post.
|
||||
{%- else -%}
|
||||
You have been invited by <a href="{{url_for('users.user_page', username=inviter.username)}}">{{inviter.get_readable_name()}}</a> to join {{config.SITE_NAME}}. Create an identity below.
|
||||
{%- endif -%}
|
||||
</p>
|
||||
{%- endset -%}
|
||||
{{ subheader('Sign up', welcome)}}
|
||||
{%- if request.args.get('error') -%}
|
||||
{{infobox(request.args.error, InfoboxKind.ERROR)}}
|
||||
{%- endif -%}
|
||||
<form class="plank primary-bg full-width" method="POST">
|
||||
{%- if invite -%}
|
||||
<input type="hidden" name="key" value="{{invite.key}}">
|
||||
{%- endif -%}
|
||||
<label for="username">Username</label>
|
||||
<input type="text" id="username" name="username" pattern="[a-zA-Z0-9_\-]{3,24}" title="3-24 characters. Only upper and lowercase letters, digits, hyphens, and underscores" autocomplete="username" required>
|
||||
<label for="password">Create password</label>
|
||||
@@ -18,6 +27,6 @@ Please read the rules etc. stub
|
||||
<label for="password2">Confirm password</label>
|
||||
<input type="password" id="password2" name="password" pattern="(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W_])(?!.*\s).{10,255}" title="10+ chars with at least: 1 uppercase, 1 lowercase, 1 number, 1 special char, and no spaces" autocomplete="new-password" required>
|
||||
<span><input type="checkbox" name="remember" id="remember"> <label for="remember">Remember me</label></span>
|
||||
<input type="submit" value="Sign up">
|
||||
<input type="submit" value="Sign up" class="alt">
|
||||
</form>
|
||||
{%- endblock -%}
|
||||
|
||||
Reference in New Issue
Block a user