HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/lib64/python3.6/site-packages/setools/diff/__pycache__/roles.cpython-36.pyc
3

�^��@slddlmZmZddlmZddlmZmZddlm	Z	edddd	g�Z
ee�Zd
d�Z
Gdd
�d
e�ZdS)�)�defaultdict�
namedtuple�)�DiffResultDescriptor)�
Difference�
SymbolWrapper)�type_wrapper_factoryZ
modified_role�added_types�
removed_types�
matched_typescCs>yt|j|Stk
r8t|�}|t|j|<|SXdS)z|
    Wrap roles from the specified policy.

    This caches results to prevent duplicate wrapper
    objects in memory.
    N)�_roles_cacheZpolicy�KeyErrorr)Zrole�r�r�/usr/lib64/python3.6/roles.py�role_wrapper_factory"src@s8eZdZdZed�Zed�Zed�Zdd�Zdd�Z	dS)�RolesDifferencez7Determine the difference in roles between two policies.�
diff_rolescCs�|jjdj|��|jdd�|jj�D�dd�|jj�D��\|_|_}t	�|_
xX|D]P\}}|jdd�|j�D�dd�|j�D��\}}}|s�|rVt|||�|j
|<qVWdS)z6Generate the difference in roles between the policies.zDGenerating role differences from {0.left_policy} to {0.right_policy}css|]}t|�VqdS)N)r)�.0rrrr�	<genexpr>@sz-RolesDifference.diff_roles.<locals>.<genexpr>css|]}t|�VqdS)N)r)rrrrrrAscss|]}t|�VqdS)N)r)r�trrrrJscss|]}t|�VqdS)N)r)rrrrrrKsN)
�log�info�formatZ	_set_diffZleft_policyZrolesZright_policy�added_roles�
removed_roles�dict�modified_roles�types�modified_roles_record)�selfZ
matched_rolesZ	left_roleZ
right_roler	r
rrrrr9s zRolesDifference.diff_rolescCs"|jjd�d|_d|_d|_dS)z%Reset diff results on policy changes.zResetting role differencesN)r�debugrrr)r rrr�_reset_diffUszRolesDifference._reset_diffN)
�__name__�
__module__�__qualname__�__doc__rrrrrr"rrrrr1srN)�collectionsrrZdescriptorsr�
differencerrrrrrrrrrrrr�<module>s