Esempio n. 1
0
def create_view_response(rtype,
                         rstate,
                         rules,
                         sort_key,
                         sort_order,
                         search_query="",
                         count_match=COUNT_MATCH):
    """
    Filter out the rules for normal users
    :param rules:
    :param rstate:
    :return:
    """

    res = make_response(
        render_template('pages/dashboard_view.j2',
                        table_title=RULE_TYPE_DISPATCH[rtype]['title'],
                        button_colspan=COLSPANS[rtype],
                        rules_columns=RULE_TYPE_DISPATCH[rtype]['columns'],
                        rules=rules,
                        css_classes=active_css_rstate(rtype, rstate),
                        sort_order=sort_order,
                        sort_key=sort_key,
                        search_query=search_query,
                        count_match=count_match,
                        rstate=rstate,
                        rtype=rtype,
                        rtype_int=RULE_TYPES[rtype],
                        today=datetime.now()))

    encoded = create_rules_payload([], rtype)

    return res, encoded
Esempio n. 2
0
def create_admin_responose(rtype,
                           rstate,
                           rules,
                           sort_key,
                           sort_order,
                           search_query=""):
    """
    Admin can see and edit any rules
    :param rtype:
    :param rstate:
    :param rules:
    :param all_actions:
    :param sort_order:
    :return:
    """

    res = make_response(
        render_template('pages/dashboard_admin.j2',
                        rules=rules,
                        button_colspan=COLSPANS[rtype],
                        table_title=RULE_TYPE_DISPATCH[rtype]['title'],
                        rules_columns=RULE_TYPE_DISPATCH[rtype]['columns'],
                        css_classes=active_css_rstate(rtype, rstate),
                        sort_order=sort_order,
                        sort_key=sort_key,
                        search_query=search_query,
                        rstate=rstate,
                        rtype=rtype,
                        rtype_int=RULE_TYPES[rtype],
                        today=datetime.now()))

    encoded = create_rules_payload(rules, rtype)

    return res, encoded
Esempio n. 3
0
def create_user_response(rtype,
                         rstate,
                         rules,
                         sort_key,
                         sort_order,
                         search_query="",
                         count_match=COUNT_MATCH):
    """
    Filter out the rules for normal users
    :param rules:
    :param rstate:
    :return:
    """

    net_ranges = models.get_user_nets(session['user_id'])

    if rtype == 'rtbh':
        rules_editable, read_only_rules = validators.split_rtbh_rules_for_user(
            net_ranges, rules)
    else:
        user_rules, read_only_rules = validators.split_rules_for_user(
            net_ranges, rules)
        user_actions = models.get_user_actions(session['user_role_ids'])
        user_actions = [act[0] for act in user_actions]
        rules_editable, rules_visible = flowspec.filter_rules_action(
            user_actions, user_rules)
        read_only_rules = read_only_rules + rules_visible

    # we don't want the read only rules if they are not active
    if rstate != 'active':
        read_only_rules = []

    res = make_response(
        render_template('pages/dashboard_user.j2',
                        table_title=RULE_TYPE_DISPATCH[rtype]['title'],
                        button_colspan=COLSPANS[rtype],
                        rules_columns=RULE_TYPE_DISPATCH[rtype]['columns'],
                        rules_editable=rules_editable,
                        rules_visible=read_only_rules,
                        css_classes=active_css_rstate(rtype, rstate),
                        sort_order=sort_order,
                        sort_key=sort_key,
                        search_query=search_query,
                        count_match=count_match,
                        rstate=rstate,
                        rtype=rtype,
                        rtype_int=RULE_TYPES[rtype],
                        today=datetime.now()))

    encoded = create_rules_payload(rules_editable, rtype)

    return res, encoded