| Server IP : 85.214.239.14 / Your IP : 216.73.216.150 Web Server : Apache/2.4.65 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 8.2.29 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /srv/modoboa/env/lib64/python3.5/site-packages/modoboa_pdfcredentials/ |
Upload File : |
"""PDF credentials handlers."""
import os
from django.urls import reverse
from django.db.models import signals
from django.dispatch import receiver
from django.utils.translation import ugettext as _
from modoboa.core import models as core_models
from modoboa.core import signals as core_signals
from modoboa.parameters import tools as param_tools
from .documents import credentials
from .lib import init_storage_dir, delete_credentials, get_creds_filename
@receiver(core_signals.account_password_updated)
def password_updated(sender, account, password, created, **kwargs):
"""Create or update document."""
generate_at_creation = param_tools.get_global_parameter(
"generate_at_creation")
if (generate_at_creation and not created) or account.is_superuser:
return
init_storage_dir()
credentials(account, password)
@receiver(signals.pre_delete, sender=core_models.User)
def account_deleted(sender, instance, **kwargs):
"""Remove document."""
delete_credentials(instance)
@receiver(core_signals.extra_account_actions)
def extra_account_actions(sender, account, **kwargs):
"""Add link to download document."""
fname = get_creds_filename(account)
if not os.path.exists(fname):
return []
return [{
"name": "get_credentials",
"url": reverse("modoboa_pdfcredentials:account_credentials",
args=[account.id]),
"img": "fa fa-download",
"title": _("Retrieve user's credentials as a PDF document")
}]