| Server IP : 85.214.239.14 / Your IP : 216.73.216.27 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 : /proc/3/root/srv/modoboa/env/lib/python3.5/site-packages/modoboa/lib/ |
Upload File : |
from modoboa.lib.cryptutils import decrypt
class ConnectionsManager(type):
"""
Singleton pattern implementation.
This class is specialized in connection management.
"""
def __init__(self, name, bases, ctx):
super(ConnectionsManager, self).__init__(name, bases, ctx)
self.instances = {}
def __call__(self, **kwargs):
key = None
if "user" in kwargs:
key = kwargs["user"]
else:
return None
if key not in self.instances:
self.instances[key] = None
if "password" in kwargs:
kwargs["password"] = decrypt(kwargs["password"])
if self.instances[key] is None:
self.instances[key] = \
super(ConnectionsManager, self).__call__(**kwargs)
else:
self.instances[key].refresh(key, kwargs["password"])
return self.instances[key]
class ConnectionError(Exception):
pass