Codebase list python-faraday / 62d1b14 faraday / server / api / modules / search_filter.py
62d1b14

Tree @62d1b14 (Download .tar.gz)

search_filter.py @62d1b14raw · history · blame

# Faraday Penetration Test IDE
# Copyright (C) 2016  Infobyte LLC (http://www.infobytesec.com/)
# See the file 'doc/LICENSE' for the license information
from flask import Blueprint
from marshmallow import fields
import flask_login

from faraday.server.models import SearchFilter
from faraday.server.api.base import (
    ReadWriteView,

    AutoSchema,
    BulkDeleteMixin,
    BulkUpdateMixin
)

searchfilter_api = Blueprint('searchfilter_api', __name__)


class SearchFilterSchema(AutoSchema):

    id = fields.Integer(dump_only=True, attribute='id')

    class Meta:
        model = SearchFilter
        fields = ('id', 'name',
                  'json_query', 'user_query')


class SearchFilterView(ReadWriteView, BulkDeleteMixin, BulkUpdateMixin):
    route_base = 'searchfilter'
    model_class = SearchFilter
    schema_class = SearchFilterSchema

    def _get_base_query(self):
        query = super()._get_base_query()
        return query.filter(SearchFilter.creator_id == flask_login.current_user.id)


SearchFilterView.register(searchfilter_api)