
    i                        d dl mZmZmZmZ d dlmZmZ d dlm	Z	m
Z
mZmZmZmZmZmZ  e       Zej%                  d      deeef   fd       Zej/                  d      dedeeef   fd	       Zej/                  d
      de	deeef   fd       Zej/                  d      de
deeef   fd       Zej%                  d       ee      fdedeeef   fd       Zej9                  d       ee      fdededeeef   fd       Zej9                  d       ee      fdededeeef   fd       Zej/                  d       ee      fdedeeef   fd       Zej%                  d       ee      fdedeeef   fd       Z ej/                  d       ee      fdededeeef   fd       Z!ej9                  d       ee      fdedededeeef   fd       Z"ejG                  d       ee      fdededeeef   fd       Z$y)    )	APIRouterDependsHTTPExceptionstatus)require_sessionrequire_super_admin)BootstrapSuperAdminPayloadLoginPayloadRegisterTenantPayloadSessionIdentityTenantStaffUserCreatePayloadTenantStaffUserUpdatePayloadUpdatePasswordPayloadget_tenant_storez/statusreturnc                  2    t               j                         S )N)r   r        5/var/www/html/apps/backend-hub/app/api/routes/auth.pyauth_statusr      s    $$&&r   z	/registerpayloadc                 8    t        t        j                  d      )NzOLa registrazione pubblica e disabilitata. Usa il pannello admin del super user.status_codedetail)r   r   HTTP_403_FORBIDDEN)r   s    r   register_tenantr      s    
--` r   z/bootstrap-super-adminc                     	 t               j                  |       }t               j                  |      S # t        $ r*}t        t        j
                  t        |            |d }~ww xY wNr   )r   bootstrap_super_admin
ValueErrorr   r   HTTP_400_BAD_REQUESTstrbuild_auth_responser   sessionexcs      r   r    r        s`    _"$::7C 11'::  _(C(CCPSHU[^^_   4 	A'%A""A'z/loginc                     	 t               j                  |       }t               j                  |      S # t        $ r*}t        t        j
                  t        |            |d }~ww xY wr   )r   loginr!   r   r   r"   r#   r$   r%   s      r   r*   r*   *   s`    _"$**73 11'::  _(C(CCPSHU[^^_r(   z/mer&   c                 B    t               j                  |       }d|d<   |S )NTauthenticated)r   r$   )r&   responses     r   auth_mer.   4   s$    !55g>H $H_Or   z/me/passwordc                     	 t               j                  ||        ddiS # t        $ r*}t        t        j
                  t        |            |d }~ww xY wNr   successT)r   update_current_user_passwordr!   r   r   r"   r#   r%   s      r   r2   r2   ;   sW    
_77I t  _(C(CCPSHU[^^_     	A%AAz/super-admin/passwordc                     	 t               j                  ||        ddiS # t        $ r*}t        t        j
                  t        |            |d }~ww xY wr0   )r   update_super_admin_passwordr!   r   r   r"   r#   r%   s      r   r5   r5   H   sW    
_66wH t  _(C(CCPSHU[^^_r3   z/logoutc                 P    t               j                  | j                         ddiS )Nr1   T)r   logouttoken)r&   s    r   r7   r7   U   s"    gmm,tr   z/tenant-usersc                     	 t               j                  |       }d|iS # t        $ r*}t        t        j
                  t        |            |d }~ww xY w)Nr   users)r   list_tenant_usersr!   r   r   r   r#   )r&   r:   r'   s      r   r;   r;   [   sV    ] "44W= U  ](A(A#c(SY\\]s    	A%AAc                     	 t               j                  ||       }d|iS # t        $ r*}t        t        j
                  t        |            |d }~ww xY wNr   user)r   create_tenant_staff_userr!   r   r   r"   r#   )r   r&   r>   r'   s       r   create_tenant_userr@   e   sX    
_!::7GL D>  _(C(CCPSHU[^^_r3   z/tenant-users/{user_id}user_idc                    	 t               j                  || |      }d|iS # t        $ r*}t        t        j
                  t        |            |d }~wt        $ r*}t        t        j                  t        |            |d }~ww xY wr=   )	r   update_tenant_staff_userKeyErrorr   r   HTTP_404_NOT_FOUNDr#   r!   r"   )rA   r   r&   r>   r'   s        r   update_tenant_userrF   r   s~    _!::7GWU D>  ](A(A#c(SY\\ _(C(CCPSHU[^^_s    ! 	B%AB%B  Bc                    	 t               j                  ||        ddiS # t        $ r*}t        t        j
                  t        |            |d }~wt        $ r*}t        t        j                  t        |            |d }~ww xY wr0   )	r   delete_tenant_staff_userrD   r   r   rE   r#   r!   r"   )rA   r&   r'   s      r   delete_tenant_userrI      s{    _33GWE t  ](A(A#c(SY\\ _(C(CCPSHU[^^_s      	B%AB%A??BN)%fastapir   r   r   r   app.api.depsr   r   app.services.tenant_storer	   r
   r   r   r   r   r   r   routergetdictr#   objectr   postr   r    r*   r.   putr2   r5   r7   r;   r@   rF   deleterI   r   r   r   <module>rT      s&   = = =	 	 	 
 I'T#v+& ' ' [2 tCK7H   %&;#= ;$sF{BS ; '; X;< ;Df$5 ; ; E'.'? _ DfDU   N  '7	"		 
#v+	 	 #$  '':;	"		 
#v+	 %	 Y&-o&> O 4VCT  
 O181I  dSVX^S^N_   _  '7	)		 
#v+	 	 %&  '7)  
#v+	 ' ()@G@X  o ]abegmbm]n  *r   