From c0a10a4c71b8c6bbd04caee1fc3b2123e3e324dc Mon Sep 17 00:00:00 2001 From: lian Date: Tue, 19 Aug 2025 16:33:58 +0800 Subject: [PATCH] org operation signal (#8120) --- seahub/organizations/__init__.py | 16 +++++----------- seahub/organizations/models.py | 6 ++++++ seahub/organizations/signals.py | 3 +-- seahub/organizations/views.py | 8 +++++--- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/seahub/organizations/__init__.py b/seahub/organizations/__init__.py index d6b222a89e..30c6b325d0 100644 --- a/seahub/organizations/__init__.py +++ b/seahub/organizations/__init__.py @@ -1,22 +1,16 @@ import os import sys import logging -from seahub.organizations.signals import org_created, org_reactivated +from seahub.organizations.signals import org_operation_signal logger = logging.getLogger(__name__) try: conf_dir = os.environ['SEAFILE_CENTRAL_CONF_DIR'] sys.path.append(conf_dir) try: - from seahub_custom_functions import org_created_callback - org_created.connect(org_created_callback) + from seahub_custom_functions import org_operation_callback + org_operation_signal.connect(org_operation_callback) except ImportError as e: - logger.debug(e) - - try: - from seahub_custom_functions import org_reactivated_callback - org_reactivated.connect(org_reactivated_callback) - except ImportError as e: - logger.debug(e) + logger.error(e) except KeyError as e: - logger.debug(e) + logger.error(e) diff --git a/seahub/organizations/models.py b/seahub/organizations/models.py index d0261eec7f..e4514bd4c7 100644 --- a/seahub/organizations/models.py +++ b/seahub/organizations/models.py @@ -10,6 +10,7 @@ from seahub.constants import DEFAULT_ORG from seahub.role_permissions.utils import get_available_roles from seahub.avatar.util import get_avatar_file_storage from seahub.avatar.settings import AVATAR_STORAGE_DIR +from seahub.organizations.signals import org_operation_signal logger = logging.getLogger(__name__) @@ -88,6 +89,11 @@ class OrgSettingsManager(models.Manager): if is_active is not None: settings.is_active = is_active + try: + org_operation_signal.send(sender=None, org=org, + operation='active' if is_active else 'inactive') + except Exception as e: + logger.error(e) settings.save(using=self._db) return settings diff --git a/seahub/organizations/signals.py b/seahub/organizations/signals.py index eafd4490e8..5ff913d55e 100644 --- a/seahub/organizations/signals.py +++ b/seahub/organizations/signals.py @@ -2,6 +2,5 @@ from django.dispatch import Signal # A new org is created -org_created = Signal() -org_reactivated = Signal() +org_operation_signal = Signal() org_last_activity = Signal() diff --git a/seahub/organizations/views.py b/seahub/organizations/views.py index 62dd952889..6007b21511 100644 --- a/seahub/organizations/views.py +++ b/seahub/organizations/views.py @@ -28,7 +28,7 @@ from seahub.utils import get_service_url, render_error from seahub.utils.auth import get_login_bg_image_path from seahub.organizations.models import OrgSettings -from seahub.organizations.signals import org_created, org_reactivated +from seahub.organizations.signals import org_operation_signal from seahub.organizations.decorators import org_staff_required from seahub.organizations.forms import OrgRegistrationForm from seahub.organizations.settings import ORG_AUTO_URL_PREFIX, \ @@ -253,7 +253,10 @@ def org_register(request): create_org(org_name, url_prefix, new_user.username) new_org = get_org_by_url_prefix(url_prefix) - org_created.send(sender=None, email=email, org=new_org) + try: + org_operation_signal.send(sender=None, org=new_org, operation='create') + except Exception as e: + logger.error(e) if name: Profile.objects.add_or_update(new_user.username, name) @@ -360,5 +363,4 @@ def org_reactivate(request, token): invite.accept() OrgSettings.objects.add_or_update(org, is_active=True) - org_reactivated.send(sender=None, email=None, org=org) return HttpResponseRedirect(settings.SITE_ROOT)