File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/__pycache__/win_dacl.cpython-310.pyc
o
�N�g� � @ s� d Z ddlZddlZddlZddlZddlmZ zddlZddl Z ddl
Z
dZW n ey3 dZY nw e�
e�ZdZG dd� d�Zd d
� Zdd� Zd
d� Zd!dd�Zdd� Zd"dd�Zdd� Zd#dd�Zd$dd�Zd%dd�Zd!dd�Z d&dd �ZdS )'z=
Manage DACLs on Windows
:depends: - winreg Python module
� N)�CommandExecutionErrorTFZwin_daclc @ s` e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� Zdd
� Z dd� Z
dd� Zdd� Zdd� Z
dS )�
daclConstantsz3
DACL constants used throughout the module
c
C sd t jt jB dB | _ddddddddddddd�| _tjtjdd�tj d d�d
�tj
t jdd�t jdd�t j
t jB dd�t jt jB t j
B t jB d
d�| jd d�d�i| _ddd�ddd�d�| _tjdtjd�dtjd�dtjtjB d�dtjd�dtjd�dtjtjB d�d�tj
i ddtjd��ddtjd��ddtjtjB d��ddtjd��d d!tjd��d"d#tjtjB tjB d��d$d%tjtjB d��d&d'tjtjB d��d(dtjd��d)dtjd��d*dtjtjB d��d+dtjd��d,d!tjd��d-d#tjtjB tjB d��d.d%tjtjB d��d/d'tjtjB d��i| _tj tj tjB d0�| _tj
tj
tjd1�| _d S )2Ni� �MACHINE�USERS�CURRENT_USER�CLASSES_ROOT)�HKEY_LOCAL_MACHINEZ
HKEY_USERS�HKEY_CURRENT_USERZHKEY_CLASSES_ROOTr r r r ZHKLMZHKUZHKCUZHKCR�read)�BITS�TEXTzfull control)�READ�FULLCONTROL�writezread and execute�modify)r
ZWRITEzREAD&EXECUTEZMODIFYr �allowedr )r r Zdenied� )ZALLOWZDENYz
this key onlyzthis key and subkeyszsubkeys only)ZKEYzKEY&SUBKEYSZSUBKEYSz
THIS KEY ONLYzTHIS KEY AND SUBKEYSzSUBKEYS ONLY�FILEzthis file/folder onlyZFOLDERzFOLDER&SUBFOLDERS&FILESz"this folder, subfolders, and fileszFOLDER&SUBFOLDERSzthis folder and subfolderszFOLDER&FILESzthis folder and fileszSUBFOLDERS&FILESzsubfolders and filesZ
SUBFOLDERSzsubfolders onlyZFILESz
files onlyzTHIS FILE ONLYzTHIS FOLDER ONLYz"THIS FOLDER, SUBFOLDERS, AND FILESzTHIS FOLDER AND SUBFOLDERSzTHIS FOLDER AND FILESzSUBFOLDERS AND FILESzSUBFOLDERS ONLYz
FILES ONLY)TF)r Z DIRECTORYZREGISTRY)�
ntsecurityconZSTANDARD_RIGHTS_REQUIREDZSYNCHRONIZEZFILE_ALL_ACCESS�hkeys_security�
win32security�SE_REGISTRY_KEY�winregZKEY_READZKEY_ALL_ACCESSZSE_FILE_OBJECTZFILE_GENERIC_READZFILE_GENERIC_WRITEZFILE_GENERIC_EXECUTEZDELETE�rights�
validAceTypesZNO_INHERITANCEZCONTAINER_INHERIT_ACEZINHERIT_ONLY_ACEZOBJECT_INHERIT_ACE�validPropagationsZKEY_WOW64_64KEYZreflection_mask�
objectType)�self� r �I/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/win_dacl.py�__init__. sZ ��
�
������
���
������������ ��������������!���&��*��.���3��7��;����A���F����h
��zdaclConstants.__init__c
C sJ t |t�r#|�� }z| j| W S ty" td�|d�| j����w |S )zA
returns the bit value of the string object type
z@Invalid object type "{}". It should be one of the following: {}�, )�
isinstance�str�upperr �KeyErrorr �format�join�r �tr r r �getObjectTypeBit� s
���zdaclConstants.getObjectTypeBitc
C s4 z| j | W S ty td�|d�| j ����w )z]
returns the necessary string value for an HKEY for the win32security module
z;No HKEY named "{}". It should be one of the following: {}r! )r r% r r&