
    4Yj                         d Z ddlZddlZddlmZ ddlmZ dZdZdde	de
dz  fd	Zd
efdZd
ede	de	fdZd
edede	fdZd
edefdZd
ede	de	defdZy)u4   Login do painel (multi-usuário, guardado no banco).    N)Session   )Useradminpasswordsaltc                     |xs t        j                  d      }t        j                  d| j	                         |d      }|j                         |j                         fS )N   sha256i@ )secretstoken_byteshashlibpbkdf2_hmacencodehex)r   r   digests      >D:\Nextcloud\SISTEMAS WINDOWS\frota-trucks-cliente\app\auth.py_hash_passwordr      sK    *7&&r*D  8??+<dGLF88:vzz|##    dbc                     | j                  t              j                         dkD  ry t        t              \  }}| j                  t        t        ||             | j                          y )Nr   usernamepassword_hashr   )queryr   countr   DEFAULT_PASSWORDaddDEFAULT_USERNAMEcommit)r   salt_hexhash_hexs      r   seed_default_userr#      sM    	xx~!'(89HhFF4)QRIIKr   r   c                 z    t        |      \  }}| j                  t        |||             | j                          y )Nr   )r   r   r   r    )r   r   r   r!   r"   s        r   create_userr%      s/    '1HhFF4IJIIKr   user_idnew_passwordc                     | j                  t        |      }t        |      \  }}||_        ||_        | j                          y N)getr   r   r   r   r    )r   r&   r'   userr!   r"   s         r   change_passwordr,   !   s9    66$ D'5HhDI!DIIKr   c                 x    | j                  t        |      }|"| j                  |       | j                          y y r)   )r*   r   deleter    )r   r&   r+   s      r   delete_userr/   )   s1    66$ D
		$
		 r   returnc                    | j                  t              j                  |      j                         }|yt	        |t
        j                  |j                              \  }}t        j                  ||j                        S )N)r   F)r   r   	filter_byfirstr   bytesfromhexr   r   compare_digestr   )r   r   r   r+   _r"   s         r   verify_userr8   0   sd    88D>##X#6<<>D| 5==+CDKAx!!(D,>,>??r   r)   )__doc__r   r   sqlalchemy.ormr   modelsr   r   r   strr4   r   r#   r%   intr,   r/   boolr8    r   r   <module>r@      s    :   "   $S $ $' G s c  # S G c @G @s @c @d @r   