403Webshell
Server IP : 65.108.144.40  /  Your IP : 216.73.217.165
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux ubuntu-8gb-hel1-1 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64
User : dev ( 1000)
PHP Version : 8.2.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/erp/accessibility/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/erp/accessibility/middlewares.py
"""
accessibility/middlewares.py
"""

from django.core.cache import cache

from accessibility.methods import check_is_accessible
from accessibility.models import ACCESSBILITY_FEATURE

ACCESSIBILITY_CACHE_USER_KEYS = {}


def update_accessibility_cache(cache_key, request):
    """
    Cache for get all the queryset
    """
    feature_accessible = {}
    for accessibility, _display in ACCESSBILITY_FEATURE:
        feature_accessible[accessibility] = check_is_accessible(
            accessibility, cache_key, getattr(request.user, "employee_get")
        )
    cache.set(cache_key, feature_accessible)


class AccessibilityMiddleware:
    """
    AccessibilityMiddleware
    """

    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        session_key = request.session.session_key
        if session_key:
            cache_key = session_key + "accessibility_filter"
            exists_user_cache_key = ACCESSIBILITY_CACHE_USER_KEYS.get(
                request.user.id, []
            )
            if not exists_user_cache_key:
                ACCESSIBILITY_CACHE_USER_KEYS[request.user.id] = exists_user_cache_key
            if (
                session_key
                and getattr(request.user, "employee_get", None)
                and not cache.get(cache_key)
            ):
                exists_user_cache_key.append(cache_key)
                update_accessibility_cache(cache_key, request)
        response = self.get_response(request)
        return response

Youez - 2016 - github.com/yon3zu
LinuXploit