{% 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() %}
{# Account Information - 3/4 width #}
Account Information
{# Row 1: Identity & Subscription #}
Identity
{% if user.name %} {% endif %} {% if user.referral %} {% endif %}
ID: {{ user.id }}
Email: {{ user.email }}{{ copy_btn(user.email) }}
Name: {{ user.name }}
Proton: {% if pu %} {{ pu.partner_email }}{{ copy_btn(pu.partner_email) }}
{{ pu.external_user_id }}{{ copy_btn(pu.external_user_id) }} {% else %} Not linked {% endif %}
Referral: {{ user.referral.code }}
Subscription
{% if user.trial_end and not user.lifetime and not active_sub %} {% endif %}
Type: {% if user.lifetime %} Lifetime {% if user.paid_lifetime %}(Paid){% endif %} {% elif active_sub %} {% if active_sub.__class__.__name__ == 'Subscription' %} Paddle {% elif active_sub.__class__.__name__ == 'AppleSubscription' %} Apple {% elif active_sub.__class__.__name__ == 'ManualSubscription' %} Manual {% if active_sub.is_giveaway %}(Giveaway){% endif %} {% elif active_sub.__class__.__name__ == 'CoinbaseSubscription' %} Coinbase {% elif active_sub.__class__.__name__ == 'PartnerSubscription' %} Partner {% else %} {{ active_sub.__class__.__name__ }} {% endif %} {% else %} Free {% endif %}
End: {% if user.lifetime %} Never {% elif sub_end %} {{ sub_end.format("YYYY-MM-DD") }} {{ sub_end.humanize() }} {% else %} {% set sub_end_date = helper.subscription_end_date(active_sub) %} {% if sub_end_date %} {{ sub_end_date.format("YYYY-MM-DD") }} {{ sub_end_date.humanize() }} {% else %} N/A {% endif %} {% endif %}
Trial: {{ user.trial_end.format("YYYY-MM-DD") }} {{ user.trial_end.humanize() }}
Paid: {{ badge_status(user.is_paid() , 'Yes', 'No', 'info', 'secondary') }}
Premium: {{ badge_status(user.is_premium() , 'Yes', 'No', 'info', 'secondary') }}
{# Row 2: Status & Dates/Quotas #}
Status
Verified: {{ badge_status(user.activated, 'Yes', 'No', 'success', 'warning') }}
Enabled: {{ badge_status(not user.disabled, 'Yes', 'No', 'success', 'danger') }}
Admin: {{ badge_status(user.is_admin, 'Yes', 'No', 'warning', 'secondary') }}
TOTP: {{ badge_status(user.enable_otp, 'Yes', 'No', 'info', 'secondary') }}
FIDO: {{ badge_status(user.fido_uuid, 'Yes', 'No', 'info', 'secondary') }}
Flags: {{ user.flags or 0 }}{% set flag_names = helper.user_flags(user) %} {% if flag_names %}{{ flag_names|join(", ") }}{% endif %}
Dates & Quotas
Created: {{ user.created_at.strftime("%Y-%m-%d %H:%M") }}
Updated: {{ user.updated_at.strftime("%Y-%m-%d %H:%M") }}
Deletion: {% if user.delete_on %} {{ user.delete_on.format("YYYY-MM-DD") }} {% else %} Not scheduled {% endif %}
Subdomain: {{ user.subdomain_quota }} left
Directory: {{ user.directory_quota }} left
{# Admin Actions - 1/4 width #}
Actions Caution
{# Action Buttons #}
User Actions {% if user.disabled %} {% else %} {% endif %} {% if pu %} {% endif %} {% if user.enable_otp or user.fido_uuid %}
{% endif %} {% if user.delete_on %}
{% endif %}
{# Quotas #}
Update Quotas
Subdomain
Directory
{# Spacer to push delete to bottom #}
{# Delete User - fixed at bottom like a footer #}
{%- 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 #} {# Directory Quota Modal #} {%- endmacro %} {% macro alias_actions_card(alias) %}
Alias Actions Caution
{# Toggle Status Button #} {% if alias.enabled %} {% else %} {% endif %} {# Spacer + Delete at bottom #}
{# Disable Alias Modal #} {% if alias.enabled %} {% endif %} {# Enable Alias Modal #} {% if not alias.enabled %} {% endif %} {# Delete Alias Modal #} {% endmacro %} {% macro alias_info_card(alias) %} {% set alias_flag_names = helper.alias_flags(alias) %}
Alias Information
Identity
{% if alias.name %} {% endif %} {% if alias.custom_domain %} {% endif %} {% if alias.directory %} {% endif %} {% if alias.note %} {% endif %}
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 }}
Statistics & Dates
{% if alias.delete_on %} {% endif %}
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") }}
{% endmacro %} {% macro user_quotas_card(user) -%}
Quotas
Current: {{ user._subdomain_quota }}
Current: {{ user._directory_quota }}
{%- endmacro %} {% macro mailboxes_table(message, mbox_count, mboxes, is_regex, highlight_mailbox_email=none, current_page=1, total_pages=1, page_size=50) %}
{{ message }} {{ mbox_count }} total {% if mbox_count > page_size %} (showing {{ page_size }}, page {{ current_page }}/{{ total_pages }}) {% endif %}
{% if is_regex %}Regex Match{% endif %}
{% for mailbox in mboxes %} {# Set Default Mailbox Modal #} {% if mailbox.user.default_mailbox_id != mailbox.id and mailbox.verified and not mailbox.is_admin_disabled() %} {% endif %} {# Re-enable Mailbox Modal #} {% if mailbox.is_admin_disabled() %} {% else %} {# Warn Mailbox Modal #} {# Disable Mailbox Modal #} {% endif %} {% endfor %}
ID Email 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 %}
{% if total_pages > 1 %} {% endif %}
{% endmacro %} {% macro aliases_table(alias_count, aliases, is_regex, current_page=1, total_pages=1, page_size=50) %}
Aliases {{ alias_count }} total {% if alias_count > page_size %} (showing {{ page_size }}, page {{ current_page }}/{{ total_pages }}) {% endif %}
{% if is_regex %}Regex Match{% endif %}
{% for alias in aliases %} {% set alias_mailboxes = helper.alias_mailboxes(alias) %} {% endfor %}
ID Email 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
{% if total_pages > 1 %} {% endif %}
{% endmacro %} {% macro contacts_table(contacts, contact_count, current_page=1, total_pages=1, page_size=25) %}
Contacts {{ contact_count }} total {% if contact_count > page_size %} (showing {{ page_size }}, page {{ current_page }}/{{ total_pages }}) {% endif %}
{% if contacts %}
{% for contact in contacts %} {% endfor %}
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") }}
{% if total_pages > 1 %} {% endif %} {% else %}
No contacts
{% endif %}
{% endmacro %} {% macro custom_domains_table(domains, domain_count, current_page=1, total_pages=1, page_size=25) %}
Custom Domains {{ domain_count }} total {% if domain_count > page_size %} (showing {{ page_size }}, page {{ current_page }}/{{ total_pages }}) {% endif %}
{% if domains %}
{% for domain in domains %} {% endfor %}
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") }}
{% if total_pages > 1 %} {% endif %} {% else %}
No custom domains
{% endif %}
{% endmacro %} {% macro deleted_aliases_table(deleted_aliases, is_regex) %}
Deleted Aliases {% if deleted_aliases|length > 10 %}(Showing 10){% endif %}
{% if is_regex %}Regex Match{% endif %}
{% for deleted_alias in deleted_aliases %} {% endfor %}
ID Email 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' }}
{% endmacro %} {% macro domain_deleted_aliases_table(domain_deleted_aliases, is_regex) %}
Domain Deleted Aliases {% if domain_deleted_aliases|length > 10 %}(Showing 10){% endif %}
{% if is_regex %}Regex Match{% endif %}
{% for dda in domain_deleted_aliases %} {% endfor %}
ID Email 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") }}
{% endmacro %} {% macro alias_audit_log_table(alias_audit_log) %}
Alias Audit Log
{% for entry in alias_audit_log %} {% else %} {% endfor %}
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
{% endmacro %} {% macro user_audit_log_table(user_audit_log) %}
User Audit Log {{ user_audit_log|length }}
{% for entry in user_audit_log %} {% endfor %}
Time (UTC) Action Message
{{ entry.created_at.strftime("%Y-%m-%d %H:%M") }} {{ entry.action }} {{ entry.message or '-' }}
{% endmacro %} {% macro abuser_audit_log_table(abuser_audit_log) %}
Abuse Audit Log {{ abuser_audit_log|length }}
{% for entry in abuser_audit_log %} {% endfor %}
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 '-' }}
{% endmacro %} {% macro admin_audit_log_table(admin_audit_log) %}
Admin Actions {{ admin_audit_log|length }}
{% for entry in admin_audit_log %} {% endfor %}
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 }}
{% endmacro %} {% macro users_table(users, is_regex) %}
Users Found {% if users|length > 10 %}(Showing 10){% endif %}
{% if is_regex %}Regex Match{% endif %}
{% for user in users %} {% endfor %}
ID Email 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") }}
{% endmacro %} {% macro partner_users_table(partner_users, is_regex) %}
Partner Users {% if partner_users|length > 10 %}(Showing 10){% endif %}
{% if is_regex %}Regex Match{% endif %}
{% for pu in partner_users %} {% endfor %}
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") }}
{% endmacro %} {% block body %}
Email Search
{% if search_type == 'alias' %} Enter the full alias email address. Only exact matches are supported. {% elif search_type == 'partner' %} Search by partner email (contains @) or external user ID. {% elif search_type == 'regex' %} Search using POSIX regex pattern in user email, mailbox email, and partner email. Limited to 10 results per table. {% else %} Search by user email, mailbox email, partner email, or user ID. Only exact matches are returned. {% endif %}
{% if data.no_match and query %} {% endif %} {% if search_type == 'alias' %} {% if data.aliases %}
{% if data.aliases_found_by_regex %} {{ data.aliases|length }} Aliases matching "{{ query }}" {% else %} Alias: {{ data.aliases[0].email }} {% endif %}
{% if not data.aliases_found_by_regex and data.aliases|length == 1 %} {{ alias_audit_log_table(data.alias_audit_log) }} {{ mailboxes_table("Mailboxes for alias", helper.alias_mailbox_count(data.aliases[0]) , helper.alias_mailboxes(data.aliases[0]), false) }} {{ contacts_table(helper.contact_list(data.aliases[0], page=contact_page) , helper.alias_contact_count(data.aliases[0]), contact_page, helper.contact_total_pages(data.aliases[0]), page_size) }} {{ user_info_card(data.aliases[0].user) }} {{ user_actions_card(data.aliases[0].user) }} {% else %} {{ aliases_table(data.aliases|length, data.aliases, data.aliases_found_by_regex) }} {% if data.alias_audit_log %} {{ alias_audit_log_table(data.alias_audit_log) }} {% endif %} {% endif %}
{% endif %} {% if data.deleted_aliases %}
{% if data.deleted_aliases_found_by_regex %} {{ data.deleted_aliases|length }} Deleted Aliases matching "{{ query }}" {% else %} Deleted Alias: {{ data.deleted_aliases[0].email }} {% endif %}
{{ deleted_aliases_table(data.deleted_aliases, data.deleted_aliases_found_by_regex) }} {% if data.deleted_alias_audit_log %}{{ alias_audit_log_table(data.deleted_alias_audit_log) }}{% endif %}
{% endif %} {% if data.domain_deleted_aliases %}
{% if data.domain_deleted_aliases_found_by_regex %} {{ data.domain_deleted_aliases|length }} Domain Deleted Aliases matching "{{ query }}" {% else %} Domain Deleted Alias: {{ data.domain_deleted_aliases[0].email }} {% endif %}
{{ domain_deleted_aliases_table(data.domain_deleted_aliases, data.domain_deleted_aliases_found_by_regex) }} {% if data.domain_deleted_alias_audit_log %} {{ alias_audit_log_table(data.domain_deleted_alias_audit_log) }} {% endif %} {% if not data.domain_deleted_aliases_found_by_regex and data.domain_deleted_aliases|length == 1 %} {{ user_info_card(data.domain_deleted_aliases[0].domain.user) }} {% endif %}
{% endif %} {% else %} {% set ns = namespace(seen_user_ids=[]) %} {% if data.users %}
{% if data.users_found_by_regex %} {{ data.users|length }} Users matching "{{ query }}" {% else %} User: {{ data.users[0].email }} {% endif %}
{% if data.users_found_by_regex %} {{ users_table(data.users, data.users_found_by_regex) }} {% else %} {% set ns.seen_user_ids = ns.seen_user_ids + [data.users[0].id] %} {{ user_info_card(data.users[0]) }} {{ user_actions_card(data.users[0]) }} {{ mailboxes_table("User Mailboxes", helper.mailbox_count(data.users[0]) , helper.mailbox_list(data.users[0], page=mailbox_page), false, none, mailbox_page, helper.mailbox_total_pages(data.users[0]), page_size) }} {{ aliases_table(helper.alias_count(data.users[0]) , helper.alias_list(data.users[0], page=alias_page), false, alias_page, helper.alias_total_pages(data.users[0]), page_size) }} {{ custom_domains_table(helper.custom_domain_list(data.users[0], page=domain_page) , helper.custom_domain_count(data.users[0]), domain_page, helper.custom_domain_total_pages(data.users[0]), page_size) }} {# Audit Logs Section #}
{% if data.user_audit_log %}{{ user_audit_log_table(data.user_audit_log) }}{% endif %}
{% if data.abuser_audit_log %}{{ abuser_audit_log_table(data.abuser_audit_log) }}{% endif %}
{% if data.admin_audit_log %}{{ admin_audit_log_table(data.admin_audit_log) }}{% endif %}
{% endif %}
{% endif %} {% if data.user_audit_log and not data.users %}
Audit log entries for: {{ data.query }}
{{ user_audit_log_table(data.user_audit_log) }}
{% endif %} {% if data.mailboxes %} {% if data.mailboxes_found_by_regex %} {# Regex search: show mailboxes table only #}
{{ data.mailbox_count }} Mailboxes matching "{{ query }}"
{{ mailboxes_table("Mailboxes found", data.mailbox_count, data.mailboxes, data.mailboxes_found_by_regex) }}
{% else %} {# Exact match: show user directly #} {% for mailbox in data.mailboxes %} {% if mailbox.user_id not in ns.seen_user_ids %} {% set ns.seen_user_ids = ns.seen_user_ids + [mailbox.user_id] %}
User: {{ mailbox.user.email }}
Found via mailbox: {{ mailbox.email }}
{{ user_info_card(mailbox.user) }} {{ user_actions_card(mailbox.user) }} {{ mailboxes_table("User Mailboxes", helper.mailbox_count(mailbox.user) , helper.mailbox_list(mailbox.user, mailbox.id, page=mailbox_page), false, mailbox.email, mailbox_page, helper.mailbox_total_pages(mailbox.user), page_size) }} {{ aliases_table(helper.alias_count(mailbox.user) , helper.alias_list(mailbox.user, page=alias_page), false, alias_page, helper.alias_total_pages(mailbox.user), page_size) }} {{ custom_domains_table(helper.custom_domain_list(mailbox.user, page=domain_page) , helper.custom_domain_count(mailbox.user), domain_page, helper.custom_domain_total_pages(mailbox.user), page_size) }} {# Audit Logs Section #} {% set user_audit = helper.user_audit_log(mailbox.user) %} {% set abuser_audit = helper.abuser_audit_log(mailbox.user) %} {% set admin_audit = helper.admin_audit_log(mailbox.user) %} {% if user_audit or abuser_audit or admin_audit %}
{% if user_audit %}{{ user_audit_log_table(user_audit) }}{% endif %}
{% if abuser_audit %}{{ abuser_audit_log_table(abuser_audit) }}{% endif %}
{% if admin_audit %}{{ admin_audit_log_table(admin_audit) }}{% endif %}
{% endif %}
{% endif %} {% endfor %} {% endif %} {% endif %} {% if data.partner_users %} {% if data.partner_users_found_by_regex %} {# Regex search: show partner users table only #}
{{ data.partner_users|length }} Partner Users matching "{{ query }}"
{{ partner_users_table(data.partner_users, data.partner_users_found_by_regex) }}
{% else %} {# Exact match: show user directly if not already shown #} {% set pu = data.partner_users[0] %} {% if pu.user_id not in ns.seen_user_ids %} {% set ns.seen_user_ids = ns.seen_user_ids + [pu.user_id] %}
User: {{ pu.user.email }}
Found via Proton account: {{ pu.partner_email }}
{{ user_info_card(pu.user) }} {{ user_actions_card(pu.user) }} {{ mailboxes_table("User Mailboxes", helper.mailbox_count(pu.user) , helper.mailbox_list(pu.user, page=mailbox_page), false, none, mailbox_page, helper.mailbox_total_pages(pu.user), page_size) }} {{ aliases_table(helper.alias_count(pu.user) , helper.alias_list(pu.user, page=alias_page), false, alias_page, helper.alias_total_pages(pu.user), page_size) }} {{ custom_domains_table(helper.custom_domain_list(pu.user, page=domain_page) , helper.custom_domain_count(pu.user), domain_page, helper.custom_domain_total_pages(pu.user), page_size) }} {# Audit Logs Section #} {% set user_audit = helper.user_audit_log(pu.user) %} {% set abuser_audit = helper.abuser_audit_log(pu.user) %} {% set admin_audit = helper.admin_audit_log(pu.user) %} {% if user_audit or abuser_audit or admin_audit %}
{% if user_audit %}{{ user_audit_log_table(user_audit) }}{% endif %}
{% if abuser_audit %}{{ abuser_audit_log_table(abuser_audit) }}{% endif %}
{% if admin_audit %}{{ admin_audit_log_table(admin_audit) }}{% endif %}
{% endif %}
{% endif %} {% endif %} {% endif %} {% endif %}
{% endblock %}