
    j                     4    d dl Z d dlmZ  G d d          ZdS )    N)PolicyOpc                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )	Assertionc                     t          j        d          | _        d| _        d| _        g | _        g | _        g | _        d | _        d | _	        d| _
        i | _        i | _        d S )Nzcasbin.policy )logging	getLoggerloggerkeyvaluetokensparams_tokenspolicyrmcond_rmpriority_index
policy_mapfield_index_map)selfs    `/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/casbin/model/assertion.py__init__zAssertion.__init__   sc    '88
#% "%'    c                    || _         | j                            d          }|dk     rt          d          | j        D ]X}t          |          |k     rt          d          t          |          |k    r
|d |         } | j         j        |d |           Y| j                            d	                    | j
                             | j                                          d S )N_   9the number of "_" in role definition should be at least 24grouping policy elements do not meet role definitionzRole links for: {})r   r   countRuntimeErrorr   lenadd_linkr   infoformatr   print_roles)r   r   r   rules       r   build_role_linkszAssertion.build_role_links"   s    
  %%199Z[[[K 	, 	,D4yy5  "#YZZZ4yy5  FUF|DGd6E6l+++-44TX>>???r   c                    || _         | j                            d          }|dk     rt          d          |D ]}t	          |          |k     rt          d          t	          |          |k    r
|d |         }|t          j        k    r$ |j        |d         |d         g|dd          R   u|t          j	        k    r$ |j
        |d         |d         g|dd          R   t          dt          |          z             d S Nr   r   r   r   r      zInvalid operation: )r   r   r   r    r!   	TypeErrorr   
Policy_addr"   Policy_removedelete_linkstr)r   r   oprulesr   r&   s         r   build_incremental_role_linksz&Assertion.build_incremental_role_links3   s%   
  %%199Z[[[ 
	A 
	AD4yy5   VWWW4yy5  FUF|X(((DGT!W8tABBx88888x---tAwQ;$qrr(;;;;; 5B ?@@@
	A 
	Ar   c                 .   || _         | j                            d          }|dk     rt          d          |D ]}t	          |          |k     rt          d          t	          |          |k    r
|d |         }|dt	          | j                           }|t          j        k    r| 	                    ||           |t          j
        k    r) | j         j        |d         |d         g|dd          R   t          dt          |          z             d S r)   )r   r   r   r    r!   r+   r   r   r,   add_conditional_role_linkr-   r.   r/   )r   r   r0   r1   r   r&   domain_rules          r   (build_incremental_conditional_role_linksz2Assertion.build_incremental_conditional_role_linksD   s+   
  %%199Z[[[ 	A 	AD4yy5   VWWW4yy5  FUF|q3t{#3#334KX(((..t[AAAAx---((a$q'EDHEEEEE 5B ?@@@	A 	Ar   c                 h   || _         | j                            d          }|dk     rt          d          | j        D ]s}t          |          |k     rt          d          t          |          |k    r
|d |         }|dt          | j                           }|                     ||           td S )Nr   r   r   r   )	r   r   r   r    r   r!   r+   r   r4   )r   r   r   r&   r5   s        r   build_conditional_role_linksz&Assertion.build_conditional_role_linksY   s    
  %%199Z[[[K 	> 	>D4yy5   VWWW4yy5  FUF|q3t{#3#334K**4====	> 	>r   c                    |sc| j                             |d         |d                     | j         j        |d         |d         g|t          | j                  d          R   d S |d         }| j                             |d         |d         |            | j         j        |d         |d         |g|t          | j                  d          R   d S )Nr   r*   )r   r"   set_link_condition_func_paramsr!   r   %set_domain_link_condition_func_params)r   r&   r5   domains       r   r4   z#Assertion.add_conditional_role_linkh   s     	tL!!$q'473337DL7Qad4PSTXT_P`P`PbPbKcdddddd ^FL!!$q'47F;;;>DL>tAwQQWsZ^_bcgcn_o_o_q_qZrssssssr   N)	__name__
__module____qualname__r   r'   r2   r6   r8   r4    r   r   r   r      sy        ( ( (  "A A A"A A A*> > >t t t t tr   r   )r	   casbin.model.policy_opr   r   r@   r   r   <module>rB      sh     + + + + + +[t [t [t [t [t [t [t [t [t [tr   