U
    'iK                     @   sR   d dl Z 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edd Z	dS )
InviteViewz/invitec              
   C   sF  t jd }tjj|ddddgd}|s8| ddtd	S | rd|jd
d t	  | ddtd zt
  |jd
d W 5 Q R X t|}|jrt |jkrdjtjt|jjtjjt|ddd}tt|}ntt|}| ||W S  tk
r@ } z(tt| | d|td	 W Y S d}~X Y nX dS )ua    Сюда переходят люди по ссылке из письма-приглашения hscopeZreset_password_expirespassword_expires_must_changelogin)reset_password_hashZfieldsi  znot authz/auth/signin?invite=failT)resetz/auth/signin?invite=expiredzF/auth/profile?action=change_password&login={login}&next_url={next_url} )safe)r	   Znext_urlN)ZrequestvaluesZmodelsZCmfAuthget_errorZredirectZreset_pass_is_expiredZreset_pass_set_datar   ZcmfutilZdisable_aclr   _choose_endpointr   timeformaturllibparsequotestrr	   valueZmake_responseZ_ok	ExceptionZloggingZwarning)selfr
   authZendpointZchange_password_urlZresponsee r   ./modules/auth/views/invite.pyr      s4    



zInviteView.getc                 C   s   | j js| j jsdS d| j jkrd| j jkrtj| j jdd rZtjrZdtj d S | j jdd tj dkrzdS | j jdd tjkrd| j jdd  d S d| j jdd  tj d S dS )	uI  
        Выбираем куда отправить приглашённого:
        - Список CRM, если их несколько
        - Адрес CRM, если она единственная в scope
        - Описание профиля (нет scope, полуневозможный случай)
        z/auth/profile :r   zhttps:///z'corp.noytech.comrumowsl10.ee.win.int.knz https://rumowsl10.ee.win.int.kn/)r   Zis_nullr   ZconfigZAUTH_SESSION_COOKIE_DOMAIN
startswithsplitZIS_BOX_VERSION)r   r   r   r   r   -   s      zInviteView._choose_endpointN)
__name__
__module____qualname__Z__url__cmfviewsactionr   staticmethodr   r   r   r   r   r   
   s
   
r   )r   urllib.parser   Z	cmf.viewsr'   Zcmf.data_providers.baser   Zcmf.includeZmodules.auth.views.responser   r(   ZBaseViewr   r   r   r   r   <module>   s   