a
    L9fK                     @   s<   d dl Z d dlmZ d dlZd dlmZ G dd deZdS )    N)Dict)HydraHeadAppc                   @   sR   e Zd ZdZdddZddddZedd	d
ZddddZe	dddZ
dS )LoginAppa  
    This is an example login application to be used to secure access within a HydraApp streamlit application.
    This application implementation uses the allow_access session variable and uses the do_redirect method if the login check is successful.
    
     c                 K   s   | j | || _d S )N)__dict__updatetitle)selfr   kwargs r   F/Users/putuwistika/Documents/TRILAK/hydralit-example/apps/login_app.py__init__   s    zLoginApp.__init__N)returnc                 C   sr   t jddd t g d\}}}|jddd |jddd | |}d	}|j|dd |d
 rn| || dS )z*
        Application entry point.
        z:<h1 style='text-align: center;'>Secure Hydralit Login</h1>T)unsafe_allow_html)   r   r   z./resources/lock.pngd   )widthz./resources/hydra.pngz
        <style>
        div[class="row-widget stButton"] > button {
            width: 100%;
        }
        </style>
        <br><br>
        	submittedN)stmarkdowncolumnsimage_create_login_form	_do_login)r	   c1c2c3	form_dataZ
pretty_btnr   r   r   run   s    
zLoginApp.runc                 C   s   |j dd}i }|d|d< |jddd|d< |dd	|d
< |d|d< |d |jdddrz| dd |   |jdddr| dd |   |S )N
login_form)keyZUsernameusernameZPasswordpassword)typezExample Access Level)   r   access_levelLoginr   zsample login -> joe & joezGuest LoginZguestbtnr$   guestzSign UpZ	signupbtn)form
text_input	selectboxform_submit_buttonwritebutton
set_accessdo_redirect)r	   parent_containerr   Z
form_stater   r   r   r   .   s    
zLoginApp._create_login_formc                 C   s   |  |}|dkrn|d td6 td | |d |d  |   W d    q1 sb0    Y  nd| j_	d | j_
|d d S )Nr   u   ✔️ Login successu'   🤓 now redirecting to application....r$   r%   r!   uS   ❌ Login unsuccessful, 😕 please check your username and password and try again.)_check_loginsuccessr   spinnertimesleepr/   r0   session_stateallow_accesscurrent_usererror)r	   r   Zmsg_containerr%   r   r   r   r   I   s    


(zLoginApp._do_loginc                 C   s$   |d dkr|d dkrdS dS d S )Nr!   Zjoer"   r$   r   r   )r	   
login_datar   r   r   r2   _   s    zLoginApp._check_login)r   )__name__
__module____qualname____doc__r   r   r   r   r   intr2   r   r   r   r   r      s   
r   )r5   typingr   	streamlitr   hydralitr   r   r   r   r   r   <module>   s   