Add full content to Users section (users-and-roles, login-authentication, profile-settings)

This commit is contained in:
Ivo Oskamp 2026-02-08 11:55:03 +01:00
parent 5c57db1f5d
commit 0283d7947a
3 changed files with 702 additions and 15 deletions

View File

@ -4,16 +4,239 @@
<h1>Login & Authentication</h1>
<p class="lead">
Learn about login procedures and authentication in BackupChecks.
Learn how to log in to BackupChecks and manage your authentication session.
</p>
<div class="doc-callout doc-callout-info">
<strong>📝 Coming Soon:</strong>
This page is under construction. Full content will be added in a future update.
<strong>📝 Coming Soon:</strong><br>
This page is under construction. Screenshots will be added in a future update.
</div>
<h2>Authentication</h2>
<h2>Logging In</h2>
<p>Content coming soon...</p>
<p>BackupChecks uses a traditional username and password authentication system.</p>
<h3>Login Steps</h3>
<ol>
<li>Navigate to the BackupChecks URL in your web browser</li>
<li>You will be automatically redirected to the login page if not authenticated</li>
<li>Enter your <strong>username</strong> in the username field</li>
<li>Enter your <strong>password</strong> in the password field</li>
<li>Click the <strong>Login</strong> button</li>
</ol>
<p>If your credentials are correct, you will be redirected to the dashboard.</p>
<h3>First Login</h3>
<p>When you log in for the first time:</p>
<ol>
<li>You will land on the <strong>Dashboard</strong> page</li>
<li>Review any news announcements or system updates</li>
<li>If you have multiple roles, select your preferred active role from the dropdown in the navigation bar</li>
<li>Consider changing your password via <a href="{{ url_for('documentation.page', section='users', page='profile-settings') }}">Profile Settings</a></li>
</ol>
<div class="doc-callout doc-callout-tip">
<strong>💡 Tip:</strong><br>
Bookmark the BackupChecks URL for quick access. The system will remember your last active role between sessions.
</div>
<h2>Authentication Method</h2>
<p>BackupChecks uses local database authentication:</p>
<ul>
<li><strong>Username/Password:</strong> Credentials are stored securely in the database</li>
<li><strong>Session-Based:</strong> After login, a secure session is created and stored in a cookie</li>
<li><strong>No SSO/OAuth:</strong> External authentication providers are not currently supported</li>
<li><strong>No Two-Factor Authentication:</strong> 2FA is not currently implemented</li>
</ul>
<div class="doc-callout doc-callout-info">
<strong>💡 Note:</strong><br>
User accounts are created and managed by administrators via Settings → User Management.
</div>
<h2>Login Failures</h2>
<h3>Common Login Issues</h3>
<table>
<thead>
<tr>
<th>Issue</th>
<th>Possible Cause</th>
<th>Solution</th>
</tr>
</thead>
<tbody>
<tr>
<td>Invalid credentials error</td>
<td>Incorrect username or password</td>
<td>Double-check username and password (case-sensitive). Contact your administrator if you've forgotten your credentials.</td>
</tr>
<tr>
<td>Page doesn't load after login</td>
<td>Session or cookie issue</td>
<td>Clear your browser cookies and cache, then try again.</td>
</tr>
<tr>
<td>Redirected back to login</td>
<td>Session expired or browser issue</td>
<td>Try a different browser or incognito/private mode to rule out browser-specific issues.</td>
</tr>
</tbody>
</table>
<div class="doc-callout doc-callout-warning">
<strong>⚠️ Password Reset:</strong><br>
BackupChecks does not currently have a self-service password reset feature. If you forget your password, contact your system administrator to reset it.
</div>
<h2>Session Management</h2>
<h3>Session Duration</h3>
<p>BackupChecks uses persistent sessions:</p>
<ul>
<li>Sessions remain active as long as you keep using the application</li>
<li>Sessions may expire after extended periods of inactivity (browser-dependent)</li>
<li>Closing the browser tab does not immediately end your session</li>
<li>The session cookie is set to expire when the browser closes (unless "Remember Me" is implemented)</li>
</ul>
<h3>Automatic Redirects</h3>
<p>If your session expires or becomes invalid:</p>
<ol>
<li>You will be automatically redirected to the login page</li>
<li>After logging in again, you may be redirected to the page you were trying to access</li>
</ol>
<h2>Logging Out</h2>
<p>To log out of BackupChecks:</p>
<ol>
<li>Click the <strong>Logout</strong> button in the top-right corner of the navigation bar</li>
<li>Your session will be terminated immediately</li>
<li>You will be redirected to the login page</li>
</ol>
<div class="doc-callout doc-callout-tip">
<strong>💡 Best Practice:</strong><br>
Always log out when using a shared or public computer. This ensures your session is properly terminated and prevents unauthorized access.
</div>
<h2>Security Considerations</h2>
<h3>Password Security</h3>
<ul>
<li><strong>Use Strong Passwords:</strong> Choose passwords with a mix of uppercase, lowercase, numbers, and symbols</li>
<li><strong>Don't Share Credentials:</strong> Each user should have their own account</li>
<li><strong>Change Default Passwords:</strong> If your administrator provides a temporary password, change it immediately</li>
<li><strong>Regular Updates:</strong> Consider changing your password periodically</li>
</ul>
<h3>Browser Security</h3>
<ul>
<li><strong>Use HTTPS:</strong> Ensure you're connecting via HTTPS (check for the padlock icon in your browser)</li>
<li><strong>Keep Browser Updated:</strong> Use the latest version of your browser for security patches</li>
<li><strong>Avoid Public WiFi:</strong> Don't log in from untrusted networks without a VPN</li>
<li><strong>Clear Cookies on Shared Computers:</strong> Clear browser data after using a shared machine</li>
</ul>
<div class="doc-callout doc-callout-warning">
<strong>⚠️ Security Alert:</strong><br>
If you suspect unauthorized access to your account, contact your administrator immediately to reset your password and review audit logs.
</div>
<h2>Role Selection After Login</h2>
<p>If you have multiple roles assigned:</p>
<ol>
<li>After login, your last active role will be automatically selected</li>
<li>If this is your first login or the role is no longer valid, your first assigned role will be activated</li>
<li>You can switch roles at any time using the role dropdown in the navigation bar</li>
</ol>
<p>See <a href="{{ url_for('documentation.page', section='users', page='users-and-roles') }}">Users & Roles</a> for more information about role switching.</p>
<h2>Troubleshooting Login Issues</h2>
<h3>Can't Remember Username</h3>
<p>Contact your system administrator. They can look up your username in Settings → User Management.</p>
<h3>Can't Remember Password</h3>
<p>Contact your system administrator. They can reset your password for you.</p>
<h3>Account Locked or Disabled</h3>
<p>BackupChecks does not currently implement account lockouts. If you cannot log in:</p>
<ol>
<li>Verify your username and password are correct</li>
<li>Contact your administrator to verify your account exists and is active</li>
<li>Ask your administrator to check the audit logs for any issues</li>
</ol>
<h2>Browser Compatibility</h2>
<p>BackupChecks is designed to work with modern web browsers:</p>
<table>
<thead>
<tr>
<th>Browser</th>
<th>Minimum Version</th>
<th>Recommended</th>
</tr>
</thead>
<tbody>
<tr>
<td>Google Chrome</td>
<td>90+</td>
<td>Latest stable</td>
</tr>
<tr>
<td>Mozilla Firefox</td>
<td>88+</td>
<td>Latest stable</td>
</tr>
<tr>
<td>Microsoft Edge</td>
<td>90+</td>
<td>Latest stable</td>
</tr>
<tr>
<td>Safari</td>
<td>14+</td>
<td>Latest stable</td>
</tr>
</tbody>
</table>
<div class="doc-callout doc-callout-info">
<strong>💡 Note:</strong><br>
Internet Explorer is not supported. Please use a modern browser for the best experience.
</div>
<h2>Next Steps</h2>
<ul>
<li><a href="{{ url_for('documentation.page', section='users', page='profile-settings') }}">Profile Settings</a> - Customize your profile and change your password</li>
<li><a href="{{ url_for('documentation.page', section='getting-started', page='first-login') }}">First Login & Dashboard</a> - Learn about the dashboard interface</li>
<li><a href="{{ url_for('documentation.page', section='users', page='users-and-roles') }}">Users & Roles</a> - Understand user roles and permissions</li>
</ul>
{% endblock %}

View File

@ -4,16 +4,253 @@
<h1>Profile Settings</h1>
<p class="lead">
Customize your profile settings and preferences.
Customize your user profile, change your password, and configure personal preferences.
</p>
<div class="doc-callout doc-callout-info">
<strong>📝 Coming Soon:</strong>
This page is under construction. Full content will be added in a future update.
<strong>📝 Coming Soon:</strong><br>
This page is under construction. Screenshots will be added in a future update.
</div>
<h2>Profile</h2>
<h2>Accessing Profile Settings</h2>
<p>Content coming soon...</p>
<p>To access your profile settings:</p>
<ol>
<li>Click on your <strong>username</strong> in the top-right corner of the navigation bar</li>
<li>This will open the User Settings page</li>
</ol>
<p>Alternatively, navigate directly to the User Settings page via the menu (if your role has access).</p>
<h2>Profile Information</h2>
<p>Your profile displays the following information:</p>
<ul>
<li><strong>Username:</strong> Your login username (cannot be changed by users)</li>
<li><strong>Email:</strong> Your email address (if configured by admin)</li>
<li><strong>Assigned Roles:</strong> The roles you have been granted</li>
<li><strong>Active Role:</strong> Your currently selected role</li>
</ul>
<div class="doc-callout doc-callout-info">
<strong>💡 Note:</strong><br>
Only administrators can modify usernames, email addresses, and role assignments via Settings → User Management.
</div>
<h2>Changing Your Password</h2>
<p>You can change your password at any time from the profile settings page.</p>
<h3>Password Change Steps</h3>
<ol>
<li>Navigate to your profile settings (click your username)</li>
<li>Locate the <strong>Change Password</strong> section</li>
<li>Enter your <strong>current password</strong></li>
<li>Enter your <strong>new password</strong></li>
<li>Re-enter your <strong>new password</strong> to confirm</li>
<li>Click <strong>Change Password</strong> or <strong>Save</strong></li>
</ol>
<p>If successful, you will see a confirmation message. Your password is updated immediately.</p>
<div class="doc-callout doc-callout-tip">
<strong>💡 Password Best Practices:</strong><br>
Use a strong password with at least 8 characters, including uppercase, lowercase, numbers, and symbols. Avoid common words or easily guessable information.
</div>
<h3>Password Requirements</h3>
<p>BackupChecks password requirements:</p>
<ul>
<li><strong>Minimum Length:</strong> Typically 6-8 characters (check with your administrator)</li>
<li><strong>Complexity:</strong> No specific complexity requirements enforced by default</li>
<li><strong>History:</strong> No password reuse restrictions by default</li>
</ul>
<div class="doc-callout doc-callout-warning">
<strong>⚠️ Important:</strong><br>
If you forget your new password, you will need to contact your administrator for a password reset. There is no self-service password recovery.
</div>
<h2>Theme Preference</h2>
<p>BackupChecks supports multiple visual themes to match your preference and reduce eye strain.</p>
<h3>Available Themes</h3>
<table>
<thead>
<tr>
<th>Theme</th>
<th>Description</th>
<th>When to Use</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Light</strong></td>
<td>Light backgrounds with dark text</td>
<td>Well-lit environments, daytime use</td>
</tr>
<tr>
<td><strong>Dark</strong></td>
<td>Dark backgrounds with light text</td>
<td>Low-light environments, reduce eye strain</td>
</tr>
<tr>
<td><strong>Auto</strong></td>
<td>Automatically matches your system preference</td>
<td>Adapts to your OS dark mode setting</td>
</tr>
</tbody>
</table>
<h3>Changing Your Theme</h3>
<p>You can change your theme in two ways:</p>
<h4>Method 1: Navigation Bar (Quick Change)</h4>
<ol>
<li>Locate the <strong>theme selector dropdown</strong> in the top-right corner of the navigation bar (next to your username)</li>
<li>Click the dropdown to see available themes</li>
<li>Select <strong>Light</strong>, <strong>Dark</strong>, or <strong>Auto</strong></li>
<li>The page will reload and apply your selected theme immediately</li>
</ol>
<h4>Method 2: Profile Settings</h4>
<ol>
<li>Navigate to your profile settings (click your username)</li>
<li>Locate the <strong>Theme Preference</strong> setting</li>
<li>Select your preferred theme</li>
<li>Save your changes</li>
</ol>
<p>Your theme preference is saved and will persist across all devices where you log in.</p>
<div class="doc-callout doc-callout-tip">
<strong>💡 Tip:</strong><br>
The <strong>Auto</strong> theme is recommended if your operating system already has a dark mode schedule. BackupChecks will automatically switch between light and dark themes based on your OS setting.
</div>
<h2>Role Selection</h2>
<p>If you have multiple roles assigned, you can view and switch between them from your profile.</p>
<h3>Viewing Your Roles</h3>
<p>Your assigned roles are displayed in your profile settings. This is a read-only view showing all roles granted by your administrator.</p>
<h3>Switching Active Role</h3>
<p>To switch your active role:</p>
<ol>
<li>Use the <strong>role selector dropdown</strong> in the top-right corner of the navigation bar</li>
<li>Select the role you want to activate</li>
<li>The page will reload with the appropriate permissions and menu items for that role</li>
</ol>
<p>See <a href="{{ url_for('documentation.page', section='users', page='users-and-roles') }}">Users & Roles</a> for detailed information about role permissions and switching.</p>
<h2>Session Information</h2>
<p>Some profile pages may display session information:</p>
<ul>
<li><strong>Last Login:</strong> When you last successfully logged in</li>
<li><strong>Active Sessions:</strong> Your current browser sessions (if implemented)</li>
<li><strong>Login History:</strong> Recent login attempts (if audit logging is enabled)</li>
</ul>
<div class="doc-callout doc-callout-info">
<strong>💡 Note:</strong><br>
Session information availability depends on your system configuration and may not be visible to all users.
</div>
<h2>Notification Preferences</h2>
<p>Future versions of BackupChecks may include notification preferences such as:</p>
<ul>
<li>Email notifications for failed backups</li>
<li>Daily digest emails</li>
<li>Alert thresholds</li>
<li>Report delivery preferences</li>
</ul>
<div class="doc-callout doc-callout-info">
<strong>📝 Future Feature:</strong><br>
Notification preferences are not currently implemented. Check back in future updates.
</div>
<h2>Data Privacy</h2>
<h3>What Data is Stored?</h3>
<p>BackupChecks stores the following personal information:</p>
<ul>
<li>Username (required for login)</li>
<li>Email address (optional, set by admin)</li>
<li>Password hash (securely encrypted)</li>
<li>Assigned roles</li>
<li>Theme preference</li>
<li>Last active role</li>
</ul>
<h3>Who Can See Your Information?</h3>
<ul>
<li><strong>You:</strong> Can view your own profile information</li>
<li><strong>Administrators:</strong> Can view and edit all user profiles</li>
<li><strong>Other Users:</strong> Cannot view your profile or personal information</li>
</ul>
<h3>Data Retention</h3>
<p>Your profile data is retained as long as your account exists. If your account is deleted by an administrator, all associated profile data is removed.</p>
<h2>Troubleshooting</h2>
<h3>Can't Change Password</h3>
<p><strong>Possible causes:</strong></p>
<ul>
<li>Current password is incorrect - verify you're entering your current password correctly</li>
<li>New password doesn't meet requirements - ensure password meets minimum length</li>
<li>Browser autofill issue - try typing passwords manually instead of using autofill</li>
</ul>
<h3>Theme Doesn't Change</h3>
<p><strong>Possible causes:</strong></p>
<ul>
<li>Browser cache - clear your browser cache and reload the page</li>
<li>Browser compatibility - try a different browser</li>
<li>Auto theme not working - ensure your OS has a dark mode preference set</li>
</ul>
<h3>Can't Access Profile Settings</h3>
<p><strong>Possible causes:</strong></p>
<ul>
<li>Session expired - log out and log back in</li>
<li>Permission issue - contact your administrator</li>
<li>Browser issue - try incognito/private mode</li>
</ul>
<h2>Next Steps</h2>
<ul>
<li><a href="{{ url_for('documentation.page', section='users', page='users-and-roles') }}">Users & Roles</a> - Learn about user roles and permissions</li>
<li><a href="{{ url_for('documentation.page', section='users', page='login-authentication') }}">Login & Authentication</a> - Understand login and session management</li>
<li><a href="{{ url_for('documentation.page', section='getting-started', page='first-login') }}">First Login & Dashboard</a> - Navigate the dashboard interface</li>
</ul>
{% endblock %}

View File

@ -4,16 +4,243 @@
<h1>Users & Roles</h1>
<p class="lead">
Learn how to manage users and assign roles in BackupChecks.
BackupChecks uses a role-based access control system to manage user permissions and access levels.
</p>
<div class="doc-callout doc-callout-info">
<strong>📝 Coming Soon:</strong>
This page is under construction. Full content will be added in a future update.
<strong>📝 Coming Soon:</strong><br>
This page is under construction. Screenshots will be added in a future update.
</div>
<h2>User Management</h2>
<h2>User Roles Overview</h2>
<p>Content coming soon...</p>
<p>BackupChecks supports four distinct user roles, each with specific permissions and access levels:</p>
<table>
<thead>
<tr>
<th>Role</th>
<th>Primary Purpose</th>
<th>Key Permissions</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Admin</strong></td>
<td>Full system administration</td>
<td>Complete access to all features, settings, user management, and system configuration</td>
</tr>
<tr>
<td><strong>Operator</strong></td>
<td>Daily backup operations</td>
<td>Review backups, manage customers/jobs, create tickets, view reports (no system settings)</td>
</tr>
<tr>
<td><strong>Reporter</strong></td>
<td>Reporting and analytics</td>
<td>View and generate reports only (no access to operational features)</td>
</tr>
<tr>
<td><strong>Viewer</strong></td>
<td>Read-only monitoring</td>
<td>View customers, jobs, and reports (cannot make changes)</td>
</tr>
</tbody>
</table>
<h2>Detailed Role Permissions</h2>
<h3>Admin Role</h3>
<p>Administrators have unrestricted access to BackupChecks:</p>
<ul>
<li>Manage users (create, edit, delete, assign roles)</li>
<li>Configure system settings (mail import, Autotask integration, UI timezone)</li>
<li>Manage customers and backup jobs</li>
<li>Review and approve backup runs</li>
<li>Create and manage tickets</li>
<li>Configure overrides and parsers</li>
<li>View audit logs and system maintenance features</li>
<li>Create news announcements</li>
<li>Access all mail (including deleted mails and archived jobs)</li>
<li>Export and import data</li>
</ul>
<div class="doc-callout doc-callout-warning">
<strong>⚠️ Security Note:</strong><br>
Admin access should be limited to trusted personnel only. Admins can modify critical system settings and access all data.
</div>
<h3>Operator Role</h3>
<p>Operators handle day-to-day backup monitoring and validation:</p>
<ul>
<li>View and manage customers</li>
<li>Configure backup jobs</li>
<li>Review backup runs and mark them as reviewed</li>
<li>Create and manage Autotask tickets for failed backups</li>
<li>Add remarks to backup runs</li>
<li>View and create reports</li>
<li>Manage inbox emails and approve jobs</li>
<li>Configure overrides for special cases</li>
</ul>
<p><strong>Operators cannot:</strong> Access system settings, manage users, view audit logs, or access deleted mails.</p>
<h3>Reporter Role</h3>
<p>Reporters focus exclusively on reporting and analytics:</p>
<ul>
<li>View the dashboard</li>
<li>Create, schedule, and view reports</li>
<li>Access documentation, changelog, and feedback</li>
</ul>
<p><strong>Reporters cannot:</strong> Access operational features like inbox, customers, jobs, run checks, or tickets. The navigation menu shows only report-related items.</p>
<div class="doc-callout doc-callout-tip">
<strong>💡 Use Case:</strong><br>
The Reporter role is ideal for management or stakeholders who need visibility into backup compliance without operational access.
</div>
<h3>Viewer Role</h3>
<p>Viewers have read-only access to monitor backup status:</p>
<ul>
<li>View customers and their backup jobs</li>
<li>View backup runs and their status</li>
<li>View tickets and remarks</li>
<li>View reports</li>
<li>Access documentation and changelog</li>
</ul>
<p><strong>Viewers cannot:</strong> Make any changes, create tickets, review backups, or access system settings.</p>
<h2>Multiple Role Assignment</h2>
<p>Users can be assigned multiple roles simultaneously. This provides flexibility for users who need different access levels at different times.</p>
<h3>How Multiple Roles Work</h3>
<ol>
<li>A user can be assigned any combination of roles (e.g., "operator, reporter")</li>
<li>When logged in, the user selects their <strong>active role</strong> from a dropdown in the navigation bar</li>
<li>The interface and available features adapt based on the selected active role</li>
<li>Users can switch between their assigned roles at any time</li>
</ol>
<div class="doc-callout doc-callout-info">
<strong>💡 Example:</strong><br>
A user assigned both "operator" and "reporter" roles can switch between reviewing backups (operator) and generating executive reports (reporter) without logging out.
</div>
<h2>Managing Users</h2>
<p>User management is performed by administrators through the <strong>Settings</strong> page.</p>
<h3>Creating a New User</h3>
<ol>
<li>Navigate to <strong>Settings</strong><strong>User Management</strong> (Admin only)</li>
<li>Click <strong>New User</strong></li>
<li>Enter username, email, and password</li>
<li>Assign one or more roles (comma-separated: e.g., "admin,operator")</li>
<li>Save the user</li>
</ol>
<h3>Editing User Roles</h3>
<ol>
<li>Navigate to <strong>Settings</strong><strong>User Management</strong></li>
<li>Click the edit icon next to the user</li>
<li>Modify the roles field (comma-separated list)</li>
<li>Save changes</li>
</ol>
<div class="doc-callout doc-callout-warning">
<strong>⚠️ Important:</strong><br>
Role changes take effect immediately. If you remove a user's current active role, they will be switched to their first remaining role automatically.
</div>
<h2>Role Switching</h2>
<p>Users with multiple roles can switch between them using the role selector in the navigation bar (top-right corner, next to the username).</p>
<h3>How to Switch Roles</h3>
<ol>
<li>Locate the role dropdown in the top-right corner of the navigation bar</li>
<li>Click the dropdown to see your assigned roles</li>
<li>Select the role you want to activate</li>
<li>The page will reload and the interface will adapt to the selected role</li>
</ol>
<p>The navigation menu, available features, and permissions update immediately to match your active role.</p>
<h2>Best Practices</h2>
<ul>
<li><strong>Principle of Least Privilege:</strong> Assign users the minimum role required for their responsibilities</li>
<li><strong>Limit Admin Access:</strong> Only assign admin role to personnel responsible for system configuration</li>
<li><strong>Use Multiple Roles Sparingly:</strong> While flexible, multiple roles can be confusing. Assign them only when necessary</li>
<li><strong>Regular Audits:</strong> Periodically review user roles and remove access for inactive users</li>
<li><strong>Document Role Assignments:</strong> Keep an external record of why users have specific roles</li>
</ul>
<h2>Common Role Assignment Scenarios</h2>
<table>
<thead>
<tr>
<th>User Type</th>
<th>Recommended Role(s)</th>
<th>Rationale</th>
</tr>
</thead>
<tbody>
<tr>
<td>System Administrator</td>
<td>admin</td>
<td>Needs full access to configure and maintain the system</td>
</tr>
<tr>
<td>Backup Team Lead</td>
<td>operator</td>
<td>Reviews backups daily, manages customers and jobs</td>
</tr>
<tr>
<td>Junior Backup Technician</td>
<td>operator or viewer</td>
<td>Assists with reviews or monitors status (depending on trust level)</td>
</tr>
<tr>
<td>Management/Stakeholder</td>
<td>reporter</td>
<td>Needs reports and metrics, not operational access</td>
</tr>
<tr>
<td>Auditor/Compliance</td>
<td>viewer</td>
<td>Needs to verify backup status without making changes</td>
</tr>
<tr>
<td>Dual-Function User</td>
<td>operator, reporter</td>
<td>Performs daily reviews and also generates reports</td>
</tr>
</tbody>
</table>
<h2>Next Steps</h2>
<ul>
<li><a href="{{ url_for('documentation.page', section='users', page='login-authentication') }}">Login & Authentication</a> - Learn how to log in and manage your session</li>
<li><a href="{{ url_for('documentation.page', section='users', page='profile-settings') }}">Profile Settings</a> - Customize your profile and preferences</li>
<li><a href="{{ url_for('documentation.page', section='settings', page='user-management') }}">User Management Settings</a> - Admin guide to creating and managing users</li>
</ul>
{% endblock %}