Ë
    ¬fsj™%  ã                   óÄ  — d dl mZmZmZ d dlmZmZ d dlmZm	Z	 d dl
mZmZ d dlmZ d dlmZ d dlmZ d dl mZ  e e	d	«      ¬
«      Zej*                  ej,                  d<    edg¬«      Zdededefd„Z ee«      fdedefd„Zdefd„Zej;                  dedd¬«       ee«      fdefd„«       Zdedefd„Zej;                  dedd¬«       ee«      fded efd!„«       Z ej;                  d"ed#d$¬«       ee«      fdefd%„«       Z!ej;                  d&ed'd(¬«       ee«      fdefd)„«       Z"ej;                  d*ed+d,¬«       ee«      fdefd-„«       Z#ej;                  d.ed/d0¬«       ee«      fdefd1„«       Z$ej;                  d2ed3d4¬«       ee«      fdefd5„«       Z%ej;                  d6ed7d8¬«       ee«      fdefd9„«       Z&ej;                  d:ed;d<¬«       ee«      fdefd=„«       Z'ej;                  d>ed?d@¬«       ee«      fdefdA„«       Z(ej;                  dBedCdD¬«       ee«      fdefdE„«       Z)ej;                  dFedGdH¬«       ee«      fdedIefdJ„«       Z*yK)Lé    )Ú	APIRouterÚRequestÚDepends)ÚHTMLResponseÚRedirectResponse)ÚEnvironmentÚFileSystemLoader)Úget_current_userÚget_user_permissions©Úget_db)Úsettings)ÚSession)ÚHTTPExceptionz&/var/www/html/metafoliadorv2/templates)ÚloaderÚtimezoneÚviews)ÚtagsÚnameÚcontextÚreturnc                 ób   — t         j                  | «      }t         |j                  di |¤Ž«      S )N© )ÚenvÚget_templater   Úrender)r   r   Útemplates      ú4/var/www/html/metafoliadorv2/app/api/routes/views.pyÚrender_templater      s+   € Ü×Ñ Ó%€HÜ˜˜Ÿ™Ñ2¨'Ñ2Ó3Ð3ó    ÚrequestÚ	perm_codec                 ó>   — t        |«      }||vrt        dd¬«      ‚|S )Né“  úAcceso denegado©Ústatus_codeÚdetail)r   r   )r!   r"   ÚuserÚpermss       r   Úcheck_page_permissionr+      s'   € Ü  Ó&€EØ˜ÑÜ¨Ð4EÔFÐFØ€Kr    c                 ó  — t        «       }d}d }	 ddlm}  |«       }t        | |«      }	 ddlm} |sddlm}  |«       }|j                  |«      j                  |j                  | j                  k(  «      j                  «       }|r|j                  }|r|j                  «        | j                  | j                  | j                  |t        |«      dœS #  Y Œ®xY w#  Y ŒLxY w#  Y ŒAxY w# |r|j                  «        w #  Y w xY ww xY w)NFr   )Úget_tenant_session)ÚRole)r   ÚemailÚroleÚrole_all_permissionsr*   )ÚsetÚapp.models.databaser-   r   Úapp.models.role_permissionr.   ÚqueryÚfilterr   r0   ÚfirstÚall_permissionsÚcloser/   Úlist)r)   r*   r1   Údbr-   r.   r0   s          r   Úget_user_contextr<      sü   € Ü‹E€EØ ÐØ	€BðÝ:ÙÓ!ˆÜ$ T¨2Ó.ˆðÝ3ÙÝ>Ù#Ó%ˆBØ�x‰x˜‹~×$Ñ$ T§Y¡Y°$·)±)Ñ%;Ó<×BÑBÓDˆÙØ#'×#7Ñ#7Ð ñ Ø—‘”à—I‘I¨¯
©
¸D¿I¹IÐ_sô  Cð  DIó  Jñ  Kð  Køð ‰Dûð ‰Dûð ‘Dûñ Ø—‘•øØ‘Dúð úsG   �C ªA(C ÂC! ÃCÃCÃC( Ã!C%Ã(DÃ+C<Ã;DÃ<D Ã>Dz/app/sitios/arbolu   Vista: cuadro de clasificaciÃ³nua   PÃ¡gina HTML del navegador de cuadro de clasificaciÃ³n del sitio. Requiere permiso carpetas.view.)Úresponse_classÚsummaryÚdescriptionc              ƒ   óT   K  — t        | d|«       t        d| t        |«      dœ«      S ­w)Nzcarpetas.viewz	tree.html©r!   r)   ©r+   r   r<   rA   s     r   Ú	tree_pagerC   5   s+   è ø€ ä˜' ?°DÔ9Ü˜;°GÔEUÐVZÓE[Ñ(\Ó]Ð]ùó   ‚&(Úhostc                 óº  — ddl m} ddlm} | j	                  d«      d   } |«       }	 |j                  |«      j                  |j                  dz   t        j                  z   |k(  |j                  |k(  z  «      j                  «       }|r)|j                  |j                  dœ|j                  «        S d d dœ|j                  «        S # |j                  «        w xY w)Nr   )ÚMainSessionLocal)ÚCustomerú:ú.)r   Úbackground_image)Úapp.models.main_databaserG   Úapp.models.main_customerrH   Úsplitr5   r6   Ú	subdomainr   Úmain_domainÚcustom_domainr7   r   rK   r9   )rE   rG   rH   rP   r;   Úcustomers         r   Úget_customer_inforS   :   s¿   € Ý9Ý1à—*‘*˜S“/ !Ñ$€KÙ	Ó	€BðØ—8‘8˜HÓ%×,Ñ,Ø×Ñ #Ñ%¬×(<Ñ(<Ñ<ÀÑKØ×%Ñ%¨Ñ4ñ6ó
÷ ‰%‹'ð 	ñ à Ÿ™Ø$,×$=Ñ$=ñð 	�‰�
ð °$Ñ7à
�‰�
øˆ�‰�
ús   ©A9C Â3C ÃCz/loginzVista: loginu[   PÃ¡gina de inicio de sesiÃ³n. Si el usuario ya tiene sesiÃ³n activa, redirige al dashboard.r;   c              ƒ   ó`  K  — ddl m} | j                  j                  dd«      j	                  d«      d   }t        |«      }| j                  j                  d«      }|rÓddlm}  ||«      }|rmddl	m
} |j                  |«      j                  |j                  |j                  d	«      k(  |j                  d
k(  «      j                  «       }	|	rt!        dd¬«      S t#        d| |d   |d   dœ«      }
t%        t'        |
d«      r|
j(                  n
t+        |
«      ¬«      }
|
j-                  d«       |
S | j                  j                  d«      }|rÉddlm}  ||«      }|r¹ddl	m
} |j                  dd«      }|j                  |«      j                  |j2                  |k(  |j                  d
k(  «      j                  «       }|rVddlm}  ||j                  |j2                  |j8                  dœ«      }t!        dd¬«      }
|
j;                  d|d
d
dd¬«       |
S t#        d| |d   |d   dœ«      S ­w)Nr   r   rE   Ú rI   Úaccess_token)Údecode_access_token)ÚUserÚuser_idTú/appi.  )Úurlr'   z
login.htmlr   rK   )r!   Úcustomer_namerK   Úbody)ÚcontentÚmain_access_token)Úmain_decode_access_tokenr/   )Úcreate_access_token)rY   r/   r0   Úlaxi€p  )ÚkeyÚvalueÚhttponlyÚsecureÚsamesiteÚmax_age)r3   r   ÚheadersÚgetrN   rS   ÚcookiesÚapp.api.routes.authrW   Úapp.models.userrX   r5   r6   ÚidÚactiver7   r   r   r   Úhasattrr]   ÚstrÚdelete_cookieÚapp.services.main_auth_servicer`   r/   Úapp.services.auth_servicera   r0   Ú
set_cookie)r!   r;   r   rE   Úcustomer_infoÚtokenrW   ÚpayloadrX   r)   ÚrespÚ_main_tokenr`   Úmain_payloadÚ
main_emailÚtenant_userra   Útenant_tokens                     r   Ú
login_pager   O   s%  è ø€ å*à�?‰?×Ñ˜v rÓ*×0Ñ0°Ó5°aÑ8€DÜ% dÓ+€Mà�O‰O×Ñ Ó/€EÙÝ;Ù% eÓ,ˆÙÝ,Ø—8‘8˜D“>×(Ñ(¨¯©°G·K±KÀ	Ó4JÑ)JÈDÏKÉKÐ[_ÑL_Ó`×fÑfÓhˆDÙÜ'¨FÀÔDÐDÜ˜|¸ÐS`ÐagÑShð  Lð  M_ñ  `ñ  .aó  bˆÜ´¸¸vÔ1F D§I¢IÌCÐPTËIÔVˆØ×Ñ˜>Ô*Øˆà—/‘/×%Ñ%Ð&9Ó:€KÙÝKÙ/°Ó<ˆÙÝ,Ø%×)Ñ)¨'°2Ó6ˆJØŸ(™( 4›.×/Ñ/°·
±
¸jÑ0HÈ$Ï+É+ÐY]ÑJ]Ó^×dÑdÓfˆKÙÝIÙ2Ø*Ÿ~™~Ø(×.Ñ.Ø'×,Ñ,ñ4ó  �ô
 (¨FÀÔD�Ø—‘Ø&Ø&Ø!ØØ"Ø!ð  ô ð �ä˜<°WÈ}Ð]cÑOdð  {Hð  I[ñ  {\ñ  *]ó  ^ð  ^ùs   ‚H,H.rZ   zVista: dashboarduM   Panel principal con estadÃ­sticas, grÃ¡ficos interactivos y accesos rÃ¡pidos.c              ƒ   ó:   K  — t        d| t        |«      dœ«      S ­w©Nzdashboard.htmlrA   ©r   r<   rA   s     r   Ú	dashboardrƒ   �   ó&   è ø€ äÐ+ØÜ  Ó&ñ.ó ð ùó   ‚z	/app/jobszVista: trabajos en colauP   PÃ¡gina de monitoreo de trabajos de sincronizaciÃ³n. Requiere permiso jobs.view.c              ƒ   óT   K  — t        | d|«       t        d| t        |«      dœ«      S ­w)Nz	jobs.viewz	jobs.htmlrA   rB   rA   s     r   Ú	jobs_pager‡   ˆ   s+   è ø€ ä˜' ;°Ô5Ü˜;°GÔEUÐVZÓE[Ñ(\Ó]Ð]ùrD   z/app/listener-logszVista: logs del listeneruS   PÃ¡gina de visor de logs del webhook listener. Requiere permiso listener-logs.view.c              ƒ   óT   K  — t        | d|«       t        d| t        |«      dœ«      S ­w)Nzlistener-logs.viewzlistener_logs.htmlrA   rB   rA   s     r   Úlistener_logs_pager‰   �   s-   è ø€ ä˜'Ð#7¸Ô>ÜÐ/¸WÔN^Ð_cÓNdÑ1eÓfÐfùrD   z/app/reporteszVista: reportesuV   PÃ¡gina de gestiÃ³n de reportes. Requiere permiso reportes.generate o reportes.toggle.c              ƒ   óz   K  — t        |«      }d|vrd|vrt        dd¬«      ‚t        d| t        |«      dœ«      S ­w)Nzreportes.generatezreportes.toggler$   r%   r&   zreportes.htmlrA   )r   r   r   r<   )r!   r)   r*   s      r   Úreportes_pager‹   ’   sG   è ø€ ä  Ó&€EØ %Ñ'Ð,=ÀUÑ,JÜ¨Ð4EÔFÐFÜ˜?¸ÔIYÐZ^ÓI_Ñ,`ÓaÐaùs   ‚9;z
/app/roleszVista: roles y permisosu=   PÃ¡gina de administraciÃ³n RBAC. Requiere permiso roles.view.c              ƒ   óT   K  — t        | d|«       t        d| t        |«      dœ«      S ­w)Nz
roles.viewz
roles.htmlrA   rB   rA   s     r   Ú
roles_pager�   ™   s+   è ø€ ä˜' <°Ô6Ü˜<°WÔFVÐW[ÓF\Ñ)]Ó^Ð^ùrD   z/app/usuarioszVista: usuariosuL   PÃ¡gina de gestiÃ³n de usuarios del sistema. Requiere permiso usuarios.view.c              ƒ   óT   K  — t        | d|«       t        d| t        |«      dœ«      S ­w)Nzusuarios.viewzusuarios.htmlrA   rB   rA   s     r   Úusuarios_pager�   ž   s+   è ø€ ä˜' ?°DÔ9Ü˜?¸ÔIYÐZ^ÓI_Ñ,`ÓaÐaùrD   z/app/conexioneszVista: conexiones Alfrescou^   PÃ¡gina de gestiÃ³n de conexiones API a instancias Alfresco. Requiere permiso conexiones.view.c              ƒ   óT   K  — t        | d|«       t        d| t        |«      dœ«      S ­w)Nzconexiones.viewzconnections.htmlrA   rB   rA   s     r   Úconnections_pager‘   ¤   s3   è ø€ ä˜'Ð#4°dÔ;ÜÐ-ØÜ  Ó&ñ0ó ð ùrD   z/app/sitioszVista: sitiosuE   PÃ¡gina de gestiÃ³n de sitios Alfresco. Requiere permiso sitios.view.c              ƒ   óT   K  — t        | d|«       t        d| t        |«      dœ«      S ­w)Nzsitios.viewz
sites.htmlrA   rB   rA   s     r   Ú
sites_pager“   ­   s1   è ø€ ä˜' =°$Ô7Ü˜<ØÜ  Ó&ñ*ó ð ùrD   z/app/tipologiasu%   Vista: tipologÃ­as - modelos de datosue   PÃ¡gina de gestiÃ³n de modelos de datos personalizados de Alfresco. Requiere permiso tipologias.view.c              ƒ   óT   K  — t        | d|«       t        d| t        |«      dœ«      S ­w)Nztipologias.viewztipologias.htmlrA   rB   rA   s     r   Útipologias_pager•   ¶   s3   è ø€ ä˜'Ð#4°dÔ;ÜÐ,ØÜ  Ó&ñ/ó ð ùrD   z/app/{path:path}zVista: SPA fallbackz@Redirige cualquier ruta desconocida de /app/ al dashboard (SPA).Úpathc              ƒ   ó:   K  — t        d| t        |«      dœ«      S ­wr�   r‚   )r!   r–   r)   s      r   Údashboard_spar˜   ¿   r„   r…   N)+Úfastapir   r   r   Úfastapi.responsesr   r   Újinja2r   r	   rl   r
   r   r3   r   Ú
app.configr   Úsqlalchemy.ormr   r   r   r   ÚglobalsÚrouterrq   Údictr   r+   r<   rj   rC   rS   r   rƒ   r‡   r‰   r‹   r�   r�   r‘   r“   r•   r˜   r   r    r   ú<module>r¡      sÆ  ðß /Ñ /ß <ß 0ç FÝ &Ý Ý "Ý !áÑ)Ð*RÓSÔT€Ø"×+Ñ+€‡�ˆJÑ Ù	˜˜	Ô	"€ð4˜#ð 4¨ð 4°ó 4ñ BIÐIYÓAZñ  7ð °só ðK˜dó Kð2 ‡�Ð°ÐFgð  vY€ó  ZÙ+2Ð3CÓ+Dñ ^˜Wò ^ó Zð^ð˜Cð  Dó ð* ‡�ˆH \¸>ð  Xu€ó  vÙ5<¸V³_ñ .^˜gð .^¨7ò .^ó vð.^ðb ‡�ˆF <Ð9Kð  Zi€ó  jÙ+2Ð3CÓ+Dñ ˜Wò ó jðð ‡�ˆK¨Ð>Wð  fx€ó  yÙ+2Ð3CÓ+Dñ ^˜Wò ^ó yð^ð ‡�Ð °ÐGað  pE€ó  FÙ4;Ð<LÓ4Mñ g gò gó Fðgð ‡�ˆO¨LÐBSð  bz€ó  {Ù/6Ð7GÓ/Hñ b ò bó {ðbð ‡�ˆL¨Ð?Xð  gf€ó  gÙ,3Ð4DÓ,Eñ _˜gò _ó gð_ð ‡�ˆO¨LÐBSð  bp€ó  qÙ/6Ð7GÓ/Hñ b ò bó qðbð
 ‡�Ð¨lÐD`ð  oO€ó  PÙ29Ð:JÓ2Kñ  Gò ó Pðð ‡�ˆM¨,Àð  ^e€ó  fÙ,3Ð4DÓ,Eñ ˜gò ó fðð ‡�Ð¨lÐDkð  za€ó  bÙ18Ð9IÓ1Jñ  7ò ó bðð ‡�Ð¨|ÐEZð  ik€ó  lÙ:AÐBRÓ:Sñ  ð °ò ó lñr    