
    Z)i                     X    S SK Jr  S SKJrJr  S SKJr   " S S\\R                  5      rg)    )	UserMixin)generate_password_hashcheck_password_hash)dbc                      \ rS rSrSr\R                  " \R                  SS9r\R                  " \R                  " S5      SSS9r
\R                  " \R                  " S5      SSS9r\R                  " \R                  " S	5      SS
9r\R                  " \R                  " S5      SSS9r\R                  " SSSSS9r\R                  " SSSSS9r\R                  " SSSSSS9rS rS rS rS rS r\S 5       rSrg) User   loginT)primary_keyP   F)uniquenullablex      )r      operator)r   defaultAgenteuserzall, delete-orphan)backreflazycascadeChat)back_populatesr   r   AgentUserSharezAgentUserShare.user_idshared_with_user)foreign_keysr   r   r   c                 "    SU R                    S3$ )Nz<User >)usernameselfs    PC:\Users\fernando.barreto\Documents\GitLab\ollama\chat-ollama\src\models\user.py__repr__User.__repr__   s    a((    c                     [        SU R                   35        [        U5      U l        [        SU R                   35        g )Nu   Definindo senha para usuário zHash gerado: )printr    r   password)r"   r)   s     r#   set_passwordUser.set_password   s5    .t}}o>?.x8dmm_-.r&   c                     [        SU R                   35        [        SU R                   35        [        U R                  U5      n[        SU 35        U$ )Nu    Verificando senha para usuário zHash armazenado: u   Resultado da verificação: )r(   r    r)   r   )r"   r)   results      r#   check_passwordUser.check_password   sO    0@A!$--12$T]]H=,VH56r&   c                 ,    [        U R                  5      $ )N)stridr!   s    r#   get_idUser.get_id!   s    477|r&   c                     SU l         g )N
superadmin)roler!   s    r#   make_superadminUser.make_superadmin$   s	     	r&   c                 ,   U R                   R                  US9R                  5       nU(       af  SUl        [        R
                  R                  5         SSKJn  U" SUR                  SUR                  SUR                   SUR                   S	3S S
9  gg)N)emailr6   r   )send_discord_audit_logu   Promoção de superadminu   Usuáriou!   Usuário promovido a superadmin: z ())actionuser_idobject_type	object_iddetails
ip_addressTF)query	filter_byfirstr7   r   sessioncommitsrc.discord.discord_webhookr<   r2   r    r;   )clsr;   r   r<   s       r#   promote_to_superadminUser.promote_to_superadmin'   s    yy"""/557$DIJJJ"1&'';DMM?"TZZLXYZ r&   )r)   r7   N)__name__
__module____qualname____firstlineno____tablename__r   ColumnIntegerr2   Stringr    r;   r)   r7   relationshipagenteschatsshared_agent_linksr$   r*   r.   r3   r8   classmethodrK   __static_attributes__ r&   r#   r   r      s    M	2::4	0Byy2teDHIIbiinTEBEyy3%8H99RYYr]UJGDoohTK_`GOOF6NbcE)9H`j|  DH  Rf  g)/
!  r&   r   N)	flask_loginr   werkzeug.securityr   r   src.extensionsr   Modelr   r[   r&   r#   <module>r`      s     ! I 29bhh 2r&   