Merge pick up, tweaked role/site/plcore_base or os_manager path when OpenStack not...
[plstackapi.git] / planetstack / core / models / user.py
similarity index 81%
rename from plstackapi/core/models/pluser.py
rename to planetstack/core/models/user.py
index 8d09310..38c0d89 100644 (file)
@@ -2,14 +2,14 @@ import os
 import datetime
 from collections import defaultdict
 from django.db import models
-from plstackapi.core.models import PlCoreBase
-from plstackapi.core.models import Site
-from plstackapi.openstack.manager import OpenStackManager
-from django.contrib.auth.models import User, AbstractBaseUser, UserManager, BaseUserManager
+from core.models import PlCoreBase
+from core.models import Site
+from core.models import Key
+from openstack.manager import OpenStackManager
+from django.contrib.auth.models import AbstractBaseUser, BaseUserManager
 
 # Create your models here.
-
-class PLUserManager(BaseUserManager):
+class UserManager(BaseUserManager):
     def create_user(self, email, firstname, lastname, password=None):
         """
         Creates and saves a User with the given email, date of
@@ -19,7 +19,7 @@ class PLUserManager(BaseUserManager):
             raise ValueError('Users must have an email address')
 
         user = self.model(
-            email=PLUserManager.normalize_email(email),
+            email=UserManager.normalize_email(email),
             firstname=firstname,
             lastname=lastname,
             password=password
@@ -44,7 +44,7 @@ class PLUserManager(BaseUserManager):
         return user
 
 
-class PLUser(AbstractBaseUser):
+class User(AbstractBaseUser):
 
     class Meta:
         app_label = "core"
@@ -56,19 +56,20 @@ class PLUser(AbstractBaseUser):
         db_index=True,
     )
 
-    user_id = models.CharField(null=True, blank=True, help_text="keystone user id", max_length=200) 
+    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)
+    key = models.ForeignKey(Key, related_name='user', null=True, blank=True)
 
     is_active = models.BooleanField(default=True)
-    is_admin = models.BooleanField(default=False)
+    is_admin = models.BooleanField(default=True)
     is_staff = models.BooleanField(default=True)
 
-    objects = PLUserManager()
+    objects = UserManager()
 
     USERNAME_FIELD = 'email'
     REQUIRED_FIELDS = ['firstname', 'lastname']
@@ -110,15 +111,15 @@ class PLUser(AbstractBaseUser):
     def save(self, *args, **kwds):
         if not hasattr(self, 'os_manager'):
             setattr(self, 'os_manager', OpenStackManager())
+            self.os_manager.save_user(self)
 
-        self.os_manager.save_user(self)
         if not self.id:
             self.set_password(self.password)    
-        super(PLUser, self).save(*args, **kwds)   
+        super(User, self).save(*args, **kwds)   
 
     def delete(self, *args, **kwds):
         if not hasattr(self, 'os_manager'):
             setattr(self, 'os_manager', OpenStackManager())
+            self.os_manager.delete_user(self)
 
-        self.os_manager.delete_user(self)
-        super(PLUser, self).delete(*args, **kwds)    
+        super(User, self).delete(*args, **kwds)