mirror of
https://github.com/simple-login/app.git
synced 2024-09-30 05:31:30 +02:00
commit
1e00ea300a
@ -11,8 +11,8 @@
|
|||||||
<div class="card-body p-6">
|
<div class="card-body p-6">
|
||||||
|
|
||||||
<div class="mb-2">
|
<div class="mb-2">
|
||||||
Your account is protected with multi-factor authentication (MFA). <br><br>
|
Your account is protected with Two Factor Authentication. <br><br>
|
||||||
To continue with the sign-in you need to provide the access code from your authenticator.
|
You will need to enter your 2FA authentication code.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form method="post">
|
<form method="post">
|
||||||
@ -20,9 +20,7 @@
|
|||||||
<input type="hidden" name="form-name" value="create">
|
<input type="hidden" name="form-name" value="create">
|
||||||
|
|
||||||
<div class="font-weight-bold mt-5">Token</div>
|
<div class="font-weight-bold mt-5">Token</div>
|
||||||
<div class="small-text mb-3">Please enter the 6-digit number displayed in your MFA application
|
<div class="small-text mb-3">Please enter the 2FA code from your 2FA authenticator</div>
|
||||||
(Google Authenticator, Authy, MyDigiPassword, etc) here
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{ otp_token_form.token(class="form-control", autofocus="true") }}
|
{{ otp_token_form.token(class="form-control", autofocus="true") }}
|
||||||
{{ render_field_errors(otp_token_form.token) }}
|
{{ render_field_errors(otp_token_form.token) }}
|
||||||
@ -32,7 +30,7 @@
|
|||||||
{{ otp_token_form.remember.description }}
|
{{ otp_token_form.remember.description }}
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<button class="btn btn-success mt-2">Validate</button>
|
<button class="btn btn-success mt-2">Submit</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
{% if enable_fido %}
|
{% if enable_fido %}
|
||||||
@ -45,8 +43,8 @@
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
<div class="mt-5">
|
<div class="mt-5">
|
||||||
If you have troubles with your authentication app, you can use the recovery code to login. <br>
|
If you cannot access your authenticator application you can instead use a recovery code. <br>
|
||||||
<a href="{{ url_for('auth.recovery_route', next=next_url) }}">Use Recovery Codes</a>
|
<a href="{{ url_for('auth.recovery_route', next=next_url) }}">Use Recovery Code</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,25 +15,22 @@
|
|||||||
<h1 class="h3"> API Key
|
<h1 class="h3"> API Key
|
||||||
<a class="ml-3 text-info" style="font-size: 12px" data-toggle="collapse" href="#howtouse" role="button"
|
<a class="ml-3 text-info" style="font-size: 12px" data-toggle="collapse" href="#howtouse" role="button"
|
||||||
aria-expanded="false" aria-controls="collapseExample">
|
aria-expanded="false" aria-controls="collapseExample">
|
||||||
How to use <i class="fe fe-chevrons-down"></i>
|
What is this? <i class="fe fe-chevrons-down"></i>
|
||||||
</a>
|
</a>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<div class="alert alert-primary collapse" id="howtouse" role="alert">
|
<div class="alert alert-primary collapse" id="howtouse" role="alert">
|
||||||
The API Key is used on the SimpleLogin Chrome/Firefox/Safari extension. <br>
|
An API key is used by the SimpleLogin browser extensions.
|
||||||
You can install the Chrome extension on
|
<br><br>You can install the official SimpleLogin browser extensions through the following links:
|
||||||
<a href="https://chrome.google.com/webstore/detail/simplelogin-extension/dphilobhebphkdjbpfohgikllaljmgbn"
|
<a href="https://chrome.google.com/webstore/detail/simplelogin-extension/dphilobhebphkdjbpfohgikllaljmgbn"
|
||||||
target="_blank">Chrome Store<i class="fe fe-external-link"></i></a>,
|
target="_blank">Chrome<i class="fe fe-external-link"></i></a>,
|
||||||
Firefox add-on on <a href="https://addons.mozilla.org/en-GB/firefox/addon/simplelogin/"
|
<a href="https://addons.mozilla.org/en-GB/firefox/addon/simplelogin/"
|
||||||
target="_blank">Firefox<i
|
target="_blank">Firefox<i class="fe fe-external-link"></i></a> &
|
||||||
class="fe fe-external-link"></i></a>
|
<a href="https://apps.apple.com/us/app/simplelogin/id1494051017?mt=12&fbclid=IwAR0M0nnEKgoieMkmx91TSXrtcScj7GouqRxGgXeJz2un_5ydhIKlbAI79Io"
|
||||||
and Safari extension on <a
|
target="_blank">Safari<i class="fe fe-external-link"></i></a>
|
||||||
href="https://apps.apple.com/us/app/simplelogin/id1494051017?mt=12&fbclid=IwAR0M0nnEKgoieMkmx91TSXrtcScj7GouqRxGgXeJz2un_5ydhIKlbAI79Io"
|
|
||||||
target="_blank">AppStore<i class="fe fe-external-link"></i></a>
|
|
||||||
<br>
|
<br>
|
||||||
Please copy and paste the API key below into the extension to get started. <br>
|
|
||||||
<span class="text-danger">
|
<span class="text-danger">
|
||||||
⚠️Your API Keys are secret and should be treated as passwords.
|
⚠️API Keys should be kept secret and treated like passwords, they can be used to gain access to your account.
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -93,9 +90,9 @@
|
|||||||
<form method="post">
|
<form method="post">
|
||||||
{{ new_api_key_form.csrf_token }}
|
{{ new_api_key_form.csrf_token }}
|
||||||
<input type="hidden" name="form-name" value="create">
|
<input type="hidden" name="form-name" value="create">
|
||||||
<h2 class="h4">New Api Key</h2>
|
<h2 class="h4">New API Key</h2>
|
||||||
|
|
||||||
{{ new_api_key_form.name(class="form-control", placeholder="Chrome, Firefox") }}
|
{{ new_api_key_form.name(class="form-control", placeholder="Chrome") }}
|
||||||
{{ render_field_errors(new_api_key_form.name) }}
|
{{ render_field_errors(new_api_key_form.name) }}
|
||||||
<div class="small-text">Name of the api key, e.g. where it will be used.</div>
|
<div class="small-text">Name of the api key, e.g. where it will be used.</div>
|
||||||
|
|
||||||
|
@ -32,11 +32,11 @@
|
|||||||
id="prefix"
|
id="prefix"
|
||||||
type="text"
|
type="text"
|
||||||
pattern="[0-9a-z-_]{1,}"
|
pattern="[0-9a-z-_]{1,}"
|
||||||
title="Only lowercase letter, number, dash (-), underscore (_) can be used in alias prefix."
|
title="Only lowercase letters, numbers, dashes (-) and underscores (_) are currently supported."
|
||||||
placeholder="email alias, for example newsletter-123_xyz"
|
placeholder="Email alias, for example newsletter-123_xyz"
|
||||||
autofocus required>
|
autofocus required>
|
||||||
<div class="small-text">
|
<div class="small-text">
|
||||||
Only lowercase letter, number, dash (-), underscore (_) can be used.
|
Only lowercase letters, numbers, dashes (-) and underscores (_) are currently supported.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -78,7 +78,7 @@
|
|||||||
<textarea name="note"
|
<textarea name="note"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
rows="3"
|
rows="3"
|
||||||
placeholder="Note, can be anything to help you remember WHY you create this alias. This field is optional."></textarea>
|
placeholder="Note, can be anything to help you remember why you created this alias. This field is optional."></textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -14,21 +14,19 @@
|
|||||||
<h1 class="h3"> Custom Domains
|
<h1 class="h3"> Custom Domains
|
||||||
<a class="ml-3 text-info" style="font-size: 12px" data-toggle="collapse" href="#howtouse" role="button"
|
<a class="ml-3 text-info" style="font-size: 12px" data-toggle="collapse" href="#howtouse" role="button"
|
||||||
aria-expanded="false" aria-controls="collapseExample">
|
aria-expanded="false" aria-controls="collapseExample">
|
||||||
How to use <i class="fe fe-chevrons-down"></i>
|
What is this? <i class="fe fe-chevrons-down"></i>
|
||||||
</a>
|
</a>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
{% if not current_user.is_premium() %}
|
{% if not current_user.is_premium() %}
|
||||||
<div class="alert alert-danger" role="alert">
|
<div class="alert alert-danger" role="alert">
|
||||||
This feature is only available in premium plan.
|
This feature is only available for Premium users. <a href="https://app.simplelogin.io/dashboard/pricing" target="_blank">Upgrade<i class="fe fe-external-link"></i></a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="alert alert-primary collapse" id="howtouse" role="alert">
|
<div class="alert alert-primary collapse" id="howtouse" role="alert">
|
||||||
If you own a domain, let's say <b>example.com</b>, you will be able to create aliases with this domain, for
|
Here you can add your own domain, you can then add custom aliases using it.
|
||||||
example
|
Catch-all domains can also be setup to create new aliases on the fly.
|
||||||
contact@example.com, help@example.com, etc with SimpleLogin. <br>
|
|
||||||
You could also enable <b>catch-all</b> feature that allows you to create aliases on-the-fly.
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
@ -102,7 +102,7 @@
|
|||||||
{{ render_field_errors(new_dir_form.name) }}
|
{{ render_field_errors(new_dir_form.name) }}
|
||||||
<div class="small-text">
|
<div class="small-text">
|
||||||
Directory name must be at least 3 characters.
|
Directory name must be at least 3 characters.
|
||||||
Only lowercase letter, number, dash (-), underscore (_) can be used.
|
Only lowercase letters, numbers, dashes (-) and underscores (_) are currently supported.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button class="btn btn-lg btn-success mt-2">Create</button>
|
<button class="btn btn-lg btn-success mt-2">Create</button>
|
||||||
|
@ -8,21 +8,20 @@
|
|||||||
{% block default_content %}
|
{% block default_content %}
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h1 class="h2">Multi Factor Authentication</h1>
|
<h1 class="h2">Two Factor Authentication</h1>
|
||||||
<p>
|
<p>
|
||||||
To cancel MFA, please enter the 6-digit number in your TOTP application
|
To remove 2FA please enter your 2FA code from the authenticator app.
|
||||||
(Google Authenticator, Authy, MyDigiPassword, etc) here.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<form method="post">
|
<form method="post">
|
||||||
{{ otp_token_form.csrf_token }}
|
{{ otp_token_form.csrf_token }}
|
||||||
|
|
||||||
<div class="font-weight-bold mt-5">Token</div>
|
<div class="font-weight-bold mt-5">Token</div>
|
||||||
<div class="small-text">The 6-digit number displayed on your phone.</div>
|
<div class="small-text">The 6-digit 2FA code.</div>
|
||||||
|
|
||||||
{{ otp_token_form.token(class="form-control", autofocus="true") }}
|
{{ otp_token_form.token(class="form-control", autofocus="true") }}
|
||||||
{{ render_field_errors(otp_token_form.token) }}
|
{{ render_field_errors(otp_token_form.token) }}
|
||||||
<button class="btn btn-lg btn-danger mt-2">Cancel MFA</button>
|
<button class="btn btn-lg btn-danger mt-2">Remove 2FA</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -11,9 +11,8 @@
|
|||||||
{% block default_content %}
|
{% block default_content %}
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h1 class="h3">Multi Factor Authentication</h1>
|
<h1 class="h3">Two Factor Authentication</h1>
|
||||||
<p>Please open a TOTP application (Google Authenticator, Authy, MyDigiPassword, etc)
|
<p>You will need to use a 2FA application like Google Authenticator or Authy on your phone or PC and scan the following QR Code:
|
||||||
on your smartphone and scan the following QR Code:
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<canvas id="qr"></canvas>
|
<canvas id="qr"></canvas>
|
||||||
@ -28,7 +27,7 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="mt-3 mb-2">
|
<div class="mt-3 mb-2">
|
||||||
Or you can use the manual entry with the following key:
|
Or you can manually enter the following secret key:
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<input class="form-control" disabled value="{{ current_user.otp_secret }}">
|
<input class="form-control" disabled value="{{ current_user.otp_secret }}">
|
||||||
@ -38,11 +37,11 @@
|
|||||||
{{ otp_token_form.csrf_token }}
|
{{ otp_token_form.csrf_token }}
|
||||||
|
|
||||||
<div class="font-weight-bold mt-5">Token</div>
|
<div class="font-weight-bold mt-5">Token</div>
|
||||||
<div class="small-text">Please enter the 6-digit number displayed on your phone.</div>
|
<div class="small-text">Please enter the 6-digit number displayed in your authenticator app.</div>
|
||||||
|
|
||||||
{{ otp_token_form.token(class="form-control", placeholder="") }}
|
{{ otp_token_form.token(class="form-control", placeholder="") }}
|
||||||
{{ render_field_errors(otp_token_form.token) }}
|
{{ render_field_errors(otp_token_form.token) }}
|
||||||
<button class="btn btn-lg btn-success mt-2">Validate</button>
|
<button class="btn btn-lg btn-success mt-2">Submit</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -25,12 +25,13 @@
|
|||||||
<div class="h3">Premium</div>
|
<div class="h3">Premium</div>
|
||||||
|
|
||||||
<ul class="list-unstyled leading-loose mb-3">
|
<ul class="list-unstyled leading-loose mb-3">
|
||||||
<li><i class="fe fe-check text-success mr-2" aria-hidden="true"></i> Unlimited alias</li>
|
<li><i class="fe fe-check text-success mr-2" aria-hidden="true"></i>
|
||||||
|
Unlimited aliases</li>
|
||||||
<li><i class="fe fe-check text-success mr-2" aria-hidden="true"></i>
|
<li><i class="fe fe-check text-success mr-2" aria-hidden="true"></i>
|
||||||
Unlimited custom domains
|
Unlimited custom domains
|
||||||
</li>
|
</li>
|
||||||
<li><i class="fe fe-check text-success mr-2" aria-hidden="true"></i>
|
<li><i class="fe fe-check text-success mr-2" aria-hidden="true"></i>
|
||||||
Catch-all (or wildcard) alias
|
Catch-all (or wildcard) aliases
|
||||||
</li>
|
</li>
|
||||||
<li><i class="fe fe-check text-success mr-2" aria-hidden="true"></i>
|
<li><i class="fe fe-check text-success mr-2" aria-hidden="true"></i>
|
||||||
Up to 50 directories (or usernames)
|
Up to 50 directories (or usernames)
|
||||||
@ -43,7 +44,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="small-text">More info on our <a href="https://simplelogin.io/pricing" target="_blank">Pricing
|
<div class="small-text">More information is available on our <a href="https://simplelogin.io/pricing" target="_blank">Pricing
|
||||||
Page <i class="fe fe-external-link"></i>
|
Page <i class="fe fe-external-link"></i>
|
||||||
</a></div>
|
</a></div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -9,8 +9,8 @@
|
|||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h1 class="h3">Recovery codes</h1>
|
<h1 class="h3">Recovery codes</h1>
|
||||||
<p>
|
<p>
|
||||||
If you lose access to your authentication device, you can use one of these backup codes to login to your
|
In the event you lose access to your authenticator app you can use one of these recovery codes to gain access to your account again.
|
||||||
account. Each code may be used only once. Make a copy of these codes, and store it somewhere safe.
|
Each code can only be used once, make sure to store them in a safe place.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
@ -32,7 +32,7 @@
|
|||||||
<input type="submit" class="btn btn-outline-primary" value="Generate New Codes">
|
<input type="submit" class="btn btn-outline-primary" value="Generate New Codes">
|
||||||
</form>
|
</form>
|
||||||
<div class="small-text">
|
<div class="small-text">
|
||||||
Beware: Generating new codes invalidates all the previous ones, make sure to write down the new ones!
|
Warning: Generating new codes will invalidate the older ones.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -104,10 +104,9 @@
|
|||||||
|
|
||||||
<div class="card" id="totp">
|
<div class="card" id="totp">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="card-title">One-Time Password (TOTP)</div>
|
<div class="card-title">Two Factor Authentication</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
Secure your account with One-Time Password. <br>
|
Secure your account with 2FA, you'll be asked for a code generated through an app when you login. <br>
|
||||||
This requires having applications like Google Authenticator, Authy, MyDigiPassword, etc.
|
|
||||||
</div>
|
</div>
|
||||||
{% if not current_user.enable_otp %}
|
{% if not current_user.enable_otp %}
|
||||||
<a href="{{ url_for('dashboard.mfa_setup') }}" class="btn btn-outline-primary">Setup TOTP</a>
|
<a href="{{ url_for('dashboard.mfa_setup') }}" class="btn btn-outline-primary">Setup TOTP</a>
|
||||||
@ -124,7 +123,7 @@
|
|||||||
Change password
|
Change password
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
You will receive an email containing instructions on how to change password.
|
You will receive an email containing instructions on how to change your password.
|
||||||
</div>
|
</div>
|
||||||
<form method="post">
|
<form method="post">
|
||||||
<input type="hidden" name="form-name" value="change-password">
|
<input type="hidden" name="form-name" value="change-password">
|
||||||
@ -136,7 +135,7 @@
|
|||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="card-title">Random Alias</div>
|
<div class="card-title">Random Alias</div>
|
||||||
<div class="mb-3">Choose how to create your email alias by default</div>
|
<div class="mb-3">Change the way random aliases are generated by default.</div>
|
||||||
<form method="post" class="form-inline">
|
<form method="post" class="form-inline">
|
||||||
<input type="hidden" name="form-name" value="change-alias-generator">
|
<input type="hidden" name="form-name" value="change-alias-generator">
|
||||||
<select class="form-control mr-sm-2" name="alias-generator-scheme">
|
<select class="form-control mr-sm-2" name="alias-generator-scheme">
|
||||||
@ -147,7 +146,7 @@
|
|||||||
{% if current_user.alias_generator == AliasGeneratorEnum.uuid.value %} selected {% endif %} >Based
|
{% if current_user.alias_generator == AliasGeneratorEnum.uuid.value %} selected {% endif %} >Based
|
||||||
on {{ AliasGeneratorEnum.uuid.name.upper() }}</option>
|
on {{ AliasGeneratorEnum.uuid.name.upper() }}</option>
|
||||||
</select>
|
</select>
|
||||||
<button class="btn btn-outline-primary">Update Preference</button>
|
<button class="btn btn-outline-primary">Update</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -156,15 +155,14 @@
|
|||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="card-title">Newsletters</div>
|
<div class="card-title">Newsletters</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
Every now and then we can send you an email
|
We will occasionally send you emails with new feature announcements.
|
||||||
to let you know about a new feature that might be useful to you.
|
|
||||||
</div>
|
</div>
|
||||||
<form method="post">
|
<form method="post">
|
||||||
<input type="hidden" name="form-name" value="notification-preference">
|
<input type="hidden" name="form-name" value="notification-preference">
|
||||||
<div class="form-check">
|
<div class="form-check">
|
||||||
<input type="checkbox" id="notification" name="notification" {% if current_user.notification %}
|
<input type="checkbox" id="notification" name="notification" {% if current_user.notification %}
|
||||||
checked {% endif %} class="form-check-input">
|
checked {% endif %} class="form-check-input">
|
||||||
<label for="notification">I want to be informed of new features</label>
|
<label for="notification">I want to be emailed when new features are released.</label>
|
||||||
</div>
|
</div>
|
||||||
<button type="submit" class="btn btn-outline-primary">Submit</button>
|
<button type="submit" class="btn btn-outline-primary">Submit</button>
|
||||||
</form>
|
</form>
|
||||||
@ -181,22 +179,22 @@
|
|||||||
Manage Subscription
|
Manage Subscription
|
||||||
</a>
|
</a>
|
||||||
{% elif manual_sub %}
|
{% elif manual_sub %}
|
||||||
You are on the Premium plan. The plan ends {{ manual_sub.end_at | dt }}
|
You are on the Premium plan which expires {{ manual_sub.end_at | dt }}
|
||||||
({{ manual_sub.end_at.format("YYYY-MM-DD") }}).
|
({{ manual_sub.end_at.format("YYYY-MM-DD") }}).
|
||||||
{% if manual_sub.is_giveaway %}
|
{% if manual_sub.is_giveaway %}
|
||||||
<br>
|
<br>
|
||||||
To support SimpleLogin it's possible to change to a paid plan. <br>
|
To gain additional features and support Simple Login you can upgrade to a Premium plan. <br>
|
||||||
<a href="{{ url_for('dashboard.pricing') }}" class="btn btn-sm btn-outline-primary">Upgrade</a>
|
<a href="{{ url_for('dashboard.pricing') }}" class="btn btn-sm btn-outline-primary">Upgrade</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% elif current_user.lifetime %}
|
{% elif current_user.lifetime %}
|
||||||
You have the lifetime licence.
|
You have lifetime access to the Premium plan.
|
||||||
{% if not current_user.paid_lifetime %}
|
{% if not current_user.paid_lifetime %}
|
||||||
<br>
|
<br>
|
||||||
To support SimpleLogin it's possible to change to a paid plan. <br>
|
To support Simple Login you can switch to a paid plan. <br>
|
||||||
<a href="{{ url_for('dashboard.pricing') }}" class="btn btn-sm btn-outline-primary">Upgrade</a>
|
<a href="{{ url_for('dashboard.pricing') }}" class="btn btn-sm btn-outline-primary">Upgrade</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% elif current_user.in_trial() %}
|
{% elif current_user.in_trial() %}
|
||||||
You are in the trial period. The trial ends {{ current_user.trial_end | dt }}.
|
Your Premium trial expires {{ current_user.trial_end | dt }}.
|
||||||
{% else %}
|
{% else %}
|
||||||
You are on the Free plan.
|
You are on the Free plan.
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -98,7 +98,7 @@
|
|||||||
<input name="prefix" class="form-control"
|
<input name="prefix" class="form-control"
|
||||||
type="text"
|
type="text"
|
||||||
pattern="[0-9a-z-_]{1,}"
|
pattern="[0-9a-z-_]{1,}"
|
||||||
title="Only lowercase letter, number, dash (-), underscore (_) can be used in alias prefix."
|
title="Only lowercase letters, numbers, dashes (-) and underscores (_) are currently supported."
|
||||||
placeholder="email alias"
|
placeholder="email alias"
|
||||||
autofocus>
|
autofocus>
|
||||||
</div>
|
</div>
|
||||||
|
@ -12,10 +12,10 @@
|
|||||||
Feature Requests <i class="fe fe-external-link"></i>
|
Feature Requests <i class="fe fe-external-link"></i>
|
||||||
</a></li>
|
</a></li>
|
||||||
<li class="list-inline-item"><a href="https://docs.simplelogin.io" target="_blank">
|
<li class="list-inline-item"><a href="https://docs.simplelogin.io" target="_blank">
|
||||||
Dev Documentation <i class="fe fe-external-link"></i>
|
Developer Documentation <i class="fe fe-external-link"></i>
|
||||||
</a></li>
|
</a></li>
|
||||||
<li class="list-inline-item"><a href="https://status.simplelogin.io" target="_blank">
|
<li class="list-inline-item"><a href="https://status.simplelogin.io" target="_blank">
|
||||||
Uptime <i class="fe fe-external-link"></i>
|
Status <i class="fe fe-external-link"></i>
|
||||||
</a></li>
|
</a></li>
|
||||||
<li class="list-inline-item"><a href="mailto:hi@simplelogin.io">Contact Us
|
<li class="list-inline-item"><a href="mailto:hi@simplelogin.io">Contact Us
|
||||||
<i class="fe fe-external-link"></i></a></li>
|
<i class="fe fe-external-link"></i></a></li>
|
||||||
|
@ -62,9 +62,9 @@
|
|||||||
</span>
|
</span>
|
||||||
|
|
||||||
{% if current_user.in_trial() %}
|
{% if current_user.in_trial() %}
|
||||||
<small class="text-success d-block mt-1">Premium ends {{ current_user.trial_end|dt }}
|
<small class="text-success d-block mt-1">Premium expires {{ current_user.trial_end|dt }}
|
||||||
<i class="fe fe-info" data-toggle="tooltip"
|
<i class="fe fe-info" data-toggle="tooltip"
|
||||||
title="When you signed up, your account is upgraded to the premium plan for 7 days (the trial period). After this period, your account will come back to the free plan"></i>
|
title="After you signed up you were given a free 7 day Premium trial, after this period your account will automatically be downgraded to the Free plan."></i>
|
||||||
</small>
|
</small>
|
||||||
{% elif current_user.is_premium() %}
|
{% elif current_user.is_premium() %}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user