a
    ݽh                     @   s   d dl mZmZmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZmZmZ d dlZd dlZe ZeeZeddgd	Zed
dZe
dgddZejejdd eeZejdededddZejdedededfeeedddZ dS )    )	APIRouterFormRequest)Jinja2Templates)HTMLResponseRedirectResponse)CryptContext)
open_mysqlget_mysql_credsget_pingconf_varsNz/signinZsignin)prefixtags	templates)	directorybcryptauto)schemes
deprecatedz)%(asctime)s - %(levelname)s - %(message)s)levelformat/)response_classrequestc                    s   t d| di dS )Nsignin.html r   usernameerrors)r   TemplateResponser    r    )/wd/v2025.freedom4um.com/routes/signin.py
get_signin   s    
r"   .)r   r   passwordc              
      s  i }t d|  ztt}|jdd}|d|f | }|szd|d< tjd| ||dd	d
W  d    W S |d }zt	
||}W n ty   d}Y n0 |s|d|f | d }	|	|krd}|s
d|d< tjd| ||dd	d
W  d    W S t	|sNt	|}
|d|
|d f |  t d| d tddd}|jdt|d ddddd ||d |d d| jd< t d| d|d   |W  d    W S 1 s0    Y  W n tjjy2 } z@t d|  t||d < tjd| ||dd	d
W  Y d }~S d }~0  ty } z<t d!|  d"|d< tjd| ||dd	d
W  Y d }~S d }~0 0 d S )#NzSignin attempt for username: T)
dictionaryz
                SELECT ID.IDNum, Handles.HandleID, Handles.Password
                FROM ID
                JOIN Handles ON ID.IDNum = Handles.HandleID
                WHERE ID.Name = %s AND CHAR_LENGTH(Handles.Password) > 16
            zInvalid username or passwordloginr   r      )status_codeZPasswordFzSELECT PASSWORD(%s) AS hashedZhashedz0UPDATE Handles SET Password=%s WHERE HandleID=%sHandleIDzPassword for user z upgraded to bcryptz/latestcommentsi.  )urlr'   Zsession_tokenZIDNumi:	 lax)keyvaluemax_agehttponlysecuresamesite)r   idr(   userzUser z& logged in successfully with HandleID=zDatabase error: databasezUnexpected signin error: zInternal error)loggerdebugr	   mysql_credscursorexecutefetchoner   r   pwd_contextverify
ValueErroridentifyhashcommitr   
set_cookiestrsessionmysql	connectorErrorerror	Exception)r   r   r#   r   connr7   rowZdb_pwZlogin_successZ	hashed_pwZnew_hashresponseer    r    r!   post_signin   s    




*

rL   )!fastapir   r   r   fastapi.templatingr   starlette.responsesr   r   passlib.contextr   utils.pingdatar	   r
   r   loggingmysql.connectorrC   PingConfr6   routerr   r:   basicConfigDEBUG	getLogger__name__r4   getr"   postrA   rL   r    r    r    r!   <module>   s"   

