U
    *d                     @   s2   d dl Z d dlT d dlmZ G dd dejZdS )    N)*)cmf_documentc                   @   s8   e Zd Zdd ZeddddZedddd	ZdS )
CmfDocumentc                 C   s   | j jd| j ddS NPPP-PR-BROWSEFobjZraise_error)parentcheck_project_role_access)self r   ,./modules/servicedesk/models/cmf_document.py_sdesk_check_access   s    zCmfDocument._sdesk_check_accessNfilterc                O   s   dddg}dddg}t jjdddgdd	tjgggd
}t jjdgdd	ddggddd	tjggdd	|gggd}dd	dd |D g}g }	|	d||g t jj|	d
}
t	dd |
}t|}g }t j
j|dd	|g|gdD ]}t|d || q|S )NnamecodetextZservicedesk_public=TZservicedesk_allowZpersonsINr   r	   zproject_role.codezsdesk-client:defaultzsdesk-agent:defaultORmembers)fieldsr   idc                 S   s   g | ]
}|j qS r   )Z	parent_id).0pr   r   r   
<listcomp>   s     z*CmfDocument.sdesk_list.<locals>.<listcomp>c                 S   s   | j d| ddS r   )r
   )r   r   r   r   <lambda>&       z(CmfDocument.sdesk_list.<locals>.<lambda>read)ZmodelsZ
CmfCompanylistgZcurrent_userZCmfProjectRoleAssignappendZ
CmfProjectbuiltinsr   r   cmfutilacl_set_policy)clsr   argskwargsr   Zfilter_1Zcompany_listZproject_assign_listZfilter_2Z
prj_filterZproject_listZfiltered_project_listZallow_projectsitemsr   r   r   r   
sdesk_list
   s:    


zCmfDocument.sdesk_list)r   c                O   sV   |sg }d|kr| d | j|d|i|}|rR|jjd|jddrRt|d |S )Nr	   r   r   Fr   r   )r"   getr	   r
   r$   r%   )r&   r   r'   r(   resr   r   r   	sdesk_get1   s    
zCmfDocument.sdesk_get)__name__
__module____qualname__r   classmethodr*   r-   r   r   r   r   r      s
   &r   )r#   Zcmf.includeZmodules.project.modelsr   r   r   r   r   r   <module>   s   