Beispiel #1
0
def get_relationship_type_dropdown(request):
    """
    Get relationship type dropdown data. 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':
        if request.is_ajax():
            dd_final = {}
            for type_ in RelationshipTypes.values(sort=True):
                dd_final[type_] = type_
            result = {'types': dd_final}
            return HttpResponse(json.dumps(result), content_type="application/json")
        else:
            error = "Expected AJAX"
            return render_to_response("error.html",
                                      {"error" : error },
                                      RequestContext(request))
    else:
        error = "Expected POST"
        return render_to_response("error.html",
                                  {"error" : error },
                                  RequestContext(request))
Beispiel #2
0
def get_relationship_type_dropdown(request):
    """
    Get relationship type dropdown data. 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':
        if request.is_ajax():
            dd_final = {}
            for type_ in RelationshipTypes.values(sort=True):
                dd_final[type_] = type_
            result = {'types': dd_final}
            return HttpResponse(json.dumps(result),
                                content_type="application/json")
        else:
            error = "Expected AJAX"
            return render_to_response("error.html", {"error": error},
                                      RequestContext(request))
    else:
        error = "Expected POST"
        return render_to_response("error.html", {"error": error},
                                  RequestContext(request))
Beispiel #3
0
def add_new_relationship(request):
    """
    Add a new relationship. 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():
        form = ForgeRelationshipForm(request.POST)
        choices = [(c, c) for c in RelationshipTypes.values(sort=True)]
        form.fields['forward_relationship'].choices = choices
        if form.is_valid():
            cleaned_data = form.cleaned_data
            results = forge_relationship(
                type_=cleaned_data.get('forward_type'),
                id_=cleaned_data.get('forward_value'),
                right_type=cleaned_data.get('reverse_type'),
                right_id=cleaned_data.get('dest_id'),
                rel_type=cleaned_data.get('forward_relationship'),
                rel_date=cleaned_data.get('relationship_date'),
                user=request.user.username,
                rel_reason=cleaned_data.get('rel_reason'),
                rel_confidence=cleaned_data.get('rel_confidence'),
                get_rels=True)
            if results['success'] == True:
                relationship = {
                    'type': cleaned_data.get('forward_type'),
                    'value': cleaned_data.get('forward_value')
                }
                message = render_to_string(
                    'relationships_listing_widget.html', {
                        'relationship': relationship,
                        'nohide': True,
                        'relationships': results['relationships']
                    }, RequestContext(request))
                result = {'success': True, 'message': message}
            else:
                message = "Error adding relationship: %s" % results['message']
                result = {'success': False, 'message': message}
        else:
            message = "Invalid Form: %s" % form.errors
            form = form.as_table()
            result = {'success': False, 'form': form, 'message': message}
        return HttpResponse(json.dumps(result),
                            content_type="application/json")
    else:
        error = "Expected AJAX POST"
        return render_to_response("error.html", {"error": error},
                                  RequestContext(request))
Beispiel #4
0
 def __init__(self, *args, **kwargs):
     super(ForgeRelationshipForm, self).__init__(*args, **kwargs)
     self.fields["forward_type"].choices = self.fields["reverse_type"].choices = [
         (c, c) for c in sorted(settings.CRIPTS_TYPES.iterkeys())
     ]
     self.fields["forward_relationship"].choices = [(c, c) for c in RelationshipTypes.values(sort=True)]
     self.fields["forward_relationship"].initial = RelationshipTypes.RELATED_TO
     self.fields["rel_confidence"].choices = [
         ("unknown", "unknown"),
         ("low", "low"),
         ("medium", "medium"),
         ("high", "high"),
     ]
     self.fields["rel_confidence"].initial = "medium"
Beispiel #5
0
 def __init__(self, *args, **kwargs):
     super(ForgeRelationshipForm, self).__init__(*args, **kwargs)
     self.fields['forward_type'].choices = self.fields['reverse_type'].choices = [
         (c, c) for c in sorted(settings.CRIPTS_TYPES.iterkeys())
     ]
     self.fields['forward_relationship'].choices = [
         (c, c) for c in RelationshipTypes.values(sort=True)
     ]
     self.fields['forward_relationship'].initial = RelationshipTypes.RELATED_TO
     self.fields['rel_confidence'].choices = [('unknown', 'unknown'),
                                              ('low', 'low'),
                                              ('medium', 'medium'),
                                              ('high', 'high')]
     self.fields['rel_confidence'].initial = 'medium'
Beispiel #6
0
def add_new_relationship(request):
    """
    Add a new relationship. 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():
        form = ForgeRelationshipForm(request.POST)
        choices = [(c,c) for c in RelationshipTypes.values(sort=True)]
        form.fields['forward_relationship'].choices = choices
        if form.is_valid():
            cleaned_data = form.cleaned_data;
            results = forge_relationship(type_=cleaned_data.get('forward_type'),
                                         id_=cleaned_data.get('forward_value'),
                                         right_type=cleaned_data.get('reverse_type'),
                                         right_id=cleaned_data.get('dest_id'),
                                         rel_type=cleaned_data.get('forward_relationship'),
                                         rel_date=cleaned_data.get('relationship_date'),
                                         user=request.user.username,
                                         rel_reason=cleaned_data.get('rel_reason'),
                                         rel_confidence=cleaned_data.get('rel_confidence'),
                                         get_rels=True)
            if results['success'] == True:
                relationship = {'type': cleaned_data.get('forward_type'),
                                'value': cleaned_data.get('forward_value')}
                message = render_to_string('relationships_listing_widget.html',
                                           {'relationship': relationship,
                                            'nohide': True,
                                            'relationships': results['relationships']},
                                           RequestContext(request))
                result = {'success': True, 'message': message}
            else:
                message = "Error adding relationship: %s" % results['message']
                result = {'success': False, 'message': message}
        else:
            message = "Invalid Form: %s" % form.errors
            form = form.as_table()
            result = {'success': False, 'form': form, 'message': message}
        return HttpResponse(json.dumps(result), content_type="application/json")
    else:
        error = "Expected AJAX POST"
        return render_to_response("error.html",
                                  {"error" : error },
                                  RequestContext(request))
Beispiel #7
0
from django.conf import settings
from django import forms

from cripts.core import form_consts
from cripts.core.forms import add_bucketlist_to_form, add_ticket_to_form
from cripts.core.widgets import CalWidget
from cripts.core.handlers import get_source_names, get_item_names
from cripts.core.user_tools import get_user_organization

from cripts.vocabulary.events import EventTypes
from cripts.vocabulary.relationships import RelationshipTypes

relationship_choices = [(c, c) for c in RelationshipTypes.values(sort=True)]


class EventForm(forms.Form):
    """
    Django form for creating a new Event.
    """

    error_css_class = 'error'
    required_css_class = 'required'
    title = forms.CharField(widget=forms.TextInput, required=True)
    event_type = forms.ChoiceField(required=True, widget=forms.Select)
    description = forms.CharField(widget=forms.Textarea(attrs={
        'cols': '30',
        'rows': '3'
    }),
                                  required=False)
    occurrence_date = forms.DateTimeField(
        widget=CalWidget(format=settings.PY_DATETIME_FORMAT,
Beispiel #8
0
from django.conf import settings
from django import forms

from cripts.core import form_consts
from cripts.core.forms import add_bucketlist_to_form, add_ticket_to_form
from cripts.core.widgets import CalWidget
from cripts.core.handlers import get_source_names, get_item_names
from cripts.core.user_tools import get_user_organization

from cripts.vocabulary.events import EventTypes
from cripts.vocabulary.relationships import RelationshipTypes

relationship_choices = [(c, c) for c in RelationshipTypes.values(sort=True)]


class EventForm(forms.Form):
    """
    Django form for creating a new Event.
    """

    error_css_class = "error"
    required_css_class = "required"
    title = forms.CharField(widget=forms.TextInput, required=True)
    event_type = forms.ChoiceField(required=True, widget=forms.Select)
    description = forms.CharField(widget=forms.Textarea(attrs={"cols": "30", "rows": "3"}), required=False)
    occurrence_date = forms.DateTimeField(
        widget=CalWidget(
            format=settings.PY_DATETIME_FORMAT,
            attrs={"class": "datetimeclass", "size": "25", "id": "id_occurrence_date"},
        ),
        input_formats=settings.PY_FORM_DATETIME_FORMATS,