U
    03g                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)cmf_attachmentc                   @   sh   e Zd Zejjdddg Zedd Zedddd	Zeddd
dZ	dd Z
dddZdd ZdS )CmfAttachment	sdesk_get
sdesk_listsdesk_createc                O   sf   t j|ddgd}tj|d|i|}|j s<tddd |jjd|d t 	|d	 |
  |jS )
Nparentprojectidfieldsu   Нет доступа!T)abortzPPP-ATT-CREATE)objwrite)cmfutilget_obj_by_idmodelsr   r   _sdesk_check_accessZ	cmf_alertr	   Zcheck_project_role_accessacl_set_policysaver   )clsr   argskwargsr   res r   ../modules/servicedesk/models/cmf_attachment.pyr      s    
zCmfAttachment.sdesk_createN)r   c                O   sH   |sg }d|kr| d | j|d|i|}|r@tdd |}t|S )Nr   r   c                 S   s
   | j  S )N)r   r   )cr   r   r   <lambda>!       z*CmfAttachment.sdesk_list.<locals>.<lambda>)appendlistfilter)r   r   r   r   r   r   r   r   r      s    
zCmfAttachment.sdesk_listc                O   sd   |sg }d|kr| d | j|d|i|}|r`tj|jddgd}|j sTd S t|d |S )Nr   r   r	   r
   read)r   getr   r   	parent_idr   r   r   )r   r   r   r   r   r   r   r   r   r   &   s    

zCmfAttachment.sdesk_getc                 C   s<   |  dddg tjjs$| jjdkr(dS | jj r8dS d S )Nr   zparent.parentzproject.logic_prefixzproject.servicedeskFT)Zload_fieldsgZcurrent_personZ
user_localr	   Zlogic_prefixr   r   )selfr   r   r   sdesk_check_write5   s
    zCmfAttachment.sdesk_check_writeFc                 K   sp   dd l }tjj| j|d}|sl|rltj| jdd}| j|_tjj|j|jj	dd|_
t|d |  |S )Nr   r
   F)nameis_dirT)r   mkdirr   )osr   ZCmfRFiler#   Z
_file_namer(   r   pathdirnamevaluer   r   r   r   )r&   r   create_kwargsr+   r   r   r   r   
_get_rfile<   s    zCmfAttachment._get_rfilec                 O   s<   t j| jdgd}|j s d S | jdd}|j|| d S )Nr   r
   T)r/   )r   r   r$   r   r   r1   Zstream_write)r&   r   r   r   Zrfiler   r   r   sdesk_upload_stream_fileG   s
    
z&CmfAttachment.sdesk_upload_stream_file)NF)__name__
__module____qualname__r   r   Zapi_methodsclassmethodr   r   r   r'   r1   r2   r   r   r   r   r      s   


r   N)Zcmf.includeZmodules.files.modelsr   r   r   r   r   r   <module>   s   