def add_username(request): """ Add an username to CRIPTs. Should be an AJAX POST. :param request: Django request object (Required) :type request: :class:`django.http.HttpRequest` :returns: :class:`django.http.HttpResponse` """ if request.method == "POST" and request.is_ajax(): username_form = UserNameForm(request.user, request.POST) if username_form.is_valid(): data = username_form.cleaned_data result = username_add_update( name=data['name'], description=data['description'], source=data['source'], method=data['method'], reference=data['reference'], datasets=None, bucket_list=data[form_consts.Common.BUCKET_LIST_VARIABLE_NAME], ticket=data[form_consts.Common.TICKET_VARIABLE_NAME], analyst=request.user.username) if 'message' in result: if not isinstance(result['message'], list): result['message'] = [result['message']] else: result['message'] = [] message = ( '<div>Success! Click here to view the new UserName: <a ' 'href="%s">%s</a></div>' % (reverse('crits.usernames.views.username_detail', args=[result['object'].username_id ]), result['object'].username_id)) result['message'].insert(0, message) return HttpResponse(json.dumps(result, default=json_handler), content_type="application/json") else: return HttpResponse(json.dumps({ 'form': username_form.as_table(), 'success': False }), content_type="application/json") else: return render_to_response("error.html", {"error": "Expected AJAX POST"}, RequestContext(request))
def bulk_add_usernames(request): """ Bulk add UserNames via a bulk upload form. Args: request: The Django context which contains information about the session and key/value pairs for the bulk add UserName request Returns: If the request is not a POST and not a Ajax call then: Returns a rendered HTML form for a bulk add of IPs If the request is a POST and a Ajax call then: Returns a response that contains information about the status of the bulk uploaded UserName. This may include information such as UserName that failed or successfully added. This may also contain helpful status messages about each operation. """ formdict = form_to_dict(UserNameForm(request.user, None)) if request.method == "POST" and request.is_ajax(): response = process_bulk_add_usernames(request, formdict) return HttpResponse(json.dumps(response, default=json_handler), content_type="application/json") else: return render_to_response( 'bulk_add_default.html', { 'formdict': formdict, 'title': "Bulk Add UserNames", 'table_name': 'username', 'local_validate_columns': [form_consts.UserName.USERNAME], 'is_bulk_add_objects': True }, RequestContext(request))
def parse_row_to_bound_username_form(request, rowData, cache): """ Parse a row out of mass object username into the :class:`cripts.usernames.forms.UserNames`. :param request: The Django request. :type request: :class:`django.http.HttpRequest` :param rowData: The data for that row. :type rowData: dict :param cache: Cached data, typically for performance enhancements during bulk operations. :type cache: dict :returns: :class:`cripts.usernames.forms.UserNameForm`. """ name = rowData.get(form_consts.UserName.Name, "") description = rowData.get(form_consts.UserName.DESCRIPTION, "") analyst = request.user source = rowData.get(form_consts.UserName.SOURCE, "") source_method = rowData.get(form_consts.UserName.SOURCE_METHOD, "") source_reference = rowData.get(form_consts.UserName.SOURCE_REFERENCE, "") bucket_list = rowData.get(form_consts.Common.BUCKET_LIST, "") ticket = rowData.get(form_consts.Common.TICKET, "") data = { 'name': name, 'description': description, 'analyst': analyst, 'source': source, 'source_method': source_method, 'source_reference': source_reference, 'bucket_list': bucket_list, 'ticket': ticket} bound_form = cache.get('username_form') if bound_form == None: bound_form = UserNameForm(request.user, None, data) bound_form.data = data cache['username_form'] = bound_form else: bound_form.data = data bound_form.full_clean() return bound_form
def add_username(request): """ Add an username to CRIPTs. Should be an AJAX POST. :param request: Django request object (Required) :type request: :class:`django.http.HttpRequest` :returns: :class:`django.http.HttpResponse` """ if request.method == "POST" and request.is_ajax(): username_form = UserNameForm(request.user, request.POST) if username_form.is_valid(): data = username_form.cleaned_data result = username_add_update( name=data["name"], description=data["description"], source=data["source"], method=data["method"], reference=data["reference"], datasets=None, bucket_list=data[form_consts.Common.BUCKET_LIST_VARIABLE_NAME], ticket=data[form_consts.Common.TICKET_VARIABLE_NAME], analyst=request.user.username, ) if "message" in result: if not isinstance(result["message"], list): result["message"] = [result["message"]] else: result["message"] = [] message = "<div>Success! Click here to view the new UserName: <a " 'href="%s">%s</a></div>' % ( reverse("crits.usernames.views.username_detail", args=[result["object"].username_id]), result["object"].username_id, ) result["message"].insert(0, message) return HttpResponse(json.dumps(result, default=json_handler), content_type="application/json") else: return HttpResponse( json.dumps({"form": username_form.as_table(), "success": False}), content_type="application/json" ) else: return render_to_response("error.html", {"error": "Expected AJAX POST"}, RequestContext(request))
def parse_row_to_bound_username_form(request, rowData, cache): """ Parse a row out of mass object username into the :class:`cripts.usernames.forms.UserNames`. :param request: The Django request. :type request: :class:`django.http.HttpRequest` :param rowData: The data for that row. :type rowData: dict :param cache: Cached data, typically for performance enhancements during bulk operations. :type cache: dict :returns: :class:`cripts.usernames.forms.UserNameForm`. """ name = rowData.get(form_consts.UserName.Name, "") description = rowData.get(form_consts.UserName.DESCRIPTION, "") analyst = request.user source = rowData.get(form_consts.UserName.SOURCE, "") source_method = rowData.get(form_consts.UserName.SOURCE_METHOD, "") source_reference = rowData.get(form_consts.UserName.SOURCE_REFERENCE, "") bucket_list = rowData.get(form_consts.Common.BUCKET_LIST, "") ticket = rowData.get(form_consts.Common.TICKET, "") data = { 'name': name, 'description': description, 'analyst': analyst, 'source': source, 'source_method': source_method, 'source_reference': source_reference, 'bucket_list': bucket_list, 'ticket': ticket } bound_form = cache.get('username_form') if bound_form == None: bound_form = UserNameForm(request.user, None, data) bound_form.data = data cache['username_form'] = bound_form else: bound_form.data = data bound_form.full_clean() return bound_form