Esempio n. 1
0
def request_user(strategy,
                 details,
                 user=None,
                 request=None,
                 is_new=False,
                 uid=None,
                 **kwargs):
    if user:
        return
    elif is_new:
        username = re.sub("[^a-zA-Z0-9_]", "_", details["username"].lower())

        if ProfileRequest.objects.filter(username=username).count() > 0:
            messages.add_message(request, messages.WARNING,
                                 "Profile request already submitted")
            return redirect(reverse('request_profile'))

        first, last = _get_first_last(details)
        email = details["email"]
        pr = ProfileRequest(
            username=username,
            first_name=first,
            last_name=last,
            email=email,
            affiliation=UserProfile.STATUS_CHOICES[0][0],
            provider=strategy.backend.name,
            uid=uid,
        )
        pr.save()

        messages.add_message(request, messages.SUCCESS,
                             "Your account request has been submitted.")
        return redirect(reverse('request_profile'))