mirror of
https://github.com/eduardogsilva/routerfleet.git
synced 2025-08-04 02:04:49 +02:00
84 lines
No EOL
3.9 KiB
HTML
84 lines
No EOL
3.9 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block content %}
|
|
<div class="container mt-3">
|
|
<div class="card card-primary card-outline">
|
|
<div class="card-header">
|
|
<h3 class="card-title">{{ form.instance.pk|yesno:"Edit User,Create New User" }}</h3>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-4">
|
|
<form method="post">
|
|
{% csrf_token %}
|
|
|
|
<!-- Username -->
|
|
<div class="form-group">
|
|
<label for="{{ form.username.id_for_label }}">Username</label>
|
|
<input type="text" class="form-control" id="{{ form.username.id_for_label }}" name="{{ form.username.html_name }}" placeholder="Enter Username" value="{{ form.username.value|default_if_none:'' }}" {% if form.instance.pk %}readonly{% endif %}>
|
|
</div>
|
|
<!-- Password -->
|
|
<div class="form-group">
|
|
<label for="{{ form.password1.id_for_label }}">Password</label>
|
|
<input type="password" class="form-control" id="{{ form.password1.id_for_label }}" name="{{ form.password1.html_name }}" placeholder="Password">
|
|
</div>
|
|
|
|
<!-- Retype Password -->
|
|
<div class="form-group">
|
|
<label for="{{ form.password2.id_for_label }}">Retype Password</label>
|
|
<input type="password" class="form-control" id="{{ form.password2.id_for_label }}" name="{{ form.password2.html_name }}" placeholder="Retype Password">
|
|
</div>
|
|
<!-- User Level -->
|
|
<div class="form-group">
|
|
<label for="{{ form.user_level.id_for_label }}">{{ form.user_level.label }}</label>
|
|
<select class="form-control" id="{{ form.user_level.id_for_label }}" name="{{ form.user_level.html_name }}">
|
|
{% for value, display in form.user_level.field.choices %}
|
|
<option value="{{ value }}" {% if form.user_level.value|stringformat:"s" == value|stringformat:"s" %}selected{% endif %}>{{ display }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
</div>
|
|
|
|
<div>
|
|
<button type="submit" class="btn btn-primary">Submit</button>
|
|
<a href="/user/list/" class="btn btn-outline-secondary">Back</a>
|
|
{% if user_acl %}<a href='javascript:void(0)' class='btn btn-outline-danger' data-command='delete' onclick='openCommandDialog(this)'>Delete User</a>{% endif %}
|
|
|
|
</div>
|
|
</form>
|
|
</div>
|
|
|
|
|
|
<div class="col-md-8">
|
|
<h5>Viewer</h5>
|
|
<p>This level has view-only access. Users can see queue information and the backup list, but they cannot access backup data or any sensitive information.</p>
|
|
<h5>Backup Operator</h5>
|
|
<p>In addition to the permissions of the Viewer level, users at this level can view host backups and start instant backups.</p>
|
|
<h5>Host Manager</h5>
|
|
<p>Users at this level can configure, add, and remove hosts, and delete backups. They also have all the permissions of the Backup Operator level.</p>
|
|
<h5>Configuration Manager</h5>
|
|
<p>In addition to the permissions of the Host Manager level, users at this level can configure backup profiles, SSH keys, and router groups.</p>
|
|
<h5>Administrator</h5>
|
|
<p>Users at this level have full administrative rights, including all the permissions of the previous levels.</p>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|
|
|
|
|
|
{% block custom_page_scripts %}
|
|
|
|
<script>
|
|
function openCommandDialog(element) {
|
|
var command = element.getAttribute('data-command');
|
|
var confirmation = prompt("Please type '{{ user_acl.user.username }}' to remove this user.");
|
|
if (confirmation) {
|
|
var url = "?uuid={{ user_acl.uuid }}&action=delete&confirmation=" + encodeURIComponent(confirmation);
|
|
window.location.href = url;
|
|
}
|
|
}
|
|
</script>
|
|
|
|
{% endblock %} |