Release 2.8.0
This commit is contained in:
@@ -23,6 +23,12 @@
|
||||
<input id="{{#if isEdit}}edit-user-name{{else}}user-name{{/if}}" type="text" name="name" class="form-control" autocomplete="name" value="{{#if isEdit}}{{user.name}}{{else}}{{formValues.name}}{{/if}}" maxlength="128" data-limit-text-length required />
|
||||
</div>
|
||||
</div>
|
||||
{{#if isEdit}}
|
||||
<div class="mt-3">
|
||||
<input id="edit-user-account-locked" name="account_locked" type="checkbox" class="btn-check" value="1" autocomplete="off" {{#if user.account_locked}}checked{{/if}}>
|
||||
<label class="btn btn-outline-danger" for="edit-user-account-locked"><span class="account-lock-label-unlocked">Account unlocked</span><span class="account-lock-label-locked">Account locked</span></label>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="card-footer d-flex justify-content-end">
|
||||
<div class="btn-group" role="group" aria-label="{{#if isEdit}}Profile actions{{else}}User actions{{/if}}">
|
||||
@@ -86,3 +92,36 @@
|
||||
</div>
|
||||
</form>
|
||||
|
||||
{{#if isEdit}}
|
||||
<div class="card card-outline card-secondary admin-form-card mt-3">
|
||||
<div class="card-header d-flex align-items-center justify-content-between">
|
||||
<h3 class="card-title">Active sessions</h3>
|
||||
{{#if sessions.length}}
|
||||
<form method="post" action="/settings/users/{{user.id}}/sessions/revoke-all" class="ms-auto flex-shrink-0" data-confirm-message="Sign out all sessions for this user?">
|
||||
<button type="submit" class="btn btn-sm btn-danger">Sign out all</button>
|
||||
</form>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{{#if sessions.length}}
|
||||
<div class="d-flex flex-column gap-2">
|
||||
{{#each sessions}}
|
||||
<div class="border rounded p-3">
|
||||
<div class="d-flex align-items-start justify-content-between">
|
||||
<div class="fw-semibold">Active session</div>
|
||||
<form method="post" action="/settings/users/{{../user.id}}/sessions/{{id}}/revoke">
|
||||
<button type="submit" class="btn btn-sm btn-outline-danger">Sign out</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="text-body-secondary small mt-2">{{ipAddress}} · {{userAgent}}</div>
|
||||
<div class="text-body-secondary small">Created {{createdAtLabel}} · Last used {{lastUsedAtLabel}} · Expires {{expiresAtLabel}}</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{else}}
|
||||
<p class="mb-0 text-body-secondary">No active sessions were found.</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<input type="search" class="form-control" placeholder="Search users" aria-label="Search users" data-table-search />
|
||||
</div>
|
||||
{{#if (hasPermission currentUser 'users.create')}}
|
||||
<a class="btn btn-primary btn-sm" href="/users/new">Add user</a>
|
||||
<a class="btn btn-primary btn-sm" href="/settings/users/new">Add user</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
@@ -25,6 +25,7 @@
|
||||
<th data-table-sort-key="user">User</th>
|
||||
<th data-table-sort-key="name">Name</th>
|
||||
<th data-table-sort-key="roles">Roles</th>
|
||||
<th>Status</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -66,18 +67,25 @@
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td data-label="Status">
|
||||
{{#if account_locked}}
|
||||
<span class="badge text-bg-danger">Locked</span>
|
||||
{{else}}
|
||||
<span class="badge text-bg-success">Active</span>
|
||||
{{/if}}
|
||||
</td>
|
||||
<td data-label="Actions">
|
||||
{{#if (anyPermission ../currentUser 'users.create' 'users.update' 'users.delete')}}
|
||||
<div class="actions users-row-actions">
|
||||
{{#unless isCurrentUser}}
|
||||
{{#if (hasPermission ../currentUser 'users.update')}}
|
||||
<a class="btn btn-sm btn-primary" href="/users/{{id}}/edit">Edit</a>
|
||||
<a class="btn btn-sm btn-primary" href="/settings/users/{{id}}/edit">Edit</a>
|
||||
{{/if}}
|
||||
{{#if (hasPermission ../currentUser 'users.create')}}
|
||||
<a class="btn btn-sm btn-secondary" href="/users/{{id}}/duplicate">Dupe</a>
|
||||
<a class="btn btn-sm btn-secondary" href="/settings/users/{{id}}/duplicate">Dupe</a>
|
||||
{{/if}}
|
||||
{{#if (hasPermission ../currentUser 'users.delete')}}
|
||||
<form method="post" action="/users/{{id}}/delete" class="inline-form" data-confirm-message="Delete {{username}}?">
|
||||
<form method="post" action="/settings/users/{{id}}/delete" class="inline-form" data-confirm-message="Delete {{username}}?">
|
||||
<button type="submit" class="btn btn-sm btn-danger">Delete</button>
|
||||
</form>
|
||||
{{/if}}
|
||||
@@ -92,10 +100,10 @@
|
||||
</tr>
|
||||
{{/each}}
|
||||
{{else}}
|
||||
<tr data-table-search-empty-default><td colspan="4" class="empty">No users found.</td></tr>
|
||||
<tr data-table-search-empty-default><td colspan="5" class="empty">No users found.</td></tr>
|
||||
{{/if}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{{> table-pagination pagination=pagination basePath="/users" alwaysShow=true}}
|
||||
{{> table-pagination pagination=pagination basePath="/settings/users" alwaysShow=true}}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user