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)
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()
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})