44acf70681
Relates to https://github.com/shaarli/Shaarli/issues/324 Added: - Add the `LoginManager` class to manage logins and bans Changed: - Refactor IP ban management - Simplify logic - Avoid using globals, inject dependencies Fixed: - Use `ban_duration` instead of `ban_after` when setting a new ban Signed-off-by: VirtualTam <virtualtam@flibidi.net>
51 lines
1.7 KiB
HTML
51 lines
1.7 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
{include="includes"}
|
|
</head>
|
|
<body>
|
|
{include="page.header"}
|
|
{if="!$user_can_login"}
|
|
<div class="pure-g pure-alert pure-alert-error pure-alert-closable center">
|
|
<div class="pure-u-2-24"></div>
|
|
<div class="pure-u-20-24">
|
|
{'You have been banned after too many failed login attempts. Try again later.'|t}
|
|
</div>
|
|
<div class="pure-u-2-24">
|
|
<i class="fa fa-times pure-alert-close"></i>
|
|
</div>
|
|
</div>
|
|
{else}
|
|
<div class="pure-g">
|
|
<div class="pure-u-lg-1-3 pure-u-1-24"></div>
|
|
<div id="login-form" class="page-form page-form-light pure-u-lg-1-3 pure-u-22-24">
|
|
<form method="post" name="loginform">
|
|
<h2 class="window-title">{'Login'|t}</h2>
|
|
<div>
|
|
<input type="text" name="login" placeholder="{'Username'|t}"
|
|
{if="!empty($username)"}value="{$username}"{/if} class="autofocus" tabindex="20">
|
|
</div>
|
|
<div>
|
|
<input type="password" name="password" placeholder="{'Password'|t}" class="autofocus" tabindex="21">
|
|
</div>
|
|
<div class="remember-me">
|
|
<input type="checkbox" name="longlastingsession" id="longlastingsessionform"
|
|
{if="$remember_user_default"}checked="checked"{/if}
|
|
tabindex="22">
|
|
<label for="longlastingsessionform">{'Remember me'|t}</label>
|
|
</div>
|
|
<div>
|
|
<input type="submit" value="{'Login'|t}" class="bigbutton" tabindex="23">
|
|
</div>
|
|
<input type="hidden" name="token" value="{$token}">
|
|
{if="$returnurl"}<input type="hidden" name="returnurl" value="{$returnurl}">{/if}
|
|
</form>
|
|
</div>
|
|
<div class="pure-u-lg-1-3 pure-u-1-8"></div>
|
|
</div>
|
|
{/if}
|
|
|
|
{include="page.footer"}
|
|
</body>
|
|
</html>
|
|
|