Exemple #1
0
def invite(request):
    if request.POST:
        form = InviteForm(request.POST)
        if form.is_valid():
            site = Site.objects.get(pk=settings.SITE_ID)
            key = ActivateKey.objects.next()
            key.email = form.cleaned_data['email']
            key.save()
            activate_url = '%s%s' % (
                site.domain,
                reverse('regist', kwargs=dict(activate_key=key.activate_key)))
            t = loader.get_template('event/mail/invite.mail')
            c = RequestContext(request, {
                'domain': site.name,
                'activate_url': activate_url
            })
            mail = EmailMessage(_(u'Invitation from %s') % site.name,
                                t.render(c),
                                to=[form.cleaned_data['email']])
            mail.send()
            #request.user.message_set.create(
            #    message=_('Sent invitation message to %(address)s') % {'address': form.cleaned_data['email']})
            #return HttpResponseRedirect(URL_HOME)
            return HttpResponseRedirect(reverse('invite_email_sent'))
    else:
        form = InviteForm()
    return render_to_response('event/invite.html',
                              context_instance=RequestContext(
                                  request, {'form': form}))
Exemple #2
0
def api_invite(request, output_format="json"):
    """Create a user, but make it disabled.

    Formats: json

    HTTP Method: GET

    Requires authentication: false

    Parameters:

    * email: E-mail address for the new user. 
    """

    status = 201  # HTTP return status.  We'll be optimistic.
    data = {}  # response data

    try:
        if request.method == "POST":
            form = InviteForm(request.POST)
            if form.is_valid():
                email = form.cleaned_data["email"]

                try:
                    user = User.objects.get(email=email)
                    raise UserEmailExists("It looks like you've already requested an invitation.")
                except User.DoesNotExist:
                    username = email  # Username defaults to e-mail address
                    if len(email) > 30:
                        print email
                        # Django usernames can't be longer than 30 characters
                        # Just take the first 30 characters of the part of
                        # the email address before the '@'
                        email_parts = email.partition("@")
                        username = email_parts[0][:30]

                    user = User.objects.create_user(username=username, email=email)
                    user.is_active = False
                    user.set_unusable_password()
                    user.save()
                    user_profile = UserProfile(user=user)
                    user_profile.save()

            else:
                print form.errors
                status = 400  # Caught in a bad request
                data["error"] = "Invalid e-mail address."

        else:
            raise MethodUnsupported("%s is not supported at this time." % (request.method))

    except MethodUnsupported, e:
        status = 405  # Method not allowed
        data["error"] = "%s" % e
Exemple #3
0
def site_invite(request, template_name="account/invite_non_member.html", **kwargs):
    if request.POST:
        form = InviteForm(request.POST)
        if form.is_valid():
            form.save(request.user)
            return HttpResponseRedirect(reverse("messages_all"))
        else:
            form = InviteForm(request.POST)

    else:
        form = InviteForm()

    return render_to_response(
        template_name, {"form": form, "hubs": get_hubs()}, context_instance=RequestContext(request)
    )
def index(request):
    vars = {}
    if request.method == "POST":
        invite_form = InviteForm(request.POST, request.FILES)
        if invite_form.is_valid():
            invite_form.save(request.user)
            context = {"notice": "Thanks for inviting more people to join!"}
            return HttpResponseRedirect(addToQueryString(reverse("tasks"), context))
        else:
            vars["invite_form"] = invite_form
    else:
        vars["invite_form"] = InviteForm()

    vars["siteurl"] = quote("http://%s" % Site.objects.get_current().domain)
    request.user.seen_invite = True
    request.user.save()
    return render_with_context(request, "invite/invite_page.html", vars)
Exemple #5
0
def invite(request, next=None):
    """Handles invite form submission"""
    invite_form = InviteForm(instance=Invitation(user=request.user), data=request.POST)
    if invite_form.is_valid():
        invites = invite_form.save()
        emails = ", ".join([invite.email for invite in invites])
        messages.success(request, 'Invitation sent to %s' % emails)
    else:
        messages.error(request, 'Form values where invalid, please try fill out the form again.')

    if request.is_ajax() and request.method == 'POST':
        message_html = loader.render_to_string('_messages.html', {}, RequestContext(request))
        return HttpResponse(message_html)

    next = request.POST.get("next", next)
    if next:
        return redirect(next)
    return redirect("index")
Exemple #6
0
def index(request):
    vars = {}

    if request.method == "POST":
        invite_form = InviteForm(request.POST, request.FILES)
        if invite_form.is_valid():
            invite_form.save(request.user)

            return HttpResponseRedirect(addToQueryString(reverse("inviteindex"),
                {'notice': strings.INVITE_NOTICE_SUCCESS}))
        else:
            vars['invite_form'] = invite_form
    else:
        vars['invite_form'] = InviteForm()
        
    vars['siteurl'] = quote("http://%s" % Site.objects.get_current().domain)
    
    return render_with_context(request, "invite/invite_page.html", vars)
Exemple #7
0
def site_invite(request,
                template_name='account/invite_non_member.html',
                **kwargs):
    if request.POST:
        form = InviteForm(request.POST)
        if form.is_valid():
            form.save(request.user)
            return HttpResponseRedirect(reverse('messages_all'))
        else:
            form = InviteForm(request.POST)

    else:
        form = InviteForm()

    return render_to_response(template_name, {
        'form': form,
        'hubs': get_hubs(),
    },
                              context_instance=RequestContext(request))
def invite(request, next=None):
    """Handles invite form submission"""
    invite_form = InviteForm(instance=Invitation(user=request.user),
                             data=request.POST)
    if invite_form.is_valid():
        invites = invite_form.save()
        emails = ", ".join([invite.email for invite in invites])
        messages.success(request, 'Invitation sent to %s' % emails)
    else:
        messages.error(
            request,
            'Form values where invalid, please try fill out the form again.')

    if request.is_ajax() and request.method == 'POST':
        message_html = loader.render_to_string('_messages.html', {},
                                               RequestContext(request))
        return HttpResponse(message_html)

    next = request.POST.get("next", next)
    if next:
        return redirect(next)
    return redirect("index")
Exemple #9
0
def invite_user(request):
    active_users = User.objects.filter(is_active=True)
    not_active_users = User.objects.filter(is_active=False)

    if request.method == 'POST':
        form = InviteForm(request.POST)
        if form.is_valid():
            form.save()
            logger.info("Invited new user with email %s" % \
                form.cleaned_data['email']
                )
            messages.info(request, _("Invite email was send for %s" % \
                form.cleaned_data['email'])
                )
            return HttpResponseRedirect(reverse('invite-user'))
    else:
        form = InviteForm()
    data = {
        'form': form,
        'active_users': active_users,
        'not_active_users': not_active_users
    }
    return render_to_response('people/invite.html', data,
                              RequestContext(request))
Exemple #10
0
def invite_user(request):
    active_users = User.objects.filter(is_active=True)
    not_active_users = User.objects.filter(is_active=False)

    if request.method == 'POST':
        form = InviteForm(request.POST)
        if form.is_valid():
            form.save()
            logger.info("Invited new user with email %s" % \
                form.cleaned_data['email']
                )
            messages.info(request, _("Invite email was send for %s" % \
                form.cleaned_data['email'])
                )
            return HttpResponseRedirect(reverse('invite-user'))
    else:
        form = InviteForm()
    data = {
        'form': form,
        'active_users': active_users,
        'not_active_users': not_active_users
    }
    return render_to_response('people/invite.html', data,
      RequestContext(request))
Exemple #11
0
def api_invite(request, output_format='json'):
    """Create a user, but make it disabled.

    Formats: json

    HTTP Method: GET

    Requires authentication: false

    Parameters:

    * email: E-mail address for the new user. 
    * interest: User's interest in signing up.  Value can be either "publisher",
                "consumer", or an empty string.  Default is an empty string.

    """

    status = 201 # HTTP return status.  We'll be optimistic.
    data = {} # response data 

    try:
        if request.method == 'POST':
            #print "DEBUG: POST"
            form = InviteForm(request.POST)
            #print "DEBUG: form object created"
            if form.is_valid():
                #print "DEBUG: form validated"
                email = form.cleaned_data['email']
                interest = form.cleaned_data['interest']

                try:
                    user = User.objects.get(email=email)
                    raise UserEmailExists("It looks like you've already requested an invitation.") 
                except User.DoesNotExist:
                    username = email # Username defaults to e-mail address
                    if len(email) > 30:
                        #print email
                        # Django usernames can't be longer than 30 characters
                        # Just take the first 30 characters of the part of
                        # the email address before the '@'
                        email_parts = email.partition('@')
                        username = email_parts[0][:30]

                    user = User.objects.create_user(username=username,
                                                    email=email)
                    user.is_active = False
                    user.set_unusable_password()
                    user.save()
                    #print "DEBUG: saved user"
                    user_profile = UserProfile(user=user, interest=interest)
                    user_profile.save()
                    #print "DEBUG: saved user profile"

            else:
                #print "DEBUG: %s" % (form.errors)
                status = 400 # Caught in a bad request
                data['error'] = "Invalid e-mail address."

        else:
            raise MethodUnsupported("%s is not supported at this time." % \
                                (request.method))

    except MethodUnsupported, e:
        logger.warning("API call to %s with unsupported method %s" % \
                    (request.path, request.method))
        status = 405 # Method not allowed
        data['error'] = "%s" % e