Revision 15efc749 astakos/im/util.py

b/astakos/im/util.py
32 32
# or implied, of GRNET S.A.
33 33

  
34 34
import logging
35
import uuid
36 35

  
37 36
from datetime import tzinfo, timedelta
38 37
from django.conf import settings
39 38
from django.template import RequestContext
40 39
from django.contrib.sites.models import Site
40
from django.utils.translation import ugettext as _
41
from django.contrib import messages
41 42

  
42
from astakos.im.models import AstakosUser
43
from astakos.im.models import AstakosUser, Invitation
43 44

  
44 45
class UTC(tzinfo):
45 46
   def utcoffset(self, dt):
......
62 63
    """
63 64
    user, created = AstakosUser.objects.get_or_create(email=email,
64 65
        defaults={
65
            'is_active': False,
66 66
            'password':password,
67
            'username':uuid.uuid4().hex[:30],
68 67
            'affiliation':affiliation,
69 68
            'level':level,
70 69
            'invitations':settings.INVITATIONS_PER_LEVEL[level],
......
92 91
    """
93 92
    protocol = use_https and 'https' or 'http'
94 93
    site = Site.objects.get_current()
95
    return site.name, '%s://%s' % (protocol, site.domain)
94
    return site.name, '%s://%s' % (protocol, site.domain)
95

  
96
def get_invitation(request):
97
    """
98
    Returns the invitation identified by the ``code``.
99
    
100
    Raises Invitation.DoesNotExist and Exception if the invitation is consumed
101
    """
102
    code = request.GET.get('code')
103
    if request.method == 'POST':
104
        code = request.POST.get('code')
105
    if not code:
106
        if 'invitation_code' in request.session:
107
            code = request.session.pop('invitation_code')
108
    if not code:
109
        return
110
    invitation = Invitation.objects.get(code = code)
111
    if invitation.is_consumed:
112
        raise ValueError(_('Invitation is consumed'))
113
    try:
114
        AstakosUser.objects.get(email = invitation.username)
115
        raise ValueError(_('Email: %s is reserved' % invitation.username))
116
    except AstakosUser.DoesNotExist:
117
        pass
118
    return invitation

Also available in: Unified diff