MOON
Server: Apache
System: Linux 54-179-220-51.cprapid.com 3.10.0-1160.144.1.el7.tuxcare.els4.x86_64 #1 SMP Tue Apr 7 08:40:40 UTC 2026 x86_64
User: thehunarfound (1001)
PHP: 7.4.29
Disabled: NONE
Upload Files
File: //opt/imunify360/venv/lib64/python3.11/site-packages/im360/simple_rpc/middleware.py
from functools import wraps

from im360.internals.strategy import Strategy
from im360.model.firewall import IPList


def add_strategy(f):
    @wraps(f)
    async def wrapper(*args, **kwargs):
        result = await f(*args, **kwargs)
        assert isinstance(result, dict), (
            "Result should be a dictionary %s" % result
        )
        result["strategy"] = Strategy.get()

        return result

    return wrapper


def replace_gray_splashscreen_with_gray(f):
    """
    Replaces 'GRAY_SPLASHSCREEN' value
    for *listname* field for queries like `graylist ip list`
    for compatibility with UI
    """

    @wraps(f)
    async def wrapper(*args, **kwargs):
        result = await f(*args, **kwargs)
        if not isinstance(result.get("items"), list):
            return result
        gray_splashscreen = IPList.GRAY_SPLASHSCREEN.lower()
        for item in result.get("items", []):
            if (
                isinstance(item, dict)
                and item.get("listname")
                and item["listname"].lower() == gray_splashscreen
            ):
                # use same case as it is
                item["listname"] = (
                    IPList.GRAY
                    if item["listname"].isupper()
                    else IPList.GRAY.lower()
                )
        return result

    return wrapper