app-MAIL-temp/templates/dashboard/api_key.html

137 lines
4.3 KiB
HTML
Raw Normal View History

{% extends "default.html" %}
2019-11-28 23:14:55 +01:00
{% block title %}API Key{% endblock %}
2019-12-29 10:56:27 +01:00
{% set active_page = "api_key" %}
{% block head %}{% endblock %}
2019-11-28 23:14:55 +01:00
{% block default_content %}
2019-11-28 23:14:55 +01:00
<div class="row">
2020-04-05 19:59:48 +02:00
<div class="col">
<h1 class="h3">API Keys</h1>
<div class="alert alert-info">
When you log in on a SimpleLogin mobile app or browser extension,
a new API Key is automatically created and stored on your device.
It's usually named after the device where it was created, e.g. Samsung S8, John's iPhone, etc.
2021-05-05 18:51:15 +02:00
</div>
<div class="alert alert-danger">
API Keys should be kept secret and treated like passwords, they can be used to gain access to your account.
</div>
<div class="row">
{% for api_key in api_keys %}
<div class="col-12 col-lg-6">
<div class="card">
<div class="card-body">
2021-09-21 11:26:05 +02:00
<h5 class="card-title">{{ api_key.name or "N/A" }}</h5>
<h6 class="card-subtitle mb-2 text-muted">
{% if api_key.last_used %}
Created {{ api_key.created_at | dt }}.
Used {{ api_key.times }} times.
Was last used {{ api_key.last_used | dt }}.
{% else %}
Never used
{% endif %}
</h6>
<div class="input-group">
<input class="form-control"
id="apikey-{{ api_key.id }}"
readonly
value="**********">
</div>
<br />
<div class="row">
<div class="col">
<form method="post">
{{ csrf_form.csrf_token }}
<input type="hidden" name="form-name" value="delete">
<input type="hidden" name="api-key-id" value="{{ api_key.id }}">
<span class="card-link btn btn-link float-right text-danger delete-api-key">Delete</span>
</form>
</div>
</div>
2019-11-28 23:14:55 +01:00
</div>
</div>
</div>
{% endfor %}
</div>
{% if api_keys|length > 0 %}
<form method="post">
{{ csrf_form.csrf_token }}
<input type="hidden" name="form-name" value="delete-all">
<span class="delete btn btn-outline-danger delete-all-api-keys float-right">
Delete All &nbsp; &nbsp; <i class="fe fe-trash"></i>
</span>
</form>
<br />
{% endif %}
<hr />
2019-11-28 23:14:55 +01:00
<form method="post">
{{ csrf_form.csrf_token }}
2019-11-28 23:14:55 +01:00
<input type="hidden" name="form-name" value="create">
2020-05-27 19:23:33 +02:00
<h2 class="h4">New API Key</h2>
{{ new_api_key_form.name(class="form-control", placeholder="Chrome") }}
2019-11-28 23:14:55 +01:00
{{ 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>
2021-05-05 18:51:15 +02:00
<button class="btn btn-success mt-2">Create</button>
2019-11-28 23:14:55 +01:00
</form>
</div>
</div>
{% endblock %}
{% block script %}
2019-11-28 23:14:55 +01:00
<script>
$(".delete-api-key").on("click", function (e) {
2020-04-30 22:37:39 +02:00
let that = $(this);
bootbox.confirm({
message: "If this API Key is currently in use, you might need to login again on the corresponding device, please confirm.",
2020-04-30 22:37:39 +02:00
buttons: {
confirm: {
label: 'Yes, delete it',
className: 'btn-danger'
},
cancel: {
label: 'Cancel',
className: 'btn-outline-primary'
}
2019-11-28 23:14:55 +01:00
},
2020-04-30 22:37:39 +02:00
callback: function (result) {
if (result) {
that.closest("form").submit();
}
2019-11-28 23:14:55 +01:00
}
2020-04-30 22:37:39 +02:00
})
2022-01-23 19:38:54 +01:00
});
$(".delete-all-api-keys").on("click", function (e) {
let that = $(this);
2022-01-23 19:38:54 +01:00
bootbox.confirm({
message: "This will delete all API Keys, they will all stop working, are you sure?",
buttons: {
confirm: {
label: 'Delete All',
className: 'btn-danger'
},
cancel: {
label: 'Cancel',
className: 'btn-outline-primary'
}
},
callback: function (result) {
if (result) {
that.closest("form").submit();
}
}
})
2020-02-19 17:45:08 +01:00
});
2019-11-28 23:14:55 +01:00
</script>
2020-05-27 19:23:33 +02:00
{% endblock %}