o
    DfK                     @   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                   @   sJ   e Zd ZdZdddZdddZdefd	d
ZdddZde	f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   </Users/putuwistika/Documents/BELAJAR/HYDRA/apps/login_app.py__init__   s   
zLoginApp.__init__returnNc                 C   sv   t jddd t g d\}}}|jddd |jddd | |}d	}|j|dd |d
 r9| || dS 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r=| dd |   |jdddrN| 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r9|d td td | |d |d  |   W d    d S 1 s2w   Y  d S 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 )Nr!   Zjoer"   r$   r   r   )r	   
login_datar   r   r   r2   _   s   zLoginApp._check_login)r   )r   N)__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
    