U
    `e                     @   sJ   d dl Z d dlZd dlmZ d dlT d dlmZ G dd dejj	eZ
dS )    N)commit_all_ds)*)ResponseMixinc                   @   s(   e Zd ZdZejjdd Zdd ZdS )SyncAccountsViewz/sync_accountsc              
   C   s   z`t tj}|ds$| |W S ttj|d }|dg }|di }|||}t	
|W S  tk
r } z"t| | dt| W Y S d}~X Y nX dS )uB   
        Прокси вызова методов CmfAuth
        methodargskwargsi  N)ZjsonloadsZrequestdatagetold_syncgetattrmodelsCmfAuthZcmfutilZ
dumps_json	ExceptionZloggingZ	exception_errorstr)selfr
   r   Zmethod_argsZmethod_kwargsresult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   uM   SYNC_ACCOUNTS Не найден акк {} (о запросу от eva-app {})Zcmf_deleteduF   SYNC_ACCOUNTS Пользователь {} удален из eva-app {}TZrg_member_ofuX   SYNC_ACCOUNTS Добавляем пользователю {} права {} в eva-app {}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.auth.views.responser   r'   ZBaseViewr   r   r   r   r   <module>   s
   