コード例 #1
0
def create_whitelist_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    issue_obj = kwargs.get('issue_obj', None)
    operator = kwargs.get('operator', None)
    app_obj = kwargs.get('app_obj', None)
    comment = kwargs.get('comment', None)
    is_active = kwargs.get('is_active', True)

    if not all((issue_obj, operator, app_obj)):
        raise ParameterIsEmptyException(
            u'"issue_obj, operator, app_obj" parameters cannot be empty !')

    if comment:
        comment = comment[:500]

    close_old_connections()

    whitelist = IssueWhiteListInfo(
        issue=issue_obj,
        operator=operator,
        app=app_obj,
        comment=comment,
        is_active=is_active,
    )
    whitelist.save()
    return whitelist
コード例 #2
0
def _get_periodic_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    result = None
    periodic_id = kwargs.get('periodic_id', None)
    task = kwargs.get('task', None)
    name = kwargs.get('name', None)
    close_old_connections()

    try:

        sql_where = {}

        if periodic_id:
            sql_where['id'] = int(periodic_id)
        if task:
            sql_where['task'] = task.strip()
        if name:
            sql_where['name'] = name.strip()

        if not sql_where:
            raise QueryConditionIsEmptyException(
                u'Missing "periodic_id, task, name" key parameters!')

        item = PeriodicTask.objects.get(**sql_where)
        result = item
    except PeriodicTask.DoesNotExist as ex:
        logger.warning(ex)
    return result
コード例 #3
0
def _get_pro_member_perm(**kwargs):
    """

    :param kwargs:
    :return:
    """
    result = None
    member_id = kwargs.get('member_id', None)
    project_id = kwargs.get('project_id', None)
    close_old_connections()

    try:
        sql_where = {}

        if member_id:
            sql_where['member__id'] = int(member_id)
        if project_id:
            sql_where['project__id'] = int(project_id)
        if not sql_where:
            raise QueryConditionIsEmptyException(
                u'Missing "member_id, project_id" key parameters!')

        result = ProjectPermissionInfo.objects.filter(**sql_where).first()

    except ProjectPermissionInfo.DoesNotExist as ex:
        logger.warning(ex)
    return result
コード例 #4
0
def create_tag_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    name = kwargs.get('name', None)
    description = kwargs.get('description', None)
    parent = kwargs.get('parent', None)

    if not all((name, )):
        raise ParameterIsEmptyException(u'"name" parameters cannot be empty !')

    if name and len(name) > 64:
        name = name[:64]

    close_old_connections()

    tag = TagInfo(
        name=name,
        description=description,
        parent=parent,
    )
    tag.save()
    return tag
コード例 #5
0
def _get_statistics_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    result = None
    stat_id = kwargs.get('stat_id', None)
    language = kwargs.get('language', None)
    app_id = kwargs.get('app_id', None)
    close_old_connections()

    try:
        sql_where = {}

        if stat_id:
            sql_where['id'] = int(stat_id)
        if language:
            sql_where['language__iexact'] = language.strip()
        if app_id:
            sql_where['app__id'] = int(app_id)

        if not sql_where:
            raise QueryConditionIsEmptyException(
                u'Missing "stat_id, language, app_id" key parameters!')

        item = FileStatisticsInfo.objects.get(**sql_where)
        result = item
    except FileStatisticsInfo.DoesNotExist as ex:
        logger.warning(ex)
    return result
コード例 #6
0
def _get_node_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    result = None
    node_id = kwargs.get('node_id', None)
    hostname = kwargs.get('hostname', None)
    ipv4 = kwargs.get('ipv4', None)
    close_old_connections()

    try:
        sql_where = {}
        if node_id:
            sql_where['id'] = int(node_id)
        if hostname:
            sql_where['hostname'] = hostname
        if ipv4:
            sql_where['ipv4'] = ipv4

        if not sql_where:
            raise QueryConditionIsEmptyException(
                u'Missing "node_id, hostname" key parameters!')

        item = HostInfo.objects.get(**sql_where)
        result = item
    except HostInfo.DoesNotExist as ex:
        logger.warning(ex)
    return result
コード例 #7
0
def create_pro_history_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """

    project_obj = kwargs.get('project_obj', None)
    htype = kwargs.get('type', 1)
    user = kwargs.get('user', None)
    title = kwargs.get('title', None)
    is_first = kwargs.get('is_first', False)
    description = kwargs.get('description', None)

    if not description:
        raise ParameterIsEmptyException(
            u'Project description cannot be empty!')

    if len(title) > 128:
        title = title[:128]

    close_old_connections()

    his = ProjectHistoryInfo(project=project_obj,
                             type=htype,
                             user=user,
                             title=title,
                             is_first=is_first,
                             description=description)
    his.save()
    return his
コード例 #8
0
ファイル: permission.py プロジェクト: icukeup/seecode-audit-1
def get_permissions_by_all_module():
    """
    获取所有模块
    :return:
    """

    #if cache.get(SYSTEM_CACHE[3]):
    #    return cache.get(CACHE_KEY)

    result = {
        "sys": [],
        "project": [],
        "engine": [],
        "task": [],
        "node": [],
        "report": [],
    }
    """"

    """
    close_old_connections()
    result['sys'] = ContentType.objects.filter(
        id__in=[12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26])
    result['project'] = ContentType.objects.filter(id__in=[4, 5, 6, 7, 8])
    result['engine'] = ContentType.objects.filter(id__in=[17, 18, 19, 20])
    result['task'] = ContentType.objects.filter(id__in=[9, 10, 11, 1])
    result['node'] = ContentType.objects.filter(id__in=[2, 3])
    # result['report'] = ContentType.objects.filter(id__in=[18, 19, 20, 21])
    set_cache(result)
    return result
コード例 #9
0
def _get_group_member_perm(**kwargs):
    """

    :param kwargs:
    :return:
    """
    result = None
    member_id = kwargs.get('member_id', None)
    group_id = kwargs.get('group_id', None)
    close_old_connections()

    try:
        sql_where = {}
        if member_id:
            sql_where['member__id'] = int(member_id)
        if group_id:
            sql_where['group__id'] = int(group_id)
        if not sql_where:
            raise QueryConditionIsEmptyException(u'Missing "member_id, group_id" key parameters!')

        result = GroupPermissionInfo.objects.get(**sql_where)

    except GroupPermissionInfo.DoesNotExist as ex:
        logger.warning(ex)
    return result
コード例 #10
0
ファイル: service.py プロジェクト: icukeup/seecode-audit-1
def create_service_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    name = kwargs.get('name', None)
    key = kwargs.get('key', None)
    role = kwargs.get('role', None)
    process_keyword = kwargs.get('process_keyword', None)
    description = kwargs.get('description', None)

    if not all((
            name,
            key,
            process_keyword,
    )):
        raise ParameterIsEmptyException(
            u'"name, key, process_keyword" parameters cannot be empty !')
    close_old_connections()

    service = ServiceInfo(
        name=name,
        key=key,
        process_keyword=process_keyword,
        description=description,
        role=role,
    )
    service.save()
    return service
コード例 #11
0
ファイル: host.py プロジェクト: icukeup/seecode-audit-1
def create_host_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    hostname = kwargs.get('hostname', None)
    ipv4 = kwargs.get('ipv4', None)
    ipv6 = kwargs.get('ipv6', None)
    role = kwargs.get('role', 'client')
    ui_version = kwargs.get('ui_version', None)
    client_version = kwargs.get('client_version', None)

    if not all((
            hostname,
            role,
    )):
        raise ParameterIsEmptyException(
            u'"hostname, role" parameters cannot be empty !')

    close_old_connections()
    host = HostInfo(
        hostname=hostname,
        ipv4=ipv4,
    )
    if role and role.lower() == 'ui':
        host.is_role_ui = True
    else:
        host.is_role_client = True
    if ui_version:
        host.ui_version = ui_version.strip()
    if client_version:
        host.client_version = client_version.strip()
    host.save()
    return host
コード例 #12
0
def create_node_service_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    node_obj = kwargs.get('node_obj', None)
    service_obj = kwargs.get('service_obj', None)
    ppid = kwargs.get('ppid', None)
    pid = kwargs.get('pid', None)
    status = kwargs.get('status', None)

    if not all((node_obj, service_obj, ppid, pid)):
        raise ParameterIsEmptyException(u'"node_obj, service_obj, ppid, pid" parameters cannot be empty !')

    close_old_connections()

    node = HostServiceInfo(
        node=node_obj,
        service=service_obj,
        ppid=ppid,
        pid=pid,
        status=status,
    )
    node.save()
    return node
コード例 #13
0
def create_flow_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    issue_obj = kwargs.get('issue_obj', None)
    user = kwargs.get('user', None)
    comment = kwargs.get('comment', None)

    if not all((issue_obj, comment)):
        raise ParameterIsEmptyException(u'"issue_obj, comment" parameters cannot be empty !')

    close_old_connections()

    issue = IssueFlowInfo(
        issue=issue_obj,
        user=user,
        behavior=behavior_type.HUMAN if user else behavior_type.SYS,
        status=issue_obj.status,
        comment=comment,
    )
    issue.save()

    return issue
コード例 #14
0
def _get_whitelist_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    result = None
    white_id = kwargs.get('white_id', None)
    issue_id = kwargs.get('issue_id', None)
    close_old_connections()

    try:
        sql_where = {}
        if white_id:
            sql_where['id'] = int(white_id)
        if issue_id:
            sql_where['issue__id'] = int(issue_id)

        if not sql_where:
            raise QueryConditionIsEmptyException(
                u'Missing "white_id, issue_id" key parameters!')

        item = IssueWhiteListInfo.objects.get(**sql_where)
        result = item
    except IssueWhiteListInfo.DoesNotExist as ex:
        logger.warning(ex)
    return result
コード例 #15
0
ファイル: lang.py プロジェクト: icukeup/seecode-audit-1
def create_lang_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    name = kwargs.get('name', None)
    key = kwargs.get('key', None)

    if not name:
        raise ParameterIsEmptyException(u'Language name cannot be empty!')

    if name and len(name) > 16:
        name = name[:16]

    if not key:
        key = name.lower()
    else:
        key = key.lower()

    close_old_connections()

    lang = LanguageInfo(
        name=name,
        key=key,
    )
    lang.save()
    cache.set(CONFIG_LANG_CACHE[2], None, 0)
    return lang
コード例 #16
0
def _get_group_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    git_id = kwargs.get('git_id', None)
    group_id = kwargs.get('group_id', None)
    name = kwargs.get('name', None)
    close_old_connections()

    try:
        sql_where = {}
        if git_id:
            sql_where['git_id'] = int(git_id)
        if group_id:
            sql_where['id'] = int(group_id)
        if name:
            sql_where['name'] = name.strip()

        if not sql_where:
            raise QueryConditionIsEmptyException(u'Missing "group_id, git_id, name" key parameters!')

        item = GroupInfo.objects.filter(**sql_where).first()
        return item
    except GroupInfo.DoesNotExist as ex:
        logger.warning(ex)
        return None
コード例 #17
0
ファイル: lang.py プロジェクト: icukeup/seecode-audit-1
def _get_lang_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    result = None
    lang_id = kwargs.get('lang_id', None)
    name = kwargs.get('name', None)
    key = kwargs.get('key', None)
    close_old_connections()

    try:
        sql_where = {}
        if name:
            sql_where['name__iexact'] = name.strip()
        if key:
            sql_where['key'] = key.lower()
        if lang_id:
            sql_where['id'] = int(lang_id)
        if not sql_where:
            raise QueryConditionIsEmptyException(u'Missing "lang_id, name, key" key parameters!')
        item = LanguageInfo.objects.get(**sql_where)
        result = item
    except LanguageInfo.DoesNotExist as ex:
        logger.warning(ex)
    return result
コード例 #18
0
def _get_sched_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    result = None
    sched_id = kwargs.get('sched_id', None)
    close_old_connections()

    try:

        sql_where = {}

        if sched_id:
            sql_where['id'] = int(sched_id)

        if not sql_where:
            raise QueryConditionIsEmptyException(
                u'Missing "sched_id" key parameters!')

        item = SchedInfo.objects.get(**sql_where)
        result = item
    except SchedInfo.DoesNotExist as ex:
        logger.warning(ex)
    return result
コード例 #19
0
def _get_vuln_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    result = None
    vuln_id = kwargs.get('vuln_id', None)
    title = kwargs.get('title', None)
    cve = kwargs.get('cve', None)
    close_old_connections()

    try:
        sql_where = {}
        if vuln_id:
            sql_where['id'] = int(vuln_id)
        if title:
            sql_where['title'] = title.strip()
        if cve:
            sql_where['cve'] = cve.strip()

        if not sql_where:
            raise QueryConditionIsEmptyException(
                u'Missing "vuln_id, title" key parameters!')

        item = VulnInfo.objects.get(**sql_where)
        result = item
    except VulnInfo.DoesNotExist as ex:
        logger.warning(ex)
    return result
コード例 #20
0
def _get_crontab(**kwargs):
    """

    :param kwargs:
    :return:
    """
    result = None
    cron_expression = kwargs.get('cron_expression', None)
    cron_id = kwargs.get('cron_id', None)
    close_old_connections()
    try:
        if cron_expression:
            cron_expression = cron_expression.strip()
            minute, hour, day_of_week, day_of_month, month_of_year = cron_expression.split(
                ' ')
            result = CrontabSchedule.objects.get(minute=minute,
                                                 hour=hour,
                                                 day_of_week=day_of_week,
                                                 day_of_month=day_of_month,
                                                 month_of_year=month_of_year)
        if cron_id:
            result = CrontabSchedule.objects.get(id=int(cron_id))
    except CrontabSchedule.DoesNotExist as ex:
        logger.warning(ex)
    return result
コード例 #21
0
def _get_app_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    result = None
    app_id = kwargs.get('app_id', None)
    module_name = kwargs.get('module_name', None)
    app_name = kwargs.get('app_name', None)
    project_id = kwargs.get('project_id', None)
    close_old_connections()

    try:
        sql_where = {}
        if app_id:
            sql_where['id'] = int(app_id)
        if project_id:
            sql_where['project__id'] = int(project_id)
        if module_name:
            sql_where['module_name__iexact'] = module_name.lower().strip()
        if app_name:
            sql_where['app_name__iexact'] = app_name.strip()

        if not sql_where:
            raise QueryConditionIsEmptyException(
                u'Missing "app_id, module_name, app_name" key parameters!')

        item = ApplicationInfo.objects.filter(**sql_where).first()
        result = item
    except ApplicationInfo.DoesNotExist as ex:
        logger.warning(ex)
    return result
コード例 #22
0
ファイル: scan_task.py プロジェクト: icukeup/seecode-audit-1
def _get_task_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    task_id = kwargs.get('task_id', None)
    app_id = kwargs.get('app_id', None)
    status = kwargs.get('status', None)
    close_old_connections()

    try:
        sql_where = {}
        if task_id:
            sql_where['id'] = int(task_id)
        if app_id:
            sql_where["app__id"] = int(app_id)
        if status:
            sql_where["status__in"] = status
        if not sql_where:
            raise QueryConditionIsEmptyException(u'Missing "task_id" key parameters!')

        item = TaskInfo.objects.filter(**sql_where).first()
        return item
    except TaskInfo.DoesNotExist as ex:
        logger.warn(ex)
        return None
コード例 #23
0
def _get_tag_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    result = None
    tag_id = kwargs.get('tag_id', None)
    parent_id = kwargs.get('parent_id', None)
    name = kwargs.get('name', None)
    close_old_connections()

    try:
        sql_where = {}
        if tag_id:
            sql_where['id'] = int(tag_id)
        if parent_id:
            sql_where['parent__id'] = int(parent_id)
        if name:
            sql_where['name'] = name
        if not sql_where:
            raise QueryConditionIsEmptyException(
                u'Missing "parent_id, name" key parameters!')

        item = TagInfo.objects.get(**sql_where)
        result = item
    except TagInfo.DoesNotExist as ex:
        logger.warning(ex)
    return result
コード例 #24
0
ファイル: scan_group.py プロジェクト: icukeup/seecode-audit-1
def create_t_group_obj(**kwargs):
    """
    :param kwargs:
    :return:
    """
    profile_obj = kwargs.get('profile_obj', None)
    periodic_obj = kwargs.get('periodic_obj', None)
    sched_obj = kwargs.get('sched_obj', None)
    is_default = kwargs.get('is_default', False)
    name = kwargs.get('name', '')
    branch = kwargs.get('branch', '')
    args = kwargs.get('args', '')

    if not all((name, )):
        raise ParameterIsEmptyException(u'"name" parameters cannot be empty !')

    if name and len(name) > 255:
        name = name[:255]

    close_old_connections()

    grp = TaskGroupInfo(profile=profile_obj,
                        periodic=periodic_obj,
                        sched=sched_obj,
                        name=name.strip(),
                        branch=branch,
                        is_default=is_default,
                        args=args.strip())
    grp.save()

    return grp
コード例 #25
0
ファイル: tactic.py プロジェクト: icukeup/seecode-audit-1
def _get_tactic_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    result = None
    tactic_id = kwargs.get('tactic_id', None)
    name = kwargs.get('name', None)
    key = kwargs.get('key', None)
    attribution_type = kwargs.get('attribution_type', None)

    close_old_connections()

    try:
        sql_where = {}
        if tactic_id:
            sql_where['id'] = int(tactic_id)
        if name:
            sql_where['name'] = name
        if key:
            sql_where['key'] = key
        if attribution_type:
            sql_where['attribution_type'] = int(attribution_type)
        if not sql_where:
            raise QueryConditionIsEmptyException(
                u'Missing "tactic_id, name, key" key parameters!')

        result = TacticInfo.objects.filter(**sql_where).first()
    except TacticInfo.DoesNotExist as ex:
        logger.warning(ex)
    return result
コード例 #26
0
ファイル: scan_group.py プロジェクト: icukeup/seecode-audit-1
def update_t_group_obj(**kwargs):
    """
    :param kwargs:
    :return:
    """
    group_id = kwargs.get('group_id', None)
    name = kwargs.get('name', None)
    profile_obj = kwargs.get('profile_obj', None)
    is_default = kwargs.get('is_default', False)

    close_old_connections()
    grp = TaskGroupInfo.objects.filter(id=group_id).first()
    if grp:
        if name:
            grp.name = name.strip()
        if profile_obj:
            grp.profile = profile_obj
        if is_default:
            TaskGroupInfo.objects.filter().update(is_default=False)
            grp.is_default = True
            cache.set(SCAN_CACHE[5], None, 0)
        grp.save()
    cache.set('{0}:{1}'.format(SCAN_CACHE[1], group_id), None, 0)

    return grp
コード例 #27
0
def _get_project_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    result = None
    git_id = kwargs.get('git_id', None)
    project_id = kwargs.get('project_id', None)
    name = kwargs.get('name', None)
    ssh_url = kwargs.get('ssh_url', None)
    close_old_connections()

    try:
        sql_where = {}

        if git_id:
            sql_where['git_id'] = int(git_id)
        if project_id:
            sql_where['id'] = int(project_id)
        if name:
            sql_where['name'] = name.strip()
        if ssh_url:
            sql_where['ssh_url_to_repo__iexact'] = ssh_url.strip()

        if not sql_where:
            raise QueryConditionIsEmptyException(
                u'Missing "project_id, git_id, name" key parameters!')

        item = ProjectInfo.objects.get(**sql_where)
        result = item
    except ProjectInfo.DoesNotExist as ex:
        logger.warning(ex)
    return result
コード例 #28
0
ファイル: issue.py プロジェクト: icukeup/seecode-audit-1
def get_issue_by_info(tactic_id, app_id, file_name, start_line):
    """

    :param tactic_id:
    :param app_id:
    :param file_name:
    :param start_line:
    :return:
    """
    result = None

    close_old_connections()

    try:
        sql_where = {}
        if tactic_id:
            sql_where['tactic__id'] = int(tactic_id)
        if app_id:
            sql_where['app__id'] = int(app_id)
        if file_name:
            sql_where['file_name'] = file_name.strip()
        if start_line:
            sql_where['start_line'] = int(start_line)

        if not sql_where:
            raise QueryConditionIsEmptyException(
                u'Missing "tactic_id, app_id, file_name, start_line" key parameters!'
            )

        result = IssueInfo.objects.filter(**sql_where).first()
    except IssueInfo.DoesNotExist as ex:
        import traceback
        traceback.print_exc()  # FIXME log
    return result
コード例 #29
0
ファイル: engine.py プロジェクト: icukeup/seecode-audit-1
def _get_engine_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    result = None
    engine_id = kwargs.get('engine_id', None)
    module_name = kwargs.get('module_name', None)
    close_old_connections()

    try:
        sql_where = {}
        if engine_id:
            sql_where['id'] = int(engine_id)
        if module_name:
            sql_where['module_name'] = module_name
        if not sql_where:
            raise QueryConditionIsEmptyException(
                u'Missing "engine_id" key parameters!')

        item = EngineInfo.objects.get(**sql_where)
        result = item
    except EngineInfo.DoesNotExist as ex:
        logger.warning(ex)
    return result
コード例 #30
0
def _get_member_obj(**kwargs):
    """

    :param kwargs:
    :return:
    """
    result = None
    git_id = kwargs.get('git_id', None)
    member_id = kwargs.get('member_id', None)
    username = kwargs.get('username', None)
    close_old_connections()

    try:
        sql_where = {}
        if git_id:
            sql_where['git_id'] = int(git_id)
        if member_id:
            sql_where['id'] = int(member_id)
        if username:
            sql_where['username'] = username.strip()
        if not sql_where:
            raise QueryConditionIsEmptyException(u'Missing "member_id, git_id, username" key parameters!')

        item = MemberInfo.objects.filter(**sql_where).first()
        result = item
    except MemberInfo.DoesNotExist as ex:
        logger.warning(ex)
    return result