Revision 6b03a847 snf-astakos-app/astakos/im/models.py

b/snf-astakos-app/astakos/im/models.py
331 331
        expiration_date = timedelta(days=EMAILCHANGE_ACTIVATION_DAYS)
332 332
        return self.requested_at + expiration_date < datetime.now()
333 333

  
334
class Service(models.Model):
335
    name = models.CharField('Name', max_length=255, unique=True)
336
    url = models.FilePathField()
337
    icon = models.FilePathField(blank=True)
338
    auth_token = models.CharField('Authentication Token', max_length=32,
339
                                  null=True, blank=True)
340
    auth_token_created = models.DateTimeField('Token creation date', null=True)
341
    auth_token_expires = models.DateTimeField('Token expiration date', null=True)
342
    
343
    def save(self, **kwargs):
344
        if not self.id:
345
            self.renew_token()
346
        self.full_clean()
347
        super(Service, self).save(**kwargs)
348
    
349
    def renew_token(self):
350
        md5 = hashlib.md5()
351
        md5.update(self.name.encode('ascii', 'ignore'))
352
        md5.update(self.url.encode('ascii', 'ignore'))
353
        md5.update(asctime())
354

  
355
        self.auth_token = b64encode(md5.digest())
356
        self.auth_token_created = datetime.now()
357
        self.auth_token_expires = self.auth_token_created + \
358
                                  timedelta(hours=AUTH_TOKEN_DURATION)
359

  
334 360
def create_astakos_user(u):
335 361
    try:
336 362
        AstakosUser.objects.get(user_ptr=u.pk)

Also available in: Unified diff