1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2024-12-26 08:05:22 +00:00
webvirtcloud/accounts/models.py

83 lines
2.5 KiB
Python
Raw Normal View History

from django.contrib.auth.models import User
from django.core.validators import MinValueValidator
from django.db import models
from django.utils.translation import gettext_lazy as _
from instances.models import Instance
2015-02-27 08:53:51 +00:00
2020-07-13 09:33:09 +00:00
class UserInstanceManager(models.Manager):
def get_queryset(self):
2022-11-02 05:54:35 +00:00
return super().get_queryset().select_related("instance", "user")
2015-02-27 08:53:51 +00:00
2020-10-14 08:37:46 +00:00
class UserInstance(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
instance = models.ForeignKey(Instance, on_delete=models.CASCADE)
is_change = models.BooleanField(default=False)
is_delete = models.BooleanField(default=False)
is_vnc = models.BooleanField(default=False)
2015-02-27 08:53:51 +00:00
2020-07-13 09:33:09 +00:00
objects = UserInstanceManager()
def __str__(self):
2022-11-02 05:54:35 +00:00
return _('Instance "%(inst)s" of user %(user)s') % {
"inst": self.instance,
"user": self.user,
}
2020-06-16 12:35:08 +00:00
class Meta:
2022-11-02 05:54:35 +00:00
unique_together = ["user", "instance"]
2015-05-27 11:10:57 +00:00
class UserSSHKey(models.Model):
user = models.ForeignKey(User, on_delete=models.DO_NOTHING)
2022-11-02 05:54:35 +00:00
keyname = models.CharField(_("key name"), max_length=25)
keypublic = models.CharField(_("public key"), max_length=500)
2015-05-27 11:10:57 +00:00
def __str__(self):
2015-05-27 11:10:57 +00:00
return self.keyname
class UserAttributes(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
2020-05-28 12:19:25 +00:00
can_clone_instances = models.BooleanField(default=True)
2022-11-02 05:54:35 +00:00
max_instances = models.IntegerField(
_("max instances"),
default=2,
help_text=_("-1 for unlimited. Any integer value"),
validators=[MinValueValidator(-1)],
)
max_cpus = models.IntegerField(
2022-11-02 05:54:35 +00:00
_("max CPUs"),
2020-04-24 16:34:29 +00:00
default=2,
help_text=_("-1 for unlimited. Any integer value"),
validators=[MinValueValidator(-1)],
)
max_memory = models.IntegerField(
2022-11-02 05:54:35 +00:00
_("max memory"),
default=2048,
help_text=_("-1 for unlimited. Any integer value"),
validators=[MinValueValidator(-1)],
)
max_disk_size = models.IntegerField(
2022-11-02 05:54:35 +00:00
_("max disk size"),
default=20,
help_text=_("-1 for unlimited. Any integer value"),
validators=[MinValueValidator(-1)],
)
def __str__(self):
return self.user.username
class PermissionSet(models.Model):
"""
Dummy model for holding set of permissions we need to be automatically added by Django
"""
2022-11-02 05:54:35 +00:00
class Meta:
default_permissions = ()
2022-11-02 05:54:35 +00:00
permissions = (("change_password", _("Can change password")),)
managed = False