{% extends 'admin/master.html' %} {% macro highlight_email(email, query, is_regex) -%} {% if is_regex %} {{ email }} {% else %} {{ email }} {% endif %} {%- endmacro %} {% macro badge_status(condition, true_text, false_text, true_class='success', false_class='danger') -%} {% if condition %} {{ true_text }} {% else %} {{ false_text }} {% endif %} {%- endmacro %} {% macro copy_btn(text) -%} {%- endmacro %} {% macro user_info_card(user) -%} {% set pu = helper.partner_user(user) %} {% set active_sub = user.get_active_subscription() %} {% set sub_end = user.get_active_subscription_end() %}
{%- endmacro %} {% macro user_actions_card(user) -%} {% set pu = helper.partner_user(user) %} {# This macro now only contains modals - action buttons are in user_info_card #} {# Mark Abuser Modal #} {# Unmark Abuser Modal #} {# Unlink Proton Modal #} {% if pu %} {% endif %} {# Delete User Modal #} {# Subdomain Quota Modal #}| ID: | {{ alias.id }} |
| Email: | {{ alias.email }}{{ copy_btn(alias.email) }} |
| Name: | {{ alias.name }} |
| Status: | {{ badge_status(alias.enabled, 'Enabled', 'Disabled', 'success', 'danger') }} |
| User: | {{ alias.user.email }}{{ copy_btn(alias.user.email) }} |
| Domain: | {{ alias.custom_domain.domain }} |
| Directory: | {{ alias.directory.name }} |
| Note: | {{ alias.note }} |
| Received: | {{ helper.alias_email_received_count(alias) }} |
| Sent: | {{ helper.alias_email_sent_count(alias) }} |
| Contacts: | {{ helper.alias_contact_count(alias) }} |
| PGP: | {{ badge_status(alias.pgp_enabled(), 'Yes', 'No', 'success', 'secondary') }} |
| Flags: |
{{ alias.flags or 0 }}
{% if alias_flag_names %}{{ alias_flag_names|join(", ") }}{% endif %}
|
| Created: | {{ alias.created_at.strftime("%Y-%m-%d %H:%M") }} |
| Updated: | {{ alias.updated_at.strftime("%Y-%m-%d %H:%M") if alias.updated_at else "Never" }} |
| Deletion: | {{ alias.delete_on.format("YYYY-MM-DD") }} |
| ID | Verified | Default | Admin Disabled | PGP | Flags | # Aliases | Created | Updated | Actions | |
|---|---|---|---|---|---|---|---|---|---|---|
{{ mailbox.id }}
|
{% if highlight_mailbox_email and mailbox.email == highlight_mailbox_email %} {{ mailbox.email }} {% else %} {{ highlight_email(mailbox.email, query, is_regex) }} {% endif %} {{ copy_btn(mailbox.email) }} | {{ badge_status(mailbox.verified, 'Yes', 'No', 'success', 'warning') }} | {{ badge_status(mailbox.user.default_mailbox_id == mailbox.id, 'Yes', 'No', 'info', 'secondary') }} | {{ badge_status(mailbox.is_admin_disabled() , 'Yes', 'No', 'danger', 'success') }} |
{% if mailbox.pgp_finger_print %}
{{ badge_status(mailbox.pgp_enabled() , 'Enabled', 'Disabled', 'success', 'warning') }}
{{ mailbox.pgp_finger_print }}{{ copy_btn(mailbox.pgp_finger_print) }} {% else %} No PGP {% endif %} |
{{ mailbox.flags or 0 }}
{% set mbox_flag_names = helper.mailbox_flags(mailbox) %}
{% if mbox_flag_names %}{{ mbox_flag_names|join(", ") }}{% endif %}
|
{{ mailbox.nb_alias() }} | {{ mailbox.created_at.strftime("%Y-%m-%d %H:%M") }} | {{ mailbox.updated_at.strftime("%Y-%m-%d %H:%M") if mailbox.updated_at else "Never" }} |
{% if mailbox.user.default_mailbox_id != mailbox.id and mailbox.verified and not mailbox.is_admin_disabled() %}
{% endif %}
{% if mailbox.is_admin_disabled() %}
{% else %}
{% endif %}
|
| ID | Enabled | PGP | Emails | Contacts | Mailboxes | Flags | Created | Updated | ||
|---|---|---|---|---|---|---|---|---|---|---|
{{ alias.id }}
|
{{ highlight_email(alias.email, query, is_regex) }}{{ copy_btn(alias.email) }} | {{ badge_status(alias.enabled, 'Yes', 'No', 'success', 'danger') }} | {{ badge_status(alias.pgp_enabled() , 'Yes', 'No', 'success', 'secondary') }} | {{ helper.alias_email_received_count(alias) }} {{ helper.alias_email_sent_count(alias) }} | {{ helper.alias_contact_count(alias) }} | {{ helper.alias_mailbox_count(alias) }} {% if alias_mailboxes %} {% for mb in alias_mailboxes %} {{ mb.email }} {% if not loop.last %},{% endif %} {% endfor %} {% endif %} |
{{ alias.flags or 0 }}
{% set alias_flag_names = helper.alias_flags(alias) %}
{% if alias_flag_names %}{{ alias_flag_names|join(", ") }}{% endif %}
|
{{ alias.created_at.strftime("%Y-%m-%d %H:%M") }} | {{ alias.updated_at.strftime("%Y-%m-%d %H:%M") if alias.updated_at else "Never" }} | Actions |
| ID | Website Email | Reply Email | PGP | Status | Emails | Created |
|---|---|---|---|---|---|---|
{{ contact.id }}
|
{{ contact.website_email }}{{ copy_btn(contact.website_email) }}
{% if contact.name %}
{{ contact.name }} {% endif %} |
{{ contact.reply_email }}{{ copy_btn(contact.reply_email) }}
|
{% if contact.pgp_finger_print %}
Has PGP
{{ contact.pgp_finger_print }}{{ copy_btn(contact.pgp_finger_print) }} {% else %} No PGP {% endif %} |
{% if contact.block_forward %} Blocked {% elif contact.invalid_email %} Invalid {% else %} Active {% endif %} {% if contact.is_cc %}CC{% endif %} | {{ helper.contact_email_received_count(contact) }} {{ helper.contact_email_sent_count(contact) }} {% set blocked_count = helper.contact_email_blocked_count(contact) %} {% if blocked_count > 0 %} {{ blocked_count }} {% endif %} | {{ contact.created_at.strftime("%Y-%m-%d %H:%M") }} |
| ID | Domain | Verified | Aliases | Deleted | Created |
|---|---|---|---|---|---|
{{ domain.id }}
|
{{ domain.domain }}{{ copy_btn(domain.domain) }} | {% if domain.verified and domain.ownership_verified %} Verified {% else %} Pending {% endif %} | {{ helper.domain_alias_count(domain) }} | {{ helper.domain_deleted_alias_count(domain) }} | {{ domain.created_at.strftime("%Y-%m-%d %H:%M") }} |
| ID | Deleted At | Reason | |
|---|---|---|---|
{{ deleted_alias.id }}
|
{{ highlight_email(deleted_alias.email, query, is_regex) }} | {{ deleted_alias.created_at.strftime("%Y-%m-%d %H:%M") }} | {{ deleted_alias.reason or 'Unknown' }} |
| ID | Domain | Owner | Deleted At | |
|---|---|---|---|---|
{{ dda.id }}
|
{{ highlight_email(dda.email, query, is_regex) }} |
{{ dda.domain.domain }}
|
User #{{ dda.domain.user_id }} | {{ dda.created_at.strftime("%Y-%m-%d %H:%M") }} |
| Time (UTC) | User ID | Alias | Action | Message |
|---|---|---|---|---|
| {{ entry.created_at.strftime("%Y-%m-%d %H:%M") }} | {{ entry.user_id }} |
{{ entry.alias_email }}
|
{{ entry.action }} | {{ entry.message or '-' }} |
| No audit log entries | ||||
| Time (UTC) | Action | Message |
|---|---|---|
| {{ entry.created_at.strftime("%Y-%m-%d %H:%M") }} | {{ entry.action }} | {{ entry.message or '-' }} |
| Time (UTC) | Admin | Action | Message |
|---|---|---|---|
| {{ entry.created_at.strftime("%Y-%m-%d %H:%M") }} | {% if entry.admin_id %} {% set admin_email = helper.get_admin_email(entry.admin_id) %} {% if admin_email %} {{ admin_email }} {% else %} ID: {{ entry.admin_id }} {% endif %} {% else %} System {% endif %} | {{ entry.action }} | {{ entry.message or '-' }} |
| Time (UTC) | Admin | Action | Data |
|---|---|---|---|
| {{ entry.created_at.strftime("%Y-%m-%d %H:%M") }} | {% if entry.admin %} {{ entry.admin.email }} {% else %} Unknown {% endif %} | {{ helper.action_name(entry.action) }} | {{ entry.data }} |
| ID | Verified | Status | Created | |
|---|---|---|---|---|
{{ user.id }}
|
{{ highlight_email(user.email, query, is_regex) }} | {{ badge_status(user.activated, 'Yes', 'No', 'success', 'warning') }} | {{ badge_status(not user.disabled, 'Enabled', 'Disabled', 'success', 'danger') }} | {{ user.created_at.strftime("%Y-%m-%d %H:%M") }} |
| ID | Partner Email | User ID | User Email | Created |
|---|---|---|---|---|
{{ pu.id }}
|
{{ highlight_email(pu.partner_email, query, is_regex) }} |
{{ pu.user.id }}
|
{{ pu.user.email }} | {{ pu.created_at.strftime("%Y-%m-%d %H:%M") }} |