Revision 9a43d4b9 pithos/im/target/invitation.py

b/pithos/im/target/invitation.py
37 37

  
38 38
from django.http import HttpResponseBadRequest
39 39

  
40
from pithos.im.models import Invitation
41
from pithos.im.target.util import get_user, prepare_response
40
from pithos.im.models import User, Invitation
41
from pithos.im.target.util import prepare_response
42

  
43

  
44
INVITATIONS_PER_LEVEL = {
45
    0   :   10000,
46
    1   :   3,
47
    2   :   2,
48
    3   :   1,
49
    4   :   0}
42 50

  
43 51

  
44 52
def login(request):
......
54 62
        invitation.save()
55 63
        logging.info('Accepted invitation %s', invitation)
56 64
    
57
    return prepare_response(get_user(invitation.uniq, invitation.realname, 'Invitation'),
58
                            request.GET.get('next'),
59
                            'renew' in request.GET)
65
    user, created = User.objects.get_or_create(uniq=invitation.uniq)
66
    if created:
67
        user.realname = invitation.realname
68
        user.affiliation = 'Invitation'
69
        user.level = invitation.inviter.level + 1
70
        user.invitations = INVITATIONS_PER_LEVEL.get(user.level, 0)
71
        user.renew_token()
72
        user.save()
73
        logging.info('Created user %s', user)
74
    
75
    next = request.GET.get('next')
76
    return prepare_response(user, next, 'renew' in request.GET)

Also available in: Unified diff