forked from 4ducky/4ducky
Same design, layout, URLs and features as the PHP version: browse grid, image view with AJAX comments, BBCode, likes, uploads (file, URL and bookmarklet), quicktagger, profile, block list, inbox, invites, Hall of Ducks, Truhe, abuse reports and the admin tools. - Parameterized SQL, escaped templates (askama), argon2 passwords, server-side sessions, CSRF tokens on every write, strict script CSP - SSRF-safe remote image fetching, magic-byte upload checks - Self-hosted captcha replaces reCAPTCHA v1; analytics/social widgets removed - Vanilla JS replaces jQuery and its plugins with the same DOM behaviour - Reverse proxy support (frontend_path, trust_proxy, secure_cookies) - Admin CLI: admin, settings, invites See README.md for running it and the full list of changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
48 lines
1.0 KiB
HTML
48 lines
1.0 KiB
HTML
{% include "header.html" %}
|
|
<div align="center">
|
|
<form action="/login" method="post">
|
|
<input type="hidden" name="_csrf" value="{{ l.csrf }}"/>
|
|
<fieldset>
|
|
<legend>Login</legend>
|
|
|
|
{%- if wrong_login %}
|
|
<div class="warn">
|
|
Wrong user or password!
|
|
</div>
|
|
{%- endif %}
|
|
{%- if let Some(reason) = banned %}
|
|
<div class="warn">
|
|
Account banned!<br /> {% if reason.len() > 2 %}Grund: {{ reason }}{% endif %}
|
|
</div>
|
|
{%- endif %}
|
|
|
|
|
|
<dl class="form">
|
|
<dt>Name:</dt>
|
|
<dd>
|
|
<input type="text" name="name" value="{{ name }}"/>
|
|
</dd>
|
|
|
|
<dt>Passwort:</dt>
|
|
<dd>
|
|
<input type="password" name="pass" />
|
|
</dd>
|
|
|
|
<dt> </dt>
|
|
<dd>
|
|
<input class="check" type="checkbox" name="remember" id="inputRemember" value="1"/>
|
|
<label for="inputRemember">Remember me!</label>
|
|
</dd>
|
|
|
|
<dt> </dt>
|
|
<dd>
|
|
<input type="submit" class="button login" name="login" value="Login" />
|
|
</dd>
|
|
</dl>
|
|
|
|
Don't have an account yet? <a href="/register">Register!</a>
|
|
</fieldset>
|
|
</form>
|
|
</div>
|
|
{% include "footer.html" %}
|