Просмотр исходного кода

HUE-8530 [organization] Consolidate models together

Romain 6 лет назад
Родитель
Сommit
e6aae4db7b
1 измененных файлов с 46 добавлено и 41 удалено
  1. 46 41
      apps/useradmin/src/useradmin/models.py

+ 46 - 41
apps/useradmin/src/useradmin/models.py

@@ -66,46 +66,50 @@ LOG = logging.getLogger(__name__)
 #  Organizations
 # -----------------------------------------------------------------------
 
-class OrganizationManager(models.Manager):
-  use_in_migrations = True
+# TODO models2.py
 
-  def get_by_natural_key(self, name):
-    return self.get(name=name)
+if ENABLE_ORGANIZATIONS.get():
 
-class Organization(models.Model):
-  name = models.CharField(max_length=200, help_text=_t("The name of the organization"))
-  is_active = models.BooleanField(default=True)
+  class OrganizationManager(models.Manager):
+    use_in_migrations = True
 
-  objects = OrganizationManager()
+    def get_by_natural_key(self, name):
+      return self.get(name=name)
 
+  class Organization(models.Model):
+    name = models.CharField(max_length=200, help_text=_t("The name of the organization"))
+    is_active = models.BooleanField(default=True)
 
-class OrganizationGroupManager(models.Manager):
+    objects = OrganizationManager()
 
-  def natural_key(self):
-    return (self.organization, self.name,)
 
-class OrganizationGroup(models.Model):
-  name = models.CharField(_t('name'), max_length=80, unique=False)
-  organization = models.ForeignKey(Organization)
+  class OrganizationGroupManager(models.Manager):
 
-  permissions = models.ManyToManyField(
-      'HuePermission',
-      verbose_name=_t('permissions'),
-      blank=True,
-  )
+    def natural_key(self):
+      return (self.organization, self.name,)
 
-  objects = OrganizationGroupManager()
+  class OrganizationGroup(models.Model):
+    name = models.CharField(_t('name'), max_length=80, unique=False)
+    organization = models.ForeignKey(Organization)
 
-  class Meta:
-    verbose_name = _t('organization group')
-    verbose_name_plural = _t('organization groups')
-    unique_together = ('name', 'organization',)
+    permissions = models.ManyToManyField(
+        'HuePermission',
+        verbose_name=_t('permissions'),
+        blank=True,
+    )
 
-  def __str__(self):
-    return '%s %s' % (self.organization, self.name)
+    objects = OrganizationGroupManager()
+
+    class Meta:
+      verbose_name = _t('organization group')
+      verbose_name_plural = _t('organization groups')
+      unique_together = ('name', 'organization',)
+
+    def __str__(self):
+      return '%s %s' % (self.organization, self.name)
 
 
-class UserManager(BaseUserManager):
+  class UserManager(BaseUserManager):
     """Define a model manager for User model with no username field."""
 
     use_in_migrations = True
@@ -138,23 +142,23 @@ class UserManager(BaseUserManager):
 
         return self._create_user(email, password, **extra_fields)
 
-def default_organization():
-  default_organization, created = Organization.objects.get_or_create(name='default')
-  return default_organization
+  def default_organization():
+    default_organization, created = Organization.objects.get_or_create(name='default')
+    return default_organization
 
-class OrganizationUser(AbstractUser):
-    """User model."""
+  class OrganizationUser(AbstractUser):
+      """User model."""
 
-    username = None
-    email = models.EmailField(_t('email address'), unique=True)
-    token = models.CharField(_t('token'), max_length=128, default=None, null=True)
-    customer_id = models.CharField(_t('Customer id'), max_length=128, default=None, null=True)
-    organization = models.ForeignKey(Organization, on_delete=models.CASCADE, default=None)
+      username = None
+      email = models.EmailField(_t('email address'), unique=True)
+      token = models.CharField(_t('token'), max_length=128, default=None, null=True)
+      customer_id = models.CharField(_t('Customer id'), max_length=128, default=None, null=True)
+      organization = models.ForeignKey(Organization, on_delete=models.CASCADE, default=None)
 
-    USERNAME_FIELD = 'email'
-    REQUIRED_FIELDS = []
+      USERNAME_FIELD = 'email'
+      REQUIRED_FIELDS = []
 
-    objects = UserManager()
+      objects = UserManager()
 
 
 if ENABLE_ORGANIZATIONS.get():
@@ -289,7 +293,8 @@ class HuePermission(models.Model):
   """
   Set of non-object specific permissions that an app supports.
 
-  For now, we only assign permissions to groups, though that may change.
+  Currently only assign permissions to groups (not users or roles).
+  Could be move to support Apache Ranger permissions, AWS IAM... for Hue and connector access.
   """
   app = models.CharField(max_length=30)
   action = models.CharField(max_length=100)