70 lines
2.6 KiB
Handlebars
70 lines
2.6 KiB
Handlebars
<div class="page-header">
|
|
<div>
|
|
<h2>Roles and permissions</h2>
|
|
<p>Define roles here, then assign those roles to users from either the role or users screen.</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row g-4">
|
|
<div class="col-12">
|
|
<div class="card card-outline card-primary admin-form-card">
|
|
<div class="card-header">
|
|
<h3 class="card-title">Existing roles</h3>
|
|
<div class="card-tools">
|
|
<a class="btn btn-primary btn-sm" href="/admin/rbac/new">Add role</a>
|
|
</div>
|
|
</div>
|
|
<div class="card-body table-responsive p-0">
|
|
<table class="table table-striped w-100 mb-0 users-table">
|
|
<thead>
|
|
<tr>
|
|
<th>Role</th>
|
|
<th>Description</th>
|
|
<th>Users</th>
|
|
<th>Permissions</th>
|
|
<th>Actions</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{{#if roles.length}}
|
|
{{#each roles}}
|
|
<tr>
|
|
<td data-label="Role">
|
|
<div class="user-cell">
|
|
<div>
|
|
<strong>{{name}}</strong>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td data-label="Description" title="{{description}}">
|
|
{{#if description}}
|
|
<span class="subtle">{{truncateText description 80}}</span>
|
|
{{else}}
|
|
<span class="empty">No description provided.</span>
|
|
{{/if}}
|
|
</td>
|
|
<td data-label="Users">{{user_count}}</td>
|
|
<td data-label="Permissions">{{permission_count}}</td>
|
|
<td data-label="Actions">
|
|
<div class="actions users-row-actions">
|
|
<a class="btn btn-sm btn-primary" href="/admin/rbac/{{id}}/edit">Edit</a>
|
|
{{#unless user_count}}
|
|
<form method="post" action="/admin/rbac/{{id}}/delete" class="inline-form" data-confirm-message="Delete {{name}}?">
|
|
<button type="submit" class="btn btn-sm btn-danger">Delete</button>
|
|
</form>
|
|
{{else}}
|
|
<span class="empty">In use</span>
|
|
{{/unless}}
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
{{/each}}
|
|
{{else}}
|
|
<tr><td colspan="5" class="empty">No roles found.</td></tr>
|
|
{{/if}}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div> |