X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fcore%2Fmodels%2Fuser.py;h=32f207863ca212df9cef8117c1f58c2764a837ec;hb=46c2d5056e93a5f60987cfe9fa7604f010ceb613;hp=f00d5eb6791fb6b2a0068aaecd6d45f6ffc9b997;hpb=5cbadf87a3d8f0b749c19b2b41be248d8ffb763c;p=plstackapi.git diff --git a/planetstack/core/models/user.py b/planetstack/core/models/user.py index f00d5eb..32f2078 100644 --- a/planetstack/core/models/user.py +++ b/planetstack/core/models/user.py @@ -2,11 +2,11 @@ import os import datetime from collections import defaultdict from django.db import models -from core.models import PlCoreBase -from core.models import Site +from core.models import PlCoreBase,Site from django.contrib.auth.models import AbstractBaseUser, BaseUserManager from timezones.fields import TimeZoneField + # Create your models here. class UserManager(BaseUserManager): def create_user(self, email, firstname, lastname, password=None): @@ -55,19 +55,26 @@ class User(AbstractBaseUser): db_index=True, ) + username = models.CharField(max_length=255, default="Something" ) + + kuser_id = models.CharField(null=True, blank=True, help_text="keystone user id", max_length=200) firstname = models.CharField(help_text="person's given name", max_length=200) lastname = models.CharField(help_text="person's surname", max_length=200) phone = models.CharField(null=True, blank=True, help_text="phone number contact", max_length=100) user_url = models.URLField(null=True, blank=True) - site = models.ForeignKey(Site, related_name='users', verbose_name="Site this user will be homed too", null=True) + site = models.ForeignKey(Site, related_name='users', help_text="Site this user will be homed too", null=True) public_key = models.TextField(null=True, blank=True, max_length=1024, help_text="Public key string") is_active = models.BooleanField(default=True) is_admin = models.BooleanField(default=True) is_staff = models.BooleanField(default=True) + created = models.DateTimeField(auto_now_add=True) + updated = models.DateTimeField(auto_now=True) + enacted = models.DateTimeField(null=True, default=None) + timezone = TimeZoneField() objects = UserManager() @@ -100,33 +107,24 @@ class User(AbstractBaseUser): # Simplest possible answer: Yes, always return True - def get_roles(self): - from core.models.site import SitePrivilege - from core.models.slice import SliceMembership - - site_privileges = SitePrivilege.objects.filter(user=self) - slice_memberships = SliceMembership.objects.filter(user=self) - roles = defaultdict(list) - for site_privilege in site_privileges: - roles[site_privilege.role.role_type].append(site_privilege.site.login_base) - for slice_membership in slice_memberships: - roles[slice_membership.role.role_type].append(slice_membership.slice.name) - return roles + def is_superuser(self): + return False + +# def get_roles(self): +# from core.models.site import SitePrivilege +# from core.models.slice import SliceMembership +# +# site_privileges = SitePrivilege.objects.filter(user=self) +# slice_memberships = SliceMembership.objects.filter(user=self) +# roles = defaultdict(list) +# for site_privilege in site_privileges: +# roles[site_privilege.role.role_type].append(site_privilege.site.login_base) +# for slice_membership in slice_memberships: +# roles[slice_membership.role.role_type].append(slice_membership.slice.name) +# return roles def save(self, *args, **kwds): - if not hasattr(self, 'os_manager'): - from openstack.manager import OpenStackManager - setattr(self, 'os_manager', OpenStackManager()) - self.os_manager.save_user(self) - if not self.id: self.set_password(self.password) + self.username = self.email super(User, self).save(*args, **kwds) - - def delete(self, *args, **kwds): - if not hasattr(self, 'os_manager'): - from openstack.manager import OpenStackManager - setattr(self, 'os_manager', OpenStackManager()) - self.os_manager.delete_user(self) - - super(User, self).delete(*args, **kwds)