File: //lib64/python3.9/site-packages/setools/__pycache__/initsidquery.cpython-39.pyc
a
    q�qe	  �                   @   sT   d dl Z d dlmZ ddlmZmZ ddlmZ ddlm	Z	 G dd� deee	�Z
dS )	�    N)�Iterable�   )�MatchContext�	MatchName)�
InitialSID)�PolicyQueryc                       s2   e Zd ZdZ� fdd�Zee d�dd�Z�  ZS )�InitialSIDQueryaB  
    Initial SID (Initial context) query.
    Parameter:
    policy            The policy to query.
    Keyword Parameters/Class attributes:
    name            The Initial SID name to match.
    name_regex      If true, regular expression matching
                    will be used on the Initial SID name.
    user            The criteria to match the context's user.
    user_regex      If true, regular expression matching
                    will be used on the user.
    role            The criteria to match the context's role.
    role_regex      If true, regular expression matching
                    will be used on the role.
    type_           The criteria to match the context's type.
    type_regex      If true, regular expression matching
                    will be used on the type.
    range_          The criteria to match the context's range.
    range_subset    If true, the criteria will match if it is a subset
                    of the context's range.
    range_overlap   If true, the criteria will match if it overlaps
                    any of the context's range.
    range_superset  If true, the criteria will match if it is a superset
                    of the context's range.
    range_proper    If true, use proper superset/subset operations.
                    No effect if not using set operations.
    c                    s(   t t| �j|fi |�� t�t�| _d S )N)�superr   �__init__�loggingZ	getLogger�__name__�log)�self�policy�kwargs��	__class__� �:/usr/lib64/python3.9/site-packages/setools/initsidquery.pyr
   -   s    zInitialSIDQuery.__init__)�returnc                 c   s^   | j �d�| �� | �| j � | �| j � | j�� D ]$}| �|�sDq4| �|j	�sRq4|V  q4dS )z1Generator which yields all matching initial SIDs.z.Generating initial SID results from {0.policy}N)
r
   �info�formatZ_match_name_debugZ_match_context_debugr   ZinitialsidsZ_match_nameZ_match_context�context)r   �ir   r   r   �results1   s    
zInitialSIDQuery.results)	r   �
__module__�__qualname__�__doc__r
   r   r   r   �
__classcell__r   r   r   r   r   
   s   r   )r   �typingr   Zmixinsr   r   Z	policyrepr   �queryr   r   r   r   r   r   �<module>   s