U
    h                     @   sF   d dl mZ d dlmZ d dlmZmZ dd ZG dd dejZ	dS )	    )filters)Q)userprofilecompanyc                 C   s   g }g }t jj| d}|D ]T}|jr:|j|kr:||j |jrtjj|jjd}|D ]}||krV|| qVqdd |D dd |D fS )Nuser)organizationc                 S   s   g | ]
}|j qS  )id.0compr	   r	   >/home/worker/MarketYantra/Yantra/yantra/permissions/filters.py
<listcomp>'   s     z%permitedCompanies.<locals>.<listcomp>c                 S   s   g | ]}|j |j|jd qS )r
   namer   r   r   r	   r	   r   r   '   s     )r   objectsfilterr   appendr   r
   )r   ZcompidsZ	companiesZupsupcompsr   r	   r	   r   permitedCompanies   s    
r   c                   @   s   e Zd ZdZdd ZdS )IsAllowedFilterBackendzA
    Filter that only allows users to see their own objects.
    c                 C   sD   t |jd}t|j D ]}|t f |d |d iM }q||S )Nr   r      )r   r   listquery_paramsitemsr   )selfrequestquerysetviewqFilterfiltr	   r	   r   filter_queryset.   s    	z&IsAllowedFilterBackend.filter_querysetN)__name__
__module____qualname____doc__r#   r	   r	   r	   r   r   *   s   r   N)
rest_frameworkr   django.db.modelsr   permissions.models.auditr   r   r   ZBaseFilterBackendr   r	   r	   r	   r   <module>   s   