Revision ef20ea07 snf-astakos-app/astakos/im/models.py

b/snf-astakos-app/astakos/im/models.py
39 39
from time import asctime
40 40
from datetime import datetime, timedelta
41 41
from base64 import b64encode
42
from urlparse import urlparse, urlunparse
42
from urlparse import urlparse
43 43
from random import randint
44 44

  
45 45
from django.db import models, IntegrityError
......
374 374
    owner = models.ForeignKey(AstakosUser)
375 375
    email = models.EmailField()
376 376

  
377
class PendingThirdPartyUser(models.Model):
378
    """
379
    Model for registring successful third party user authentications
380
    """
381
    third_party_identifier = models.CharField('Third-party identifier', max_length=255, null=True, blank=True)
382
    provider = models.CharField('Provider', max_length=255, blank=True)
383
    email = models.EmailField(_('e-mail address'), blank=True)
384
    first_name = models.CharField(_('first name'), max_length=30, blank=True)
385
    last_name = models.CharField(_('last name'), max_length=30, blank=True)
386
    affiliation = models.CharField('Affiliation', max_length=255, blank=True)
387
    username = models.CharField(_('username'), max_length=30, unique=True, help_text=_("Required. 30 characters or fewer. Letters, numbers and @/./+/-/_ characters"))
388

  
389
    @property
390
    def realname(self):
391
        return '%s %s' %(self.first_name, self.last_name)
392

  
393
    @realname.setter
394
    def realname(self, value):
395
        parts = value.split(' ')
396
        if len(parts) == 2:
397
            self.first_name = parts[0]
398
            self.last_name = parts[1]
399
        else:
400
            self.last_name = parts[0]
401
    
402
    def save(self, **kwargs):
403
        if not self.id:
404
            # set username
405
            while not self.username:
406
                username =  uuid.uuid4().hex[:30]
407
                try:
408
                    AstakosUser.objects.get(username = username)
409
                except AstakosUser.DoesNotExist, e:
410
                    self.username = username
411
        super(PendingThirdPartyUser, self).save(**kwargs)
412

  
377 413
def create_astakos_user(u):
378 414
    try:
379 415
        AstakosUser.objects.get(user_ptr=u.pk)

Also available in: Unified diff