HEX
Server: Apache
System: Linux ns517114.ip-158-69-26.net 6.12.0-124.55.3.el10_1.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 7 16:54:02 EDT 2026 x86_64
User: urgentelectrical (1063)
PHP: 8.2.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib64/python3.12/site-packages/setools/diff/__pycache__/users.cpython-312.opt-1.pyc
�

���ic���UddlmZddlmZddlmZddlmZmZm	Z	m
Z
ddlmZddl
mZmZmZdd	lmZmZdd
lmZddlmZee�Zee
ed<ed
d
��Gd�de��Zde
dee
fd�ZGd�de�Zy)�)�defaultdict)�	dataclass�)�MLSDisabled)�Level�Range�Role�User�)�DiffResultDescriptor)�
Difference�DifferenceResult�
SymbolWrapper)�LevelWrapper�RangeWrapper��role_wrapper_factory)�SymbolCache�_users_cacheT)�frozen�orderc��eZdZUdZeed<eeed<eeed<eeed<ee	zdzed<ee	zdzed<e
e	zdzed	<e
e	zdzed
<y)�ModifiedUserz'Difference details for a modified user.�user�added_roles�
removed_roles�
matched_rolesN�added_level�
removed_level�added_range�
removed_range)�__name__�
__module__�__qualname__�__doc__r
�__annotations__�setr	r�strr���9/usr/lib64/python3.12/site-packages/setools/diff/users.pyrrsf��2�
�J��T����t�9���t�9�����t�#�#��3�;��%�%����t�#�#��3�;��%�%r*rr�returnc��	t|j|S#t$r&t|�}|t|j|<|cYSwxYw)z|
    Wrap users from the specified policy.

    This caches results to prevent duplicate wrapper
    objects in memory.
    )r�policy�KeyErrorr)r�rs  r+�user_wrapper_factoryr1$sL����D�K�K�(��.�.�����$���*+��T�[�[�!�$�'����s��,A�Ac�b�eZdZdZdd�Zeee�Zeee�Zee	e�Z
dd�Zy)�UsersDifferencez7Determine the difference in users between two policies.Nc
���|jjd|j�d|j���|j	d�|jj�D�d�|jj�D��\|_|_}tt�|_
|D�]\}}|j	d�|jD�d�|jD��\}}}	t|j�}t|j�}|j}	|j}
	t|j�}t|j�}|j}
|j}||k7r|
}|	}nd}d}||k7r|}|
}nd}d}|s|s|s|s��|jj#t||||||||����y#t $rd}d}d}	d}
Y��wxYw#t $rd}d}d}
d}Y�~wxYw)	z6Generate the difference in users between the policies.z!Generating user differences from z to c3�2K�|]}t|����y�w�N�r1��.0r0s  r+�	<genexpr>z-UsersDifference.diff_users.<locals>.<genexpr>>s����G�.F��
!�!�
$�.F���c3�2K�|]}t|����y�wr6r7r8s  r+r:z-UsersDifference.diff_users.<locals>.<genexpr>?s����H�.G��
!�!�
$�.G�r;c3�2K�|]}t|����y�wr6rr8s  r+r:z-UsersDifference.diff_users.<locals>.<genexpr>Is����B�/�Q�%�a�(�/�r;c3�2K�|]}t|����y�wr6rr8s  r+r:z-UsersDifference.diff_users.<locals>.<genexpr>Js����C�2B�Q�%�a�(�2B�r;NzNone (MLS Disabled))�log�info�left_policy�right_policy�	_set_diff�users�added_users�
removed_users�listr�modified_users�rolesr�	mls_levelr�	mls_ranger�append)�self�
matched_users�	left_user�
right_userrrr�left_level_wrap�left_range_wrap�
left_level�
left_range�right_level_wrap�right_range_wrap�right_level�right_rangerrr r!s                   r+�
diff_userszUsersDifference.diff_users7s��	
���
�
�/��0@�0@�/A��d�FW�FW�EX�Y�	[�?C�n�n�G�d�.>�.>�.D�.D�.F�G�H�d�.?�.?�.E�.E�.G�H�?J�;���$�,�m�#�<�0�2���%2�!�I�z�
9=���B�)�/�/�B�C�*�2B�2B�C�9E�5�K��
�$	
3�".�y�/B�/B�"C��".�y�/B�/B�"C��&�0�0�
�&�0�0�
�	
4�#/�
�0D�0D�#E� �#/�
�0D�0D�#E� �(�2�2��(�2�2���"2�2�)�� *�
�"�� $�
��"2�2�)�� *�
�"�� $�
��m�}�
��#�#�*�*�<�	�8C�8E�8E�8C�8E�8C�8E�,G�H�y&3��8�
3�"&��"&��2�
�2�
�	
3���
4�#'� �#'� �3��3��	
4�s&�,AG�/AG�G�G�G0�/G0c�F�|jjd�|`|`|`y)z%Reset diff results on policy changes.zResetting user differencesN)r?�debugrErFrH)rMs r+�_reset_diffzUsersDifference._reset_diff�s%�������3�4������r*)r,N)r"r#r$r%rYrr
rErFrrHr\r)r*r+r3r33sJ��A�OH�b-�&�t�,�Z�8�K�.�(��.�z�:�M�7�)�,�7�
�C�N�
 r*r3N)�collectionsr�dataclassesr�	exceptionr�	policyreprrr	r
�descriptorsr�
differencer
rr�mlsrrrIr�typingr�dictrr&rr1r3r)r*r+�<module>rfs���$�!�#�0�0�-�C�C�+�'��"-�d�"3��k�$��3��$�d�#�&�#�&�$�&��t��
�d�(;��a �j�a r*