Browse Source

HUE-8530 [organization] Avoid dependency in organization when not in used

Romain 5 years ago
parent
commit
c30ee040fa
2 changed files with 30 additions and 23 deletions
  1. 1 23
      apps/useradmin/src/useradmin/models.py
  2. 29 0
      apps/useradmin/src/useradmin/organization.py

+ 1 - 23
apps/useradmin/src/useradmin/models.py

@@ -233,31 +233,9 @@ class ConnectorPermission(BasePermission):
     unique_together = ('connector', 'action',)
 
 
-class OrganizationConnectorPermissionManager(models.Manager):
-
-  def get_queryset(self):
-    """Restrict to only organization"""
-    queryset = super(OrganizationConnectorPermissionManager, self).get_queryset()
-    return _fitered_queryset(queryset)
-
-class OrganizationConnectorPermission(ConnectorPermission):
-  organization = models.ForeignKey(Organization)
-
-  objects = OrganizationConnectorPermissionManager()
-
-  def __init__(self, *args, **kwargs):
-    if not kwargs.get('organization'):
-      kwargs['organization'] = get_user_request_organization()
-
-    super(OrganizationConnectorPermission, self).__init__(*args, **kwargs)
-
-  class Meta(ConnectorPermission.Meta):
-    abstract = True
-    unique_together = ('connector', 'action', 'organization',)
-
-
 if ENABLE_CONNECTORS.get():
   if ENABLE_ORGANIZATIONS.get():
+    from useradmin.organization import OrganizationConnectorPermission
     class HuePermission(OrganizationConnectorPermission): pass
   else:
     class HuePermission(ConnectorPermission): pass

+ 29 - 0
apps/useradmin/src/useradmin/organization.py

@@ -17,6 +17,11 @@
 
 from crequest.middleware import CrequestMiddleware
 
+from django.db import connection, models, transaction
+
+from desktop.conf import ENABLE_ORGANIZATIONS
+
+
 
 def default_organization():
   from useradmin.models import Organization
@@ -42,3 +47,27 @@ def _fitered_queryset(queryset, by_owner=False):
     queryset = queryset.filter(**filters)
 
   return queryset
+
+
+if ENABLE_ORGANIZATIONS.get():
+  class OrganizationConnectorPermissionManager(models.Manager):
+
+    def get_queryset(self):
+      """Restrict to only organization"""
+      queryset = super(OrganizationConnectorPermissionManager, self).get_queryset()
+      return _fitered_queryset(queryset)
+
+  class OrganizationConnectorPermission(ConnectorPermission):
+    organization = models.ForeignKey(Organization)
+
+    objects = OrganizationConnectorPermissionManager()
+
+    def __init__(self, *args, **kwargs):
+      if not kwargs.get('organization'):
+        kwargs['organization'] = get_user_request_organization()
+
+      super(OrganizationConnectorPermission, self).__init__(*args, **kwargs)
+
+    class Meta(ConnectorPermission.Meta):
+      abstract = True
+      unique_together = ('connector', 'action', 'organization',)