a
q�qeM � @ s\ d dl Z d dlZd dlmZ ddlmZmZ ddlmZ ddl m
Z
G dd� deee
�ZdS ) � N)�Iterable� )� MatchName�MatchPermission)�Common)�PolicyQueryc s8 e Zd ZdZdd�� fdd�Zee d�dd�Z� ZS )�CommonQuerya�
Query common permission sets.
Parameter:
policy The policy to query.
Keyword Parameters/Class attributes:
name The name of the common to match.
name_regex If true, regular expression matching will
be used for matching the name.
perms The permissions to match.
perms_equal If true, only commons with permission sets
that are equal to the criteria will
match. Otherwise, any intersection
will match.
perms_regex If true, regular expression matching will be used
on the permission names instead of set logic.
N)�returnc s( t t| �j|fi |�� t�t�| _d S )N)�superr �__init__�loggingZ getLogger�__name__�log)�self�policy�kwargs�� __class__� �9/usr/lib64/python3.9/site-packages/setools/commonquery.pyr # s zCommonQuery.__init__c c s\ | j �d�| �� | �| j � | �| j � | j�� D ]"}| �|�sDq4| �|�sPq4|V q4dS )z,Generator which yields all matching commons.z)Generating common results from {0.policy}N) r �info�formatZ_match_name_debugZ_match_perms_debugr ZcommonsZ_match_nameZ_match_perms)r Zcomr r r �results'