
    _ic                     L    d dl mZ d dlmZmZmZmZ d dlmZm	Z	 d Z
d Zd ZdS )    wraps)flashredirecturl_forabort)current_userlogout_userc                 B     t           t                    s g  fd}|S )uM   
    Décorateur RBAC + Vérification Compte Actif.
    Compatible UUID.
    c                 @     t                      fd            }|S )Nc                     t           j        s,t          dd           t          t	          d                    S t          t           dd          s:t                       t          dd           t          t	          d                    S t           j        vrCt          dd           d	v sd
v rt          d           t          t	          d                    S  | i |S )Nu4   Veuillez vous connecter pour accéder à cette page.warning
auth.loginis_active_accountTu:   Votre compte a été suspendu. Contactez l'administrateur.dangeru=   Accès refusé. Vous n'avez pas les permissions nécessaires.adminmanager  main.dashboard)	r	   is_authenticatedr   r   r   getattrr
   roler   )argskwargsfroless     -/var/www/html/MCyber-Diagnostic/decorators.pydecorated_functionz<role_required.<locals>.decorator.<locals>.decorated_function   s      0 7LiXXX 5 5666 <)<dCC 7RT\]]] 5 5666  --UW_```e##yE'9'9#JJJ(8 9 9:::1d%f%%%    r   )r   r   r   s   ` r   	decoratorz role_required.<locals>.decorator   :    	q	& 	& 	& 	& 	& 
	&, "!r   )
isinstancelist)r   r    s   ` r   role_requiredr$      s?    
 eT"" " " " " "2 r   c                 <     t                      fd            }|S )u'   Vérifie le droit de créer des audits.c                     t           j        s,t          dd           t          t	          d                    S t          t           dd          s:t                       t          dd           t          t	          d                    S t          t           dd          s,t          d	d           t          t	          d
                    S  | i |S )NzVeuillez vous connecter.r   r   r   Tu   Votre compte a été suspendu.r   	can_auditu3   Vous n'avez pas la permission de créer des audits.r   )r	   r   r   r   r   r   r
   )r   r   r   s     r   r   z5audit_permission_required.<locals>.decorated_function-   s    , 	3,i888GL11222 |%8$?? 	3MMM2H===GL11222 |[$77 	7GRRRG$455666q$!&!!!r   r   )r   r   s   ` r   audit_permission_requiredr(   +   s4    
1XX" " " " X"" r   c                       fd}|S )uO   
    Décorateur IDOR.
    Compatible UUID (comparaison string vs string).
    c                 @     t                      fd            }|S )Nc                     t           j        st          d           t          t           dd          s*t	                       t          t          d                    S 	  d
i |}n# t          $ r t          d           Y nw xY wt          t           dd          dk    }t           j        |k    }|s|st          d	            | i |S )Ni  r   Tr   i  r    r   r    )	r	   r   r   r   r
   r   r   	Exceptionid)r   r   owner_idis_adminis_ownerr   get_resource_owner_ids        r   r   zFowner_or_admin_required.<locals>.decorator.<locals>.decorated_functionH   s    0 c


 <)<dCC 7 5 566600::6::   c




 |VR88GCH#(2H  c


1d%f%%%s   A' 'BBr   )r   r   r3   s   ` r   r    z*owner_or_admin_required.<locals>.decoratorG   r!   r   r-   )r3   r    s   ` r   owner_or_admin_requiredr4   B   s$    
" " " " "2 r   N)	functoolsr   flaskr   r   r   r   flask_loginr	   r
   r$   r(   r4   r-   r   r   <module>r8      s          1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1! ! !H  .    r   