Commit d6ae71a2 authored by root's avatar root
Browse files

Remove accepted flag (change to consumed) and invitation login target.

parent 88d56ac5
......@@ -460,7 +460,7 @@ def invitations_export(request):
'Inviter Real Name',
'Is_accepted',
'Created',
'Accepted',])
'Consumed',])
invitations = Invitation.objects.order_by('id')
for inv in invitations:
......@@ -472,7 +472,7 @@ def invitations_export(request):
inv.inviter.realname.encode("utf-8"),
inv.is_accepted,
inv.created,
inv.accepted])
inv.consumed])
return response
......
# Copyright 2011-2012 GRNET S.A. All rights reserved.
#
# Redistribution and use in source and binary forms, with or
# without modification, are permitted provided that the following
# conditions are met:
#
# 1. Redistributions of source code must retain the above
# copyright notice, this list of conditions and the following
# disclaimer.
#
# 2. Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials
# provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
# The views and conclusions contained in the software and
# documentation are those of the authors and should not be
# interpreted as representing official policies, either expressed
# or implied, of GRNET S.A.
import logging
from datetime import datetime
from django.http import HttpResponseBadRequest
from django.contrib.auth import authenticate
from astakos.im.models import Invitation
from astakos.im.util import get_or_create_user, prepare_response
def login(request):
code = request.GET.get('code')
try:
invitation = Invitation.objects.get(code=code)
except Invitation.DoesNotExist:
return HttpResponseBadRequest('Wrong invitation code')
if not invitation.is_accepted:
invitation.is_accepted = True
invitation.accepted = datetime.now()
invitation.save()
logging.info('Accepted invitation %s', invitation)
user = get_or_create_user(invitation.uniq,
realname = invitation.realname,
affiliation = 'Invitation',
provider = 'invitation',
level = invitation.inviter.level + 1)
# in order to login the user we must call authenticate first
authenticate(email=user.email, auth_token=user.auth_token)
next = request.GET.get('next')
return prepare_response(request, user, next, 'renew' in request.GET)
......@@ -75,9 +75,6 @@ if settings.INVITATIONS_ENABLED:
urlpatterns += patterns('astakos.im.views',
url(r'^invite/?$', 'invite'),
)
urlpatterns += patterns('astakos.im.target',
url(r'^login/invitation/?$', 'invitation.login')
)
if 'shibboleth' in settings.IM_MODULES:
urlpatterns += patterns('astakos.im.target',
......
......@@ -212,9 +212,9 @@ def invite(request, template_name='invitations.html', extra_context={}):
messages.add_message(request, status, message)
sent = [{'email': inv.username,
'realname': inv.realname,
'is_accepted': inv.is_accepted}
for inv in inviter.invitations_sent.all()]
'realname': inv.realname,
'is_consumed': inv.is_consumed}
for inv in inviter.invitations_sent.all()]
kwargs = {'user': inviter,
'sent':sent}
context = get_context(request, extra_context, **kwargs)
......@@ -415,4 +415,4 @@ def logout(request, template='registration/logged_out.html', extra_context={}):
response.status_code = 302
return response
html = render_to_string(template, context_instance=get_context(request, extra_context))
return HttpResponse(html)
\ No newline at end of file
return HttpResponse(html)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment