U
    -d>                     @   sV   d dl Z d dl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j
je	ZdS )    N)commit_all_ds)*)CmfResultSplitter)ResponseMixinc                   @   s(   e Zd ZdZejjdd Zdd ZdS )SyncAccountsViewz/sync_accountsc           
   
   C   s   zt tj}|ds$| |W S ttj|d }|dg }|di }|||}t	|dd}|
  |j|j }}t|W S  tk
r }	 z"t|	 | dt|	 W Y S d}	~	X Y nX dS )uB   
        Прокси вызова методов CmfAuth
        methodargskwargsT)Zno_metai  N)ZjsonloadsZrequestdatagetold_syncgetattrmodelsCmfAuthr   splitmetaresultZjsonify	ExceptionZloggingZ	exception_errorstr)
selfr   r   Zmethod_argsZmethod_kwargsr   Zsplitterr   Zresult_dicte r   %./modules/auth/views/sync_accounts.pypost   s    



zSyncAccountsView.postc              
   C   s^  |d }z|d D ]}t |d  }tjj|d}|sNtd|| q|jjr\i |_g |j|< |d rtd|| |j|= d|j_	|
  q|d	 D ]>}||j| krqtd
||| |j| | d|j_	qtd|  td|j  |
  td|j  qW n2 tk
rR } zt| W Y dS d}~X Y nX t  dS )u[   
        Старая синхронизация для совместимости
        org_nameZpersonslogin)r   uI   SYNC_ACCOUNTS Не найден акк {} (о запросу от crm {})Zcmf_deleteduB   SYNC_ACCOUNTS Пользователь {} удален из crm {}TZrg_member_ofuT   SYNC_ACCOUNTS Добавляем пользователю {} права {} в crm {}zperson_dict=zuser.groups=zuser.scope=zAccounts sync failNzAccounts sync successfully)r   lowerr   r   r   printformatgroupsZis_nullZ
is_changedZsaveappendgdebugZscoper   r   )r   r   r   Zperson_dictr   userZ
group_namer   r   r   r   r   $   sD    

zSyncAccountsView.old_syncN)	__name__
__module____qualname__Z__url__cmfviewsactionr   r   r   r   r   r   r      s   
r   )ZshlexZ	cmf.viewsr)   Zcmf.data_providers.baser   Zcmf.includeZmodules.api.views.indexr   Zmodules.auth.views.responser   r*   ZBaseViewr   r   r   r   r   <module>   s   