U
    Eh1                     @   s   d dl Z d dlmZ d dlmZ d dlmZmZ d dlZd dlZd dl	m
Z
 d dlmZ d dlT d dlmZ d d	lmZ G d
d deZdS )    N)copy)uuid4)urlparseparse_qs)cmfutil)commit_all_ds)*)BaseView)ApiViewc                       s>   e Zd ZdZdd ZedddZejj	 fddZ
  ZS )	PublicApiViewz/pub/pub_apic                 C   s0   t dt j  t jr,t js,t d dS dS )Nu-   Доступ к публичному апи: uK   Доступ к share-api не прошел проверку sharelink_hashFT)gdebugZcurrent_personZsharelink_access_requestZsharelink_access_grantedself r   !./modules/api/views/public_api.py_check_access   s
    
zPublicApiView._check_access)methodc                 O   s  z|j ddd\}}W n tk
r,   Y dS X |ds<dS || jkrJdS d}|dkrh| jd d d	 }|d
kr| jd d d }|dkr| jd d d }|dkr| jd d d }|dkr| jd d d }|dkr| jd d d }|dkr| jd d d }|dkr"| jd d d }|dkr>| jd d d }|dkrZ| jd d d  }|d!krv| jd" d d# }|d$kr| jd" d d% }|d&kr| jd' d d( }|d)kr| jd d d* }|d+kr| jd d d* }|d,kr| jd d d- }|d.kr| jd d d/ }|d0kr:| jd d d1 }|d2krV| jd d d3 }|d4krr| jd5 d d* }|d6kr| jd" d d* }|d7kr| jd" d d8 }|d9kr| jd" d d: }|d;kr| jd" d d< }|d=kr| jd" d d> }|d?kr| jd d d> }|d@kr6| jd5 d d> }|dAkrR| jd" d dB }|dCkrn| jd" d d }|dDkr| jd" d d }|dEkr| jd" d dF }|dGkr| jd" d dH }|dIkr| jd" d dJ }|dKkr| jd" d dL }|dMkr| jd" d dN }|dOkr2| jd" d dP }|dQkrN| jd d dR }|dSkrj| jd d dT }|dUkr| jdV d d  }|dWkr| jdV d d* }|dXkr| jd d d* }|dYkr| jd d d }|dZkr| jd[ d d* }|d\kr| jd[ d d }|d]kr.| jd^ d d_ }|d`krJ| jd^ d d* }|dakrf| jd^ d db }|dckr| jd^ d dd }|dekr| jd d df }|dgkr| jd d dh }|dikr| jd d d* }|djkr| jd d d- }|dkkr| jd d dl }|dmkr*| jd d dn }|dokrF| jdp d d* }|dqkrb| jdr d d* }|dskr~| jd d d  }|dtkr| jdu d dv }|dwkr| jd5 d d  }|dxkr| jd^ d d  }|dykr| jd' d dz }|d{kr
| jd d d| }|d}kr&| jd^ d d~ }|dkrB| jd" d d }|dkr^| jd d d }|dkrz| jd d d }|dkr| jd d df }|dkr| jd d d }|sdS | j| d |d< d}||d< |S )u9  
        def rpc_prepare_method():
            #Проскси-методы
            if method == „PersonVar.public_ping“:
                method = PersonVar.ping
            # Спец.методы
            if method == „PersonVar.public_set“:
                method = PersonVar.public_set
        .   )maxsplitNZpublic_z!CmfPerson.public_get_current_userZ	CmfPersonmethodsZget_current_userz BaseModel.public_all_models_metaZ	BaseModelZall_models_metaz!BaseModel.public_get_ui_full_pathZpublic_get_ui_full_pathz$CmfMenuTree.public_tree_menu_in_rootZCmfMenuTreeZtree_menu_in_rootzCmfMenuTree.public_get_nodeZget_nodez#CmfMenuTree.public_get_parents_listZget_parents_listz!CmfFolder.public_get_project_nameZ	CmfFolderZget_project_namezCmfAttachment.public_listZCmfAttachmentlistzCmfAttachment.public_deleteZpublic_nonezCmfComment.public_listZ
CmfCommentZpublic_listz CmfDocument.public_export_to_pdfZCmfDocumentZpublic_export_to_pdfz!CmfDocument.public_export_to_docxZpublic_export_to_docxzCmfPersonVar.public_getZCmfPersonVargetzCmfComment.public_getZ
public_getzCmfPerson.public_getzCmfComment.public_createZpublic_createzCmfComment.public_deleteZpublic_deletezCmfComment.public_likeZpublic_likezCmfComment.public_create_dummyZpublic_create_dummyzCmfProject.public_getZ
CmfProjectzCmfDocument.public_getzCmfDocument.public_lockZpublic_lockzCmfDocument.public_unlockZpublic_unlockzCmfDocument.public_lock_pingZpublic_lock_pingz'CmfDocument.public_macros_page_tree_getZmacros_page_tree_getz%CmfFolder.public_macros_page_tree_getz&CmfProject.public_macros_page_tree_getzCmfDocument.public_do_publishZpublic_do_publishz#CmfDocument.public_get_project_namezCmfDocument.public_listz.CmfDocument.public_update_text_inline_commentsZ"public_update_text_inline_commentsz%CmfDocument.public_add_inline_commentZpublic_add_inline_commentzCmfDocument.public_updateupdatez*CmfDocument.public_download_all_attachmentZpublic_download_all_attachmentz"CmfDocument.public_convert_uml2svgZconvert_uml2svgzCmfDocument.public_mark_viewedZpublic_mark_viewedzCmfComment.public_updateZpublic_updatezCmfComment.public_ux_check_permZux_check_permzCmfTask.public_listZCmfTaskzCmfTask.public_getzCmfFolder.public_getzCmfFolder.public_listzCmfList.public_getZCmfListzCmfList.public_listz%CmfGlobalSettings.public_get_settingsZCmfGlobalSettingsZpublic_get_settingszCmfGlobalSettings.public_getz.CmfGlobalSettings.public_enabled_plugin_nclistZenabled_plugin_nclistz.CmfGlobalSettings.public_html_clean_attributesZhtml_clean_attributeszCmfPerson.public_mark_viewedZpublic_none_classmethodzCmfMenuTree.public_get_treeZpublic_get_treezCmfAttachment.public_getzCmfAttachment.public_createzCmfAttachment.public_get_rfileZpublic_get_rfilez!CmfAttachment.public_get_versionsZpublic_get_versionszCmfTaskFilter.public_getZCmfTaskFilterzCmfBqlFilter.public_getZCmfBqlFilterzCmfPerson.public_listzCmfLicense.public_listZ
CmfLicenseZpublic_list_hack_emptyzCmfProject.public_listzCmfGlobalSettings.public_listz&CmfPersonVar.public_update_recents_objZpublic_update_recents_objz#CmfPerson.public_get_org_units_listZpublic_get_org_units_listz+CmfGlobalSettings.public_get_page_customizeZpublic_get_page_customizez CmfDocument.public_parent_ui_getZpublic_parent_ui_getzCmfFolder.public_parent_ui_getzCmfRFile.public_get_versionsz CmfAttachment.public_mark_viewedz)CmfFullSearch.public_docs_fulltext_searchZCmfFullSearchZdocs_fulltext_searchZ_classFZ_use_simple)split
ValueError
startswithZrpc)r   r   argskwargsZproc_cls_nameZproc_methodZ
res_methodZ
use_simpler   r   r   rpc_prepare_method   s.   
































































z PublicApiView.rpc_prepare_methodc                    s
   t   S )N)superpostr   	__class__r   r   r"      s    zPublicApiView.post)__name__
__module____qualname__Z__url__r   strr    ZcmfZviewsactionr"   __classcell__r   r   r#   r   r      s    Lr   )	tracebackr   Zuuidr   urllib.parser   r   ZhashlibZujsonZcmf.utilr   Zcmf.data_providers.baser   Zcmf.includeZ	cmf.viewsr	   Zmodules.api.views.indexr
   r   r   r   r   r   <module>   s   