U
    "û.hO  ã                   @   s*   d dl T d dlmZ G dd„ dejƒZdS )é    )Ú*)Úcmf_full_searchc                   @   s,   e Zd ZdZejjdg Zeddd„ƒZdS )ÚCmfFullSearchTÚsdesk_fulltext_searchFNc                    s@   ˆ dkrg S ‡ fdd„}	t jjf ˆ |||||||	dœ|—Ž}
|
S )N)ÚCmfDocumentÚCmfSDeskRequestTypeÚ
CmfProjectc                    sœ   d}|   ddg¡ | jr˜| jjdkr˜ˆ dkrB| j d¡rB|  ¡ }n>ˆ dkrb| j d¡rb| j ¡ }nˆ dkr€| j d¡r€| j ¡ }|r˜t | d¡ |  ¡  |S )	NFÚprojectzproject.logic_prefixzproject.servicedeskr   r   r   Úread)	Zload_fieldsr	   Zlogic_prefixÚidÚ
startswithZ_sdesk_check_accessZcmfutilZacl_set_policyZ_acl_check_read)ÚobjÚcheck©Ú
model_name© ú/./modules/servicedesk/models/cmf_full_search.pyÚcheck_access   s    

z9CmfFullSearch.sdesk_fulltext_search.<locals>.check_access)r   Ú
field_nameÚsearch_queryÚonly_idsÚsliceÚfieldsÚno_analitycsr   )Zmodelsr   Zfulltext_search)Úclsr   r   r   r   r   r   r   Úkwargsr   Z
search_resr   r   r   r      s       ÿÿz#CmfFullSearch.sdesk_fulltext_search)FNNF)	Ú__name__Ú
__module__Ú__qualname__Z	api_allowr   r   Zapi_methodsÚclassmethodr   r   r   r   r   r      s   ÿr   N)Zcmf.includeZmodules.project.modelsr   r   r   r   r   r   Ú<module>   s   