
    ]i                         d dl mZmZmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ  ee      fdedede
fd	Z ee      fd
e
de
fdZ ee      fded
e
de
fdZy)    )DependsHTTPExceptionRequeststatus)AsyncSession)get_db)User)auth_servicerequestdbreturnc                   K   | j                   j                  d      }|s2| j                  j                  dd      }|j                  d      r|dd  }|st	        t
        j                  d      	 t        j                  ||       d {   }|S 7 # t        $ r)}t	        t
        j                  t        |            d }~ww xY ww)Naccess_tokenAuthorization zBearer    zToken tidak ditemukanstatus_codedetail)cookiesgetheaders
startswithr   r   HTTP_401_UNAUTHORIZEDr
   get_current_user
ValueErrorstr)r   r   tokenauth_headeruseres         ;/var/www/html/spbu.com/backend/app/dependencies/__init__.pyr   r   	   s      OO/Eoo))/2>!!),OE44*
 	

!222u== > 
44q6
 	

s<   A-C0B 	B
B CB 	C$B??CCcurrent_userc                 \   K   | j                   st        t        j                  d      | S w)Nz/Hanya Super Admin yang dapat melakukan aksi inir   )is_superadminr   r   HTTP_403_FORBIDDEN)r#   s    r"   require_superadminr'   !   s2      %%11D
 	
 s   *,spbu_idc                    K   |j                   r|S |j                  xs g D ch c]  }|j                   }}| |vrt        t        j
                  d      |S c c}w w)zAVerify current_user is assigned to spbu_id (superadmin bypasses).zTidak punya akses ke SPBU inir   )r%   assignmentsr(   r   r   r&   )r(   r#   aassigned_idss       r"   get_spbu_accessr-   ,   sn     
 !!(4(@(@(FB(FH(F!AII(FLHl"112
 	
  Is   !AA(AN)fastapir   r   r   r   sqlalchemy.ext.asyncior   app.core.databaser   app.models.userr	   app.servicesr
   r   r'   intr-        r"   <module>r6      s    ; ; / $   %
 v


 

2 !!12	 !!12 
r5   