2021-01-19 17:55:21 +01:00
|
|
|
<main class="container-xl">
|
2020-05-28 10:42:36 +02:00
|
|
|
<div id="users-block" class="my-3 p-3 bg-white rounded shadow">
|
2020-09-19 22:19:55 +02:00
|
|
|
<h6 class="border-bottom pb-2 mb-3">Registered Users</h6>
|
2020-06-01 18:58:38 +02:00
|
|
|
<div class="table-responsive-xl small">
|
2020-09-19 22:19:55 +02:00
|
|
|
<table id="users-table" class="table table-sm table-striped table-hover">
|
2020-06-01 18:58:38 +02:00
|
|
|
<thead>
|
|
|
|
<tr>
|
2023-01-24 23:31:38 +01:00
|
|
|
<th class="vw-account-details">User</th>
|
2022-12-28 20:05:10 +01:00
|
|
|
<th class="vw-created-at">Created at</th>
|
|
|
|
<th class="vw-last-active">Last Active</th>
|
2023-02-28 20:43:22 +01:00
|
|
|
<th class="vw-ciphers">Ciphers</th>
|
2022-12-28 20:05:10 +01:00
|
|
|
<th class="vw-attachments">Attachments</th>
|
|
|
|
<th class="vw-organizations">Organizations</th>
|
|
|
|
<th class="vw-actions">Actions</th>
|
2020-06-01 18:58:38 +02:00
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
2021-06-19 19:22:19 +02:00
|
|
|
{{#each page_data}}
|
2020-06-01 18:58:38 +02:00
|
|
|
<tr>
|
|
|
|
<td>
|
2022-12-01 17:18:29 +01:00
|
|
|
<svg width="48" height="48" class="float-start me-2 rounded" data-jdenticon-value="{{Email}}">
|
2021-06-19 19:22:19 +02:00
|
|
|
<div class="float-start">
|
2020-09-19 22:19:55 +02:00
|
|
|
<strong>{{Name}}</strong>
|
|
|
|
<span class="d-block">{{Email}}</span>
|
|
|
|
<span class="d-block">
|
2020-11-30 23:12:56 +01:00
|
|
|
{{#unless user_enabled}}
|
2021-06-19 19:22:19 +02:00
|
|
|
<span class="badge bg-danger me-2" title="User is disabled">Disabled</span>
|
2020-11-30 23:12:56 +01:00
|
|
|
{{/unless}}
|
2020-09-19 22:19:55 +02:00
|
|
|
{{#if TwoFactorEnabled}}
|
2021-06-19 19:22:19 +02:00
|
|
|
<span class="badge bg-success me-2" title="2FA is enabled">2FA</span>
|
2020-09-19 22:19:55 +02:00
|
|
|
{{/if}}
|
|
|
|
{{#case _Status 1}}
|
2021-06-19 19:22:19 +02:00
|
|
|
<span class="badge bg-warning me-2" title="User is invited">Invited</span>
|
2020-09-19 22:19:55 +02:00
|
|
|
{{/case}}
|
|
|
|
{{#if EmailVerified}}
|
2021-06-19 19:22:19 +02:00
|
|
|
<span class="badge bg-success me-2" title="Email has been verified">Verified</span>
|
2020-09-19 22:19:55 +02:00
|
|
|
{{/if}}
|
|
|
|
</span>
|
|
|
|
</div>
|
2020-06-01 18:58:38 +02:00
|
|
|
</td>
|
2021-01-19 17:55:21 +01:00
|
|
|
<td>
|
|
|
|
<span class="d-block">{{created_at}}</span>
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<span class="d-block">{{last_active}}</span>
|
|
|
|
</td>
|
2020-06-01 18:58:38 +02:00
|
|
|
<td>
|
|
|
|
<span class="d-block">{{cipher_count}}</span>
|
|
|
|
</td>
|
2020-06-03 17:57:03 +02:00
|
|
|
<td>
|
|
|
|
<span class="d-block"><strong>Amount:</strong> {{attachment_count}}</span>
|
|
|
|
{{#if attachment_count}}
|
|
|
|
<span class="d-block"><strong>Size:</strong> {{attachment_size}}</span>
|
|
|
|
{{/if}}
|
|
|
|
</td>
|
2020-06-01 18:58:38 +02:00
|
|
|
<td>
|
2022-12-28 20:05:10 +01:00
|
|
|
<div class="overflow-auto vw-org-cell" data-vw-user-email="{{jsesc Email no_quote}}" data-vw-user-uuid="{{jsesc Id no_quote}}">
|
2020-06-01 18:58:38 +02:00
|
|
|
{{#each Organizations}}
|
2022-12-28 20:05:10 +01:00
|
|
|
<button class="badge" data-bs-toggle="modal" data-bs-target="#userOrgTypeDialog" data-vw-org-type="{{Type}}" data-vw-org-uuid="{{jsesc Id no_quote}}" data-vw-org-name="{{jsesc Name no_quote}}">{{Name}}</button>
|
2020-06-01 18:58:38 +02:00
|
|
|
{{/each}}
|
2021-01-19 17:55:21 +01:00
|
|
|
</div>
|
2020-06-01 18:58:38 +02:00
|
|
|
</td>
|
2021-10-08 00:01:24 +02:00
|
|
|
<td class="text-end px-0 small">
|
2022-12-28 20:05:10 +01:00
|
|
|
<span data-vw-user-uuid="{{jsesc Id no_quote}}" data-vw-user-email="{{jsesc Email no_quote}}">
|
|
|
|
{{#if TwoFactorEnabled}}
|
2023-02-28 20:43:22 +01:00
|
|
|
<button type="button" class="btn btn-sm btn-link p-0 border-0 float-right" vw-remove2fa>Remove all 2FA</button><br>
|
2022-12-28 20:05:10 +01:00
|
|
|
{{/if}}
|
2023-02-28 20:43:22 +01:00
|
|
|
<button type="button" class="btn btn-sm btn-link p-0 border-0 float-right" vw-deauth-user>Deauthorize sessions</button><br>
|
|
|
|
<button type="button" class="btn btn-sm btn-link p-0 border-0 float-right" vw-delete-user>Delete User</button><br>
|
2022-12-28 20:05:10 +01:00
|
|
|
{{#if user_enabled}}
|
2023-02-28 20:43:22 +01:00
|
|
|
<button type="button" class="btn btn-sm btn-link p-0 border-0 float-right" vw-disable-user>Disable User</button><br>
|
2022-12-28 20:05:10 +01:00
|
|
|
{{else}}
|
2023-02-28 20:43:22 +01:00
|
|
|
<button type="button" class="btn btn-sm btn-link p-0 border-0 float-right" vw-enable-user>Enable User</button><br>
|
2022-12-28 20:05:10 +01:00
|
|
|
{{/if}}
|
|
|
|
</span>
|
2020-06-01 18:58:38 +02:00
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
{{/each}}
|
|
|
|
</tbody>
|
|
|
|
</table>
|
2020-05-28 10:42:36 +02:00
|
|
|
</div>
|
|
|
|
|
2022-12-28 20:05:10 +01:00
|
|
|
<div class="mt-3 clearfix">
|
|
|
|
<button type="button" class="btn btn-sm btn-danger" id="updateRevisions"
|
2020-05-28 10:42:36 +02:00
|
|
|
title="Force all clients to fetch new data next time they connect. Useful after restoring a backup to remove any stale data.">
|
|
|
|
Force clients to resync
|
|
|
|
</button>
|
|
|
|
|
2022-12-28 20:05:10 +01:00
|
|
|
<button type="button" class="btn btn-sm btn-primary float-end" id="reload">Reload users</button>
|
2020-05-28 10:42:36 +02:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2022-12-28 20:05:10 +01:00
|
|
|
<div id="inviteUserFormBlock" class="align-items-center p-3 mb-3 text-white-50 bg-secondary rounded shadow">
|
2020-05-28 10:42:36 +02:00
|
|
|
<div>
|
|
|
|
<h6 class="mb-0 text-white">Invite User</h6>
|
|
|
|
<small>Email:</small>
|
|
|
|
|
2022-12-28 20:05:10 +01:00
|
|
|
<form class="form-inline input-group w-50" id="inviteUserForm">
|
2023-01-15 15:17:00 +01:00
|
|
|
<input type="email" class="form-control me-2" id="inviteEmail" placeholder="Enter email" required spellcheck="false">
|
2020-05-28 10:42:36 +02:00
|
|
|
<button type="submit" class="btn btn-primary">Invite</button>
|
|
|
|
</form>
|
|
|
|
</div>
|
|
|
|
</div>
|
2021-02-03 18:43:54 +01:00
|
|
|
|
|
|
|
<div id="userOrgTypeDialog" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
|
|
|
|
<div class="modal-dialog modal-dialog-centered modal-sm">
|
|
|
|
<div class="modal-content">
|
|
|
|
<div class="modal-header">
|
|
|
|
<h6 class="modal-title" id="userOrgTypeDialogTitle"></h6>
|
2021-06-19 19:22:19 +02:00
|
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
2021-02-03 18:43:54 +01:00
|
|
|
</div>
|
2022-12-28 20:05:10 +01:00
|
|
|
<form class="form" id="userOrgTypeForm">
|
2021-02-03 18:43:54 +01:00
|
|
|
<input type="hidden" name="user_uuid" id="userOrgTypeUserUuid" value="">
|
|
|
|
<input type="hidden" name="org_uuid" id="userOrgTypeOrgUuid" value="">
|
|
|
|
<div class="modal-body">
|
|
|
|
<div class="radio">
|
|
|
|
<label><input type="radio" value="2" class="form-radio-input" name="user_type" id="userOrgTypeUser"> User</label>
|
|
|
|
</div>
|
|
|
|
<div class="radio">
|
|
|
|
<label><input type="radio" value="3" class="form-radio-input" name="user_type" id="userOrgTypeManager"> Manager</label>
|
|
|
|
</div>
|
|
|
|
<div class="radio">
|
|
|
|
<label><input type="radio" value="1" class="form-radio-input" name="user_type" id="userOrgTypeAdmin"> Admin</label>
|
|
|
|
</div>
|
|
|
|
<div class="radio">
|
|
|
|
<label><input type="radio" value="0" class="form-radio-input" name="user_type" id="userOrgTypeOwner"> Owner</label>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="modal-footer">
|
2021-06-19 19:22:19 +02:00
|
|
|
<button type="button" class="btn btn-sm btn-secondary" data-bs-dismiss="modal">Cancel</button>
|
2021-02-03 18:43:54 +01:00
|
|
|
<button type="submit" class="btn btn-sm btn-primary">Change Role</button>
|
|
|
|
</div>
|
|
|
|
</form>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2020-05-28 10:42:36 +02:00
|
|
|
</main>
|
|
|
|
|
2022-01-23 23:40:59 +01:00
|
|
|
<link rel="stylesheet" href="{{urlpath}}/vw_static/datatables.css" />
|
2023-01-24 23:31:38 +01:00
|
|
|
<script src="{{urlpath}}/vw_static/jquery-3.6.3.slim.js"></script>
|
2022-01-23 23:40:59 +01:00
|
|
|
<script src="{{urlpath}}/vw_static/datatables.js"></script>
|
2022-12-28 20:05:10 +01:00
|
|
|
<script src="{{urlpath}}/vw_static/admin_users.js"></script>
|
|
|
|
<script src="{{urlpath}}/vw_static/jdenticon.js"></script>
|