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