示例#1
0
def reg_view(request):
    context = {}
    context['form'] = forms.RegistationForm()

    form = forms.RegistationForm(request.POST)
    if form.is_valid():
        username = form.data['username']
        email = form.data['email']
        password = form.data['password']

        if not models.Profile.objects.filter(login=username).exists():
            if not models.Profile.objects.filter(email=email).exists():
                standart_user = models.User.objects.create_user(
                    username=username, password=password, email=email)
                user = models.Profile()
                user.login = username
                user.password = password
                user.email = email
                user.standart_user_id = standart_user.id
                usr = auth.authenticate(username=username, password=password)
                auth.login(request, usr)
                user.save()
                return HttpResponseRedirect('/')
            else:
                context['error'] = "Пользователь с таким email уже существует"
        else:
            context['error'] = "Пользователь с таким ником уже существует"

    return render(request, 'reg.html', context)
示例#2
0
 def create(self, validated_data):
     request = self.context.get('request', None)
     validated_data['owner'] = request.user
     perf = models.Performance()
     perf.save()
     validated_data['performance'] = perf
     user = models.Profile(**validated_data)
     user.save()
     return user
示例#3
0
    def post(self, request, *args, **kwargs):
        # Login
        username = request.POST.get('username')
        password = request.POST.get('password')
        email = request.POST.get('email')
        lastname = request.POST.get('lastname')
        firstname = request.POST.get('firstname')
        org = request.POST.get('org')
        college = request.POST.get('college')
        dept = request.POST.get('dept')
        other_details = request.POST.get('otherdetails')
        areas_of_interest = request.POST.get('areasofinterest')
        areas_of_interest = api.Areaofinterest.objects.get_or_create(
            name=areas_of_interest)

        print request.POST.get('username')
        if User.objects.filter(username=username).exists():
            return Response({
                'username': '******',
                'status': 'error'
            })
        elif User.objects.filter(email=email).exists():
            return Response({'email': 'Email is taken.', 'status': 'error'})
        # especially before you pass them in here
        newuser = User.objects.create_user(email=email,
                                           last_name=lastname,
                                           first_name=firstname,
                                           username=username,
                                           password=password)

        newprofile = api.Profile(user=newuser,
                                 org=org,
                                 college=college,
                                 dept=dept,
                                 otherdetails=other_details)
        #  areas_of_interest=areas_of_interest)
        newprofile.save()
        # Send email msg
        send_templated_mail(
            template_name='welcome',
            from_email='*****@*****.**',
            recipient_list=[email],
            context={
                'username': username,
                'email': email,
            },
            # Optional:
            # cc=['*****@*****.**'],
            # bcc=['*****@*****.**'],
        )
        return Response({
            'status': 'success',
            'userid': newuser.id,
            'profile': newprofile.id
        })
示例#4
0
    def post(self, request, *args, **kwargs):
        # Login
        username = request.POST.get('username')
        password = request.POST.get('password')
        email = request.POST.get('email')
        if username is not None and password is not None and email is not None:
            # lastname = request.POST.get('lastname')
            # firstname = request.POST.get('firstname')
            # org = request.POST.get('org')
            # college = request.POST.get('college')
            # dept = request.POST.get('dept')
            # other_details = request.POST.get('otherdetails')
            # areas_of_interest = request.POST.get('areasofinterest')
            # areas_of_interest = api.Areaofinterest.objects.get_or_create(name=areas_of_interest)

            print request.POST.get('username')
            if User.objects.filter(username=username).exists():
                return Response({
                    'username': '******',
                    'status': 'error'
                })
            elif User.objects.filter(email=email).exists():
                return Response({
                    'email': 'Email is taken.',
                    'status': 'error'
                })
            # especially before you pass them in here
            newuser = User.objects.create_user(email=email,
                                               username=username,
                                               password=password)

            newprofile = api.Profile(user=newuser)

            newprofile.save()
            # Send email msg
            # send_templated_mail(
            #     template_name='welcome',
            #     from_email='*****@*****.**',
            #     recipient_list=[email],
            #     context={
            #         'username':username,
            #         'email':email,
            #     },
            #     # Optional:
            #     # cc=['*****@*****.**'],
            #     # bcc=['*****@*****.**'],
            # )
            return Response({
                'status': 'success',
                'userid': newuser.id,
                'profile': newprofile.id
            })
        else:
            return Response({'status': 'error'})
示例#5
0
    def signup(self, request):
        """Signs the user up for an account."""

        if models.User.objects.filter(
                username=request.data['username']).exists(
                ) or models.User.objects.filter(
                    email=request.data['email']).exists():
            return Response({}, status.HTTP_409_CONFLICT)

        # Create and save the user
        user = models.User.objects.create_user(
            username=request.data['username'],
            email=request.data['email'],
            password=request.data['password'],
            first_name=request.data['first_name'],
            last_name=request.data['last_name'])
        user.is_active = not settings.REQUIRE_USER_ACTIVATION

        # try:
        #     user.full_clean()
        # except ValidationError as error:
        #     return Response({'errors': error.messages}, status=status.HTTP_406_NOT_ACCEPTABLE)

        try:
            user.save()
        except IntegrityError:
            return Response({}, status.HTTP_409_CONFLICT)

        # Create user profile
        profile = models.Profile(user=user,
                                 eligible=request.data['profile']['eligible'])

        # Add in optional demographics data
        if request.data['profile']['gender']:
            profile.gender = request.data['profile']['gender']
        if request.data['profile']['race']:
            profile.race = request.data['profile']['race']
        if request.data['profile']['age']:
            profile.age = request.data['profile']['age']
        if request.data['profile']['country']:
            profile.country = request.data['profile']['country']
        if request.data['profile']['state']:
            profile.state = request.data['profile']['state']

        # TODO: compute eligibility posted data instead

        # Generate activation keys
        salt = hashlib.sha1(str(
            random.random()).encode('utf8')).hexdigest()[:5].encode('utf8')
        profile.activation_key = hashlib.sha1(
            salt + request.data['username'].encode('utf8')).hexdigest()
        profile.key_generated = timezone.now()
        profile.save()

        if not settings.REQUIRE_USER_ACTIVATION:
            # Log the user in
            user = auth.authenticate(username=request.data['username'],
                                     password=request.data['password'])
            auth.login(request, user)

        return self.status(request)