Current Path: > > opt > cloudlinux > venv > lib64 > python3.11 > > site-packages > clcommon > public_hooks
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
__pycache__ | Directory | - | - | |
bin | Directory | - | - | |
bundle | Directory | - | - | |
configs | Directory | - | - | |
lib | Directory | - | - | |
README.md | File | 1883 bytes | June 23 2025 12:47:48. | |
__init__.py | File | 2560 bytes | June 23 2025 12:47:48. |
#Description All hooks in the new system are grouped by objects that this event affects. Those, create one hook to change a domain (any!), another to change a user. Each hook must have a formal description of the available methods that you can subscribe to. Example: class ModifyUserHook(object): HOOK_VERSION = 1 @hook_method def pre_create_user(self, username, owner, **kwargs): pass @hook_method def post_create_user(self, username, owner, **kwargs): pass @hook_method def pre_rename_user(self, username, new_name, **kwargs): pass @hook_method def post_rename_user(self, username, new_name, **kwargs): pass It is proposed to form methods according to the template: def [post|pre]_(action)_(object)(self, arg1, arg2, **kwargs): To create a new panel event listener, you need to create a .py file in the folder `/usr/share/cloudlinux/hooks/listeners/`. In that file, you should create class that inherits from one (or several!) of universal hooks, and the required methods must be redefined. #!/opt/cloudlinux/venv/bin/python3 # coding=utf-8 import subprocess import sys from clcommon.public_hooks.lib import ModifyUserHook, ModifyDomainHook class SyncMapHook(ModifyUserHook, ModifyDomainHook): @staticmethod def call_sync_map(): # no matter def post_create_user(self, username, owner, **kwargs): self.call_sync_map() def post_delete_user(self, username, **kwargs): self.call_sync_map() def post_transit_user(self, username, new_name, **kwargs): self.call_sync_map() In the example above, we subscribe to three events: - post_create_user; - post_delete_user; - post_transit_user. See detailed description in userland docs.
SILENT KILLER Tool