def get_stored_normal_counts(request): out = { 'results':{},'error':{},'session':{}, 'success': False } con = connect_to_mongo('127.0.0.1',27017, "weekly_report", "complete_reports") key = None key = str(request.GET['key']) if is_auth(request,True): if check_report_id(key): tmp = [] key = str(request.GET['key']) data = con.find_one({"_id":key},{"report.compromise_counts":1,"_id":0}) rjson = json.dumps(data) ruse = json.loads(rjson) report = ruse.get("report") compromise_counts = report.get("compromise_counts") normal = compromise_counts.get("staff_faculty_count") student = compromise_counts.get("student_count") obj = {"name":"Faculty/Staff","value":normal} tmp.append(obj) obj = {"name":"Student","value":student} tmp.append(obj) out['success'] = True out['results'] = tmp mimetype = 'application/javascript' return HttpResponse(json.dumps(out),mimetype) else: out['success'] = False out['error'] = "Invalid key in request." return render_to_response("error.html",out,context_instance=RequestContext(request)) else: time.sleep(30)
def store_data(request): out = { 'results':{},'error':{},'session':{}, 'success': False } if is_auth(request,True): start_date = request.POST['startdt'] end_date = request.POST['enddt'] if check_report_date(start_date) and check_report_date(end_date): start_tmp = start_date.split('/') end_tmp = end_date.split('/') key = start_tmp[0] + start_tmp[1] + start_tmp[2] + end_tmp[0] + end_tmp[1] + end_tmp[2] obj = { 'start_week':start_date, 'end_week':end_date, '_id':key } con = connect_to_mongo('127.0.0.1',27017, "weekly_report", "meta") con.insert(obj) out['success'] = True out['start_date'] = start_date #TODO this should not sit in the root out['end_date'] = end_date #TODO this should not sit in the root out['id'] = key #TODO this should not sit in the root mimetype = 'application/javascript' return HttpResponse(json.dumps(out),mimetype) else: out['error'] = "Attempting to travel time with the dates you supplied. Check back last week." return render_to_response("error.html",out,context_instance=RequestContext(request)) else: while True: die = "slowly"
def set_average_response_times(request): out = { 'results':{},'error':{},'session':{}, 'success': False } if is_auth(request,True): key = None objs = json.loads(request.raw_post_data) key = objs.get("key") con = connect_to_mongo('127.0.0.1',27017, "weekly_report", "average_response_time") obj = { "_id": key, "details": objs } con.insert(obj) out['success'] = True mimetype = 'application/javascript' return HttpResponse(json.dumps(out),mimetype) else: time.sleep(30)
def set_compromise_counts(request): out = { 'results':{},'error':{},'session':{}, 'success': False } if is_auth(request,True): obj = json.loads(request.raw_post_data) key = None try: obj['_id'] = obj.get("key") con = connect_to_mongo('127.0.0.1',27017, "weekly_report", "compromise_counts") con.insert(obj) out['success'] = True mimetype = 'application/javascript' return HttpResponse(json.dumps(out),mimetype) except: out['error'] = "Data blob failed to pass inspection." return render_to_response("error.html",out,context_instance=RequestContext(request)) else: time.sleep(30)
def get_stored_historical_compromises(request): out = { 'results':{},'error':{},'session':{}, 'success': False } con = connect_to_mongo('127.0.0.1',27017, "weekly_report", "complete_reports") key = None key = str(request.GET['key']) if is_auth(request,True): if check_report_id(key): key = str(request.GET['key']) data = con.find_one({"_id":key},{"report.historical_compromises.historical_listings":1,"_id":0}) rjson = json.dumps(data) ruse = json.loads(rjson) report = ruse.get("report") historical_compromises = report.get("historical_compromises") historical_listings = historical_compromises.get("historical_listings") out['success'] = True out['historical_listings'] = historical_listings mimetype = 'application/javascript' return HttpResponse(json.dumps(out),mimetype) else: out['success'] = False out['error'] = "Invalid key in request." return render_to_response("error.html",out,context_instance=RequestContext(request)) else: time.sleep(30)
def fetch_report(request,rid,template_name): out = { 'results':{},'error':{},'session':{}, 'success': False } reports = [] if is_auth(request): if check_report_id(rid): con = connect_to_mongo('127.0.0.1',27017, "weekly_report", "complete_reports") data = con.find_one({"_id":rid},{"report.metadata":1}) rjson = json.dumps(data) ruse = json.loads(rjson) report = ruse.get("report") metadata = report.get("metadata") start_date = metadata.get("start_week") end_date = metadata.get("end_week") obj = { "start_date":start_date,"end_date":end_date } out['results'] = obj out['success'] = True return render_to_response(template_name,out,context_instance=RequestContext(request)) else: out['error'] = "Warning: mysql_query() [function.mysql-query]: Unable to save result set in /var/www/production/save.php on line 29" return render_to_response("error.html",out,context_instance=RequestContext(request)) else: return render_to_response('login.html',out,context_instance=RequestContext(request))
def build_report(request): out = { 'results':{},'error':{},'session':{}, 'success': False } if is_auth(request,True): key = request.POST['id'] if check_report_id(key): # meta meta_con = connect_to_mongo('127.0.0.1',27017, "weekly_report", "meta") meta_data = meta_con.find_one({"_id":key},{"_id":0}) # compromise counts counts_con = connect_to_mongo('127.0.0.1',27017, "weekly_report", "compromise_counts") compromise_counts_data = counts_con.find_one({"_id":key},{"_id":0}) # compromise details compromise_details_data = [] details_con = connect_to_mongo('127.0.0.1',27017, "weekly_report", "compromise_details") for item in details_con.find({"_id":key},{"_id":0}): rjson = json.dumps(item) ruse = json.loads(rjson) details = ruse.get("details") if type(details) is not list: obj = { "ip_address": details.get("ip_address"), "compromise_notes": details.get("compromise_notes"), "key": details.get("key"), "original_notes": details.get("original_notes"), "school_department": details.get("school_department"), "time_of_compromise": details.get("time_of_compromise") } compromise_details_data.append(obj) else: for listing in details: compromise_details_data.append(listing) # compromise types compromise_types_data = [] types_con = connect_to_mongo('127.0.0.1',27017, "weekly_report", "compromise_types") for item in types_con.find({"_id":key},{"_id":0}): rjson = json.dumps(item) ruse = json.loads(rjson) details = ruse.get("details") if type(details) is not list: obj = { "name": details.get("name"), "value":details.get("value"), "key":details.get("key") } compromise_types_data.append(obj) else: for listing in details: compromise_types_data.append(listing) # average response time response_time_data = [] response_time_con = connect_to_mongo('127.0.0.1',27017, "weekly_report", "average_response_time") for item in response_time_con.find({"_id":key},{"_id":0}): rjson = json.dumps(item) ruse = json.loads(rjson) details = ruse.get("details") obj = { "name": details.get("name"), "value":details.get("value"), "key":details.get("key") } response_time_data.append(obj) # historical data historical_compromise_data = [] historical_con = connect_to_mongo('127.0.0.1',27017, "weekly_report", "historical_compromises") for item in historical_con.find({"_id":key},{"_id":0}): rjson = json.dumps(item) ruse = json.loads(rjson) details = ruse.get("details") for listing in details: historical_compromise_data.append(listing) # save the report con = connect_to_mongo('127.0.0.1',27017, "weekly_report", "complete_reports") obj = { "metadata": meta_data, "compromise_counts":compromise_counts_data, "compromise_details": { "compromise_listings":compromise_details_data, "summary_notes": "" }, "compromise_types": { "type_listings":compromise_types_data, "summary_notes": "" }, "historical_compromises": { "historical_listings":historical_compromise_data, "summary_notes": "" }, "response_time":{ "average_response_time":response_time_data, "summary_notes": "" } } final = { "_id":key, "report": obj } con.insert(final) # kill temp storage meta_con.remove() counts_con.remove() details_con.remove() types_con.remove() historical_con.remove() response_time_con.remove() out['success'] = True mimetype = 'application/javascript' return HttpResponse(json.dumps(out),mimetype) else: out['error'] = "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/production/build_report.php on line 168" return render_to_response("error.html",out,context_instance=RequestContext(request))