Exemplo n.º 1
0
def register(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            form.save()
            new_user = authenticate(username=form.cleaned_data['username'],
                password=form.cleaned_data['password1'])
            login(request, new_user)
            request.flash.put(message="Congratulations, you've registered!")

            act = Activity(
                atom_id='tag:identity,2009:%d' % new_user.pk,
                subject=new_user,
                link=reverse('profile', kwargs={'username': new_user.username}),
                text="%s joined the site" % new_user.username,
            )
            act.save()

            return HttpResponseRedirect(reverse('identity.views.edit_profile'))
    else:
        form = UserCreationForm()

    return render_to_response(
        'registration/register.html',
        {
            'form': form,
        },
        context_instance=RequestContext(request),
    )
Exemplo n.º 2
0
def new_activity(request, token):

    if request.method == 'GET':
        success = HttpResponse(request.GET['hub.challenge'])
        failure = HttpResponseNotFound()

        topic = request.GET['hub.topic']
        subscription_exists = True if ActivitySubscription.objects.filter(
            feed_uri=topic, token=token).count() > 0 else False

        mode = request.GET['hub.mode']
        log.debug('Got verification request for mode %r on topic %r', mode, topic)
        if mode == 'subscribe':
            return success if subscription_exists else failure
        elif mode == 'unsubscribe':
            return failure if subscription_exists else success

        return HttpResponse("Unknown hub mode %r" % mode, status=400,
            content_type='text/plain')

    log.debug('Got pushed some feed data to %r!', request.build_absolute_uri())

    try:
        feed = ElementTree.fromstring(request.raw_post_data)
        entries = feed.findall('{http://www.w3.org/2005/Atom}entry')
        if entries is None:
            raise ValueError('No entries in this feed')
        for entry in entries:
            act = Activity.from_atom_entry(entry, request)
            if not act.pk:
                act.save()
    except Exception, exc:
        log.exception(exc)
        raise