]> git.frykholm.com Git - tranquillity.git/blobdiff - customerportal/models.py
Djangocon coding
[tranquillity.git] / customerportal / models.py
index 71a836239075aa6e6e4ecb700e9c42c95c022d91..9a36b9f3154d8924ee51d5db7b86d16671ddb1f0 100644 (file)
@@ -1,3 +1,75 @@
 from django.db import models
+from django.contrib.auth.models import User
+from django.contrib.auth.models import AbstractUser
+from django.contrib.auth.models import AbstractUser, BaseUserManager ## A new class is imported. ##
+from django.db import models
+from django.utils.translation import ugettext_lazy as _
+
+
+class UserManager(BaseUserManager):
+    """Define a model manager for User model with no username field."""
+
+    use_in_migrations = True
+
+    def _create_user(self, email, password, **extra_fields):
+        """Create and save a User with the given email and password."""
+        if not email:
+            raise ValueError('The given email must be set')
+        email = self.normalize_email(email)
+        user = self.model(email=email, **extra_fields)
+        user.set_password(password)
+        user.save(using=self._db)
+        return user
+
+    def create_user(self, email, password=None, **extra_fields):
+        """Create and save a regular User with the given email and password."""
+        extra_fields.setdefault('is_staff', False)
+        extra_fields.setdefault('is_superuser', False)
+        return self._create_user(email, password, **extra_fields)
+
+    def create_superuser(self, email, password, **extra_fields):
+        """Create and save a SuperUser with the given email and password."""
+        extra_fields.setdefault('is_staff', True)
+        extra_fields.setdefault('is_superuser', True)
+
+        if extra_fields.get('is_staff') is not True:
+            raise ValueError('Superuser must have is_staff=True.')
+        if extra_fields.get('is_superuser') is not True:
+            raise ValueError('Superuser must have is_superuser=True.')
+
+        return self._create_user(email, password, **extra_fields)
+
+
+class User(AbstractUser):
+    username           = None
+    fortnox_external_id = models.IntegerField()
+    gpg_public_key      = models.CharField(null=True, max_length=4096)
+    ssh_public_key      = models.CharField(null=True, max_length=4096)
+    last_login          = models.DateField(null=True)
+    cos_id              = models.CharField(null=True, max_length=4096)
+    cos_contractid      = models.CharField(null=True, max_length=4096)
+    cos_anlaggningsid   = models.CharField(null=True, max_length=4096)
+    USERNAME_FIELD = 'email'
+    REQUIRED_FIELDS = ['fortnox_external_id']
+    objects = UserManager() ## This is the new line in the User model. ##
+
+class vps(models.Model):
+    user = models.ForeignKey(to=User, on_delete=models.CASCADE)
+    uuid = models.CharField(max_length=4096)
+    
+class physical_server(models.Model):
+    user = models.ForeignKey(to=User, on_delete=models.CASCADE)
+    rack = models.CharField(max_length=4096)
+    unit = models.IntegerField()
+
+class IP(models.Model):
+    user = models.ForeignKey(to=User, on_delete=models.CASCADE)
+    cidr = models.CharField(max_length=4096)
+
 
-# Create your models here.
+# graph resources
+#  port on device (realtime) autodetect on description(Cust: fortnox_external_id)
+#  cpu
+#  memory
+#  disks
+#