HEX
Server: LiteSpeed
System: Linux php-prod-3.spaceapp.ru 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025 x86_64
User: sarli3128 (1010)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //usr/local/CyberCP/postfixSenderPolicy/policyConstraint.py
from emailPremium.models import DomainLimits, EmailLimits, EmailLogs
from mailServer.models import Domains, EUsers

class emailConstraints:
    def __init__(self, emailAddress, monthlyLimits, monthlyUsed, hourlyLimits, hourlyUsed, limitStatus, logStatus):
        self.emailAddress = emailAddress
        self.monthlyLimits = monthlyLimits
        self.monthlyUsed = monthlyUsed
        self.hourlyLimits = hourlyLimits
        self.hourlyUsed = hourlyUsed
        self.limitStatus = limitStatus
        self.logStatus = logStatus

class policyConstraints:
    def __init__(self, domain, monthlyLimits, monthlyUsed, limitStatus):
        self.domain = domain
        self.emails = {}
        self.monthlyLimits = monthlyLimits
        self.monthlyUsed = monthlyUsed
        self.limitStatus = limitStatus


    def findEmailOBJ(self, emailAddress):
        if emailAddress in self.emails:
            return self.emails[emailAddress]
        else:
            email = EUsers.objects.get(email=emailAddress)
            emailLTS = EmailLimits.objects.get(email=email)
            newEmail = emailConstraints(emailAddress, emailLTS.monthlyLimits, emailLTS.monthlyUsed, emailLTS.hourlyLimit,
                                        emailLTS.hourlyUsed, emailLTS.limitStatus, emailLTS.emailLogs)
            self.emails[emailAddress] = newEmail
            return newEmail