예제 #1
0
파일: users.py 프로젝트: svalleru/vanguard
def user_login(request):
    """
    Authenticates a user
    Accepts:
        "email": <string>
        "password": <string>
    Returns:
        "token": if the credentials are valid; this key has to be used in HTTP headers for accessing
               any of the backend APIs
        "email": email of the authenticated user
        "first_name": <string>
        "last_name": <string>
        or
        "error": <string> Exception msg string
    Example POST payload:
    {
        "email": "*****@*****.**",
        "password": "******"
    }
    """
    if request.method == 'POST':
        start_time = time.time()
        if set(['email', 'password']) != set(request.data.keys()):
            return Response({'error': "invalid params"}, status=status.HTTP_400_BAD_REQUEST)
        try:
            user = Users.objects.filter(email__iexact=request.data['email'])
        except Exception as ex:
            logger.debug("user_login: %s", str(ex))
        if user:
            # since user_signup ensures that there will always be one user, let's pluck the first
            user = user.first()
            if decrypt(user.password) == str(request.data['password']):
                old_session = Sessions.objects.filter(user_id__exact=user.id)
                if old_session:
                    old_session.update(last_used=datetime.now())
                    old_session = old_session.first()
                    logger.debug("user_login: elapsed time: %s" % (time.time() - start_time))
                    return Response({'token': old_session.key,
                                     'email': user.email,
                                     'first_name': user.first_name,
                                     'last_name': user.last_name}, status=status.HTTP_200_OK)
                else:
                    new_session = Sessions(user=user, last_used=datetime.now(), key=sha1hash(request.data['email'] +
                                                                                             request.data['password'] +
                                                                                             SECRET))
                    new_session.save()
                    logger.debug("user_login: elapsed time: %s" % (time.time() - start_time))
                    return Response({'token': new_session.key,
                                     'email': user.email,
                                     'first_name': user.first_name,
                                     'last_name': user.last_name}, status=status.HTTP_200_OK)
            else:
                logger.debug("user_login: invalid password for %s", request.data['email'])
                return Response({'error': 'invalid password'}, status=status.HTTP_400_BAD_REQUEST)
        else:
            logger.debug("user_login: invalid email %s", request.data['email'])
            return Response({'error': 'invalid email'}, status=status.HTTP_400_BAD_REQUEST)
예제 #2
0
def addNewVisit(request):
    visit = Visits()
    visit.ip = request.META['REMOTE_ADDR']
    visit.url = request.path
    visit.datetime = timezone.now()
    ua = user_agents.parse(request.META['HTTP_USER_AGENT'])
    visit.browser_name = ua.browser.family
    visit.browser_version = ua.browser.version_string
    if Visits.objects.filter(ip__exact=request.META['REMOTE_ADDR']).exists():
        lastVisit = Visits.objects.filter(ip__exact=request.META['REMOTE_ADDR']).order_by('-datetime')[:1][0] 
        if timezone.now() - timedelta(minutes=5) > lastVisit.datetime:
            session = Sessions(ip=request.META['REMOTE_ADDR'], datetime=datetime.now())
            session.save()
        else:
            session = lastVisit.session
    else:
        session = Sessions(ip=request.META['REMOTE_ADDR'], datetime=datetime.now())
        session.save()
    visit.session = session
    visit.save()
예제 #3
0
파일: views.py 프로젝트: alwaysprep/AdScope
def choose(request):
    if request.method == "POST":

        adds = request.POST.getlist("add_lis[]")
        excludes = request.POST.getlist("exclude_lis[]")
        nones = request.POST.getlist("none_lis[]")
        add_rsv = [float(i) for i in request.POST.getlist("add_lis_rsv[]")]
        exclude_rsv = [float(i) for i in request.POST.getlist("exclude_lis_rsv[]")]


        refuse_excluded = 0
        refuse_added = 0
        confirm_excluded = 0
        confirm_added = 0



        for add in add_rsv:
            if add < rsv_threshold:
                refuse_excluded += 1
            else:
                confirm_added += 1

        for exclude in exclude_rsv:
            if exclude > rsv_threshold:
                refuse_added += 1
            else:
                confirm_excluded += 1

        print confirm_added, confirm_excluded, refuse_added, refuse_excluded
        se = Sessions(confirm_added= confirm_added, confirm_excluded=confirm_excluded,
                      refuse_added=refuse_added, refuse_excluded=refuse_excluded)
        se.save()


        train = []
        for el in adds:
            print el
            tq = TestQueries.objects.get(id=int(el))

            train.append([tq.query, "Added", 0])
            tq.delete()

        for el in excludes:
            tq = TestQueries.objects.get(id=int(el))
            train.append([tq.query, "Excluded", 0])
            tq.delete()


        extract_data(train)

        for el in nones:
            tq = TestQueries.objects.get(id=int(el))
            tq.processed = True
            tq.save()

        for line in train:
            t = TrainQueries(
                query = line[0],
                relevant = is_relevant(line)
            )
            t.save()


        suggested_adds = TestQueries.objects.filter(processed=False).order_by("-rsv")[:10]

        suggested_excludes = TestQueries.objects.filter(processed=False).order_by("rsv")[:10]


        for sa in suggested_adds:
            sa.query = sa.query.split()

        for se in suggested_excludes:
            se.query = se.query.split()

        return render_to_response('partial.html', {"suggested_adds":suggested_adds,"suggested_excludes":suggested_excludes})


    suggested_adds = TestQueries.objects.filter(processed=False).order_by("-rsv")[:10]
    suggested_excludes = TestQueries.objects.filter(processed=False).order_by("rsv")[:10]
    for sa in suggested_adds:
        sa.query = sa.query.split()

    for se in suggested_excludes:
        se.query = se.query.split()

    return render_to_response('connect-lists.html',
                                      {"suggested_adds":suggested_adds,"suggested_excludes":suggested_excludes})