remove auto_now to be able to override migrated dates & use binary instead of hex...
authorSofia Papagiannaki <papagian@gmail.com>
Thu, 22 Sep 2011 13:18:59 +0000 (16:18 +0300)
committerSofia Papagiannaki <papagian@gmail.com>
Thu, 22 Sep 2011 13:18:59 +0000 (16:18 +0300)
pithos/aai/fixtures/auth_test_data.json
pithos/aai/models.py
pithos/aai/util.py

index 646c91e..6190739 100644 (file)
@@ -7,7 +7,8 @@
             "auth_token": "0000",
             "auth_token_created": "2011-04-07 09:17:14",
             "auth_token_expires": "2015-04-07 09:17:14",
-            "created": "2011-02-06"
+            "created": "2011-02-06",
+            "updated": "2011-02-06"
            }
     },
     {
@@ -18,7 +19,8 @@
             "auth_token": "0001",
             "auth_token_created": "2011-04-07 09:17:14",
             "auth_token_expires": "2015-04-07 09:17:14",
-            "created": "2011-02-06"
+            "created": "2011-02-06",
+            "updated": "2011-02-06"
            }
     },
     {
@@ -29,7 +31,8 @@
             "auth_token": "0002",
             "auth_token_created": "2011-04-07 09:17:14",
             "auth_token_expires": "2015-04-07 09:17:14",
-            "created": "2011-02-06"
+            "created": "2011-02-06",
+            "updated": "2011-02-06"
            }
     },
     {
@@ -40,7 +43,8 @@
             "auth_token": "0003",
             "auth_token_created": "2011-04-07 09:17:14",
             "auth_token_expires": "2015-04-07 09:17:14",
-            "created": "2011-02-06"
+            "created": "2011-02-06",
+            "updated": "2011-02-06"
            }
     },
     {
@@ -51,7 +55,8 @@
             "auth_token": "0004",
             "auth_token_created": "2011-04-07 09:17:14",
             "auth_token_expires": "2015-04-07 09:17:14",
-            "created": "2011-02-06"
+            "created": "2011-02-06",
+            "updated": "2011-02-06"
            }
     },
     {
@@ -62,7 +67,8 @@
             "auth_token": "0005",
             "auth_token_created": "2011-04-07 09:17:14",
             "auth_token_expires": "2015-04-07 09:17:14",
-            "created": "2011-02-06"
+            "created": "2011-02-06",
+            "updated": "2011-02-06"
            }
     },
     {
@@ -73,7 +79,8 @@
             "auth_token": "0006",
             "auth_token_created": "2011-04-07 09:17:14",
             "auth_token_expires": "2015-04-07 09:17:14",
-            "created": "2011-02-06"
+            "created": "2011-02-06",
+            "updated": "2011-02-06"
            }
     },
     {
@@ -84,7 +91,8 @@
             "auth_token": "0007",
             "auth_token_created": "2011-04-07 09:17:14",
             "auth_token_expires": "2015-04-07 09:17:14",
-            "created": "2011-02-06"
+            "created": "2011-02-06",
+            "updated": "2011-02-06"
            }
     },
     {
             "auth_token": "0008",
             "auth_token_created": "2011-04-07 09:17:14",
             "auth_token_expires": "2015-04-07 09:17:14",
-            "created": "2011-02-06"
+            "created": "2011-02-06",
+            "updated": "2011-02-06"
            }
     },
     {
             "auth_token": "0009",
             "auth_token_created": "2011-04-07 09:17:14",
             "auth_token_expires": "2015-04-07 09:17:14",
-            "created": "2011-02-06"
+            "created": "2011-02-06",
+            "updated": "2011-02-06"
            }
     }
 ]
index a056f22..959edfb 100644 (file)
@@ -43,10 +43,19 @@ class PithosUser(models.Model):
     affiliation = models.CharField('Affiliation', max_length=255, default='')
     quota = models.IntegerField('Storage Limit', default=settings.DEFAULT_QUOTA)
     auth_token = models.CharField('Authentication Token', max_length=32, null=True)
-    auth_token_created = models.DateTimeField('Time of auth token creation', auto_now_add=True)
-    auth_token_expires = models.DateTimeField('Time of auth token expiration', auto_now_add=True)
-    created = models.DateTimeField('Time of creation', auto_now_add=True)
-    updated = models.DateTimeField('Time of last update', auto_now=True)
+    auth_token_created = models.DateTimeField('Time of auth token creation')
+    auth_token_expires = models.DateTimeField('Time of auth token expiration')
+    created = models.DateTimeField('Time of creation')
+    updated = models.DateTimeField('Time of last update')
+    
+    def save(self, update_timestamps=True):
+        if update_timestamps:
+            if not self.id:
+                self.created = datetime.datetime.now()
+                self.auth_token_created = datetime.datetime.now()
+                self.auth_token_expires = datetime.datetime.now()
+            self.updated = datetime.datetime.now()
+        super(PithosUser, self).save()
     
     class Meta:
         verbose_name = u'Pithos User'
index 7ce1699..1d1b024 100644 (file)
@@ -64,7 +64,7 @@ def create_auth_token(user):
     md5.update(user.realname.encode('ascii', 'ignore'))
     md5.update(asctime())
     
-    user.auth_token = md5.hexdigest()
+    user.auth_token = b64encode(md5.digest())
     user.auth_token_created = datetime.now()
     user.auth_token_expires = user.auth_token_created + \
                               timedelta(hours=settings.AUTH_TOKEN_DURATION)