X-Git-Url: https://git.frykholm.com/tranquillity.git/blobdiff_plain/93be18536faaa33c9c2d3a4e5625fa7bfca8eb20..HEAD:/customerportal/models.py diff --git a/customerportal/models.py b/customerportal/models.py index 71a8362..9a36b9f 100644 --- a/customerportal/models.py +++ b/customerportal/models.py @@ -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 +#