B
    bEf                 @   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   y\t tj}|ds"| |S ttj|d }|dg }|di }|||}t	
|S  tk
r } zt| | dt|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   sb  |d }y x|d D ]
}t |d  }tjj|d}|sRtd|| q|jjr`i |_g |j|< |d rtd|| |j|= d|j_	|
  qxJ|d	 D ]>}||j| krqtd
||| |j| | d|j_	qW td|  td|j  |
  td|j  qW W n, tk
rV } zt| 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       sB    
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
   