o
    ht                     @   s6   d dl mZ d dlmZ d dlmZ G dd dZdS )    )redirect)reverse)Groupc                   @   s$   e Zd Zdd Zdd Zdd ZdS )CustomerAccessMiddlewarec                 C   s
   || _ d S Nget_response)selfr    r
   (/var/www/html/kangema/shop/middleware.py__init__   s   
z!CustomerAccessMiddleware.__init__c                 C   s   |  |}|S r   r   )r	   requestresponser
   r
   r   __call__
   s   
z!CustomerAccessMiddleware.__call__c                    sn   g d}t  fdd|D r5 jjr5g ddd  jj D }t fdd|D s5 jjs5tdS d S )	N)z/dashboard/z/sales/z/hr/z/inventory/z/customers/z/suppliers/z	/reports/z
/expenses/z/orders/z
/settings/z/auth/z/admin/c                 3   s    | ]	} j |V  qd S r   )path
startswith).0r   )r   r
   r   	<genexpr>   s    z8CustomerAccessMiddleware.process_view.<locals>.<genexpr>)Sales
SupervisorManagerAdministratorc                 S   s   g | ]}|j qS r
   )namer   groupr
   r
   r   
<listcomp>   s    z9CustomerAccessMiddleware.process_view.<locals>.<listcomp>c                 3   s    | ]}| v V  qd S r   r
   r   )staff_groupsr
   r   r      s    zshop:product_list)anyuseris_authenticatedgroupsallis_staffr   )r	   r   	view_func	view_argsview_kwargsbackend_pathsuser_groupsr
   )r   r   r   process_view   s   z%CustomerAccessMiddleware.process_viewN)__name__
__module____qualname__r   r   r(   r
   r
   r
   r   r      s    r   N)django.shortcutsr   django.urlsr   django.contrib.auth.modelsr   r   r
   r
   r
   r   <module>   s   