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