File: //lib/python3/dist-packages/samba/netcmd/__pycache__/gpo.cpython-310.pyc
o
�/ah[ � @ s2 d dl Z d dlmZ d dlZd dlZd dlm mZ d dl
Z
d dlZd dlm
Z
d dlmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZmZ d dlmZ d dlZd dlZd d lmZmZm Z d d
l!m"Z" d dlm#Z# d dl$m%Z& d d
l$m'Z( d dlm)Z) d dl*Z*d dl+m,Z, d dlm-Z- d dl.m/Z/ d dl0m1Z1m2Z2m3Z3 d dl4m5Z5 d dl6m7Z7m8Z8m9Z9m:Z: d dl;m<Z< d dl=m>Z> d dl?m@Z@ d dlm%Z% d dlAmBZB d dl!mCZC d dlDmEZEmFZF d dlGmHZH d dlImJZJmKZK d dlLmMZMmNZN d dlOZOdd� ZPd d!� ZQd"d#� ZRd$d%� ZSd�d&d'�ZTd(d)� ZUdddejVejWB ejXB ejYB fd*d+�ZZd,d-� Z[d.d/� Z\d0d1� Z]ej^fd2d3�Z_d4d5� Z`e(jae(jbB e(jcB e(jdB Zed6d7� Zf 8 8d�d9d:�Zgd;d<� Zhd=d>� ZiG d?d@� d@e�ZjG dAdB� dBej�ZkG dCdD� dDej�ZlG dEdF� dFej�ZmG dGdH� dHej�ZnG dIdJ� dJej�ZoG dKdL� dLej�ZpG dMdN� dNej�ZqG dOdP� dPej�ZrG dQdR� dRej�ZsG dSdT� dTej�ZtG dUdV� dVej�ZuG dWdX� dXej�ZvG dYdZ� dZev�ZwG d[d\� d\ej�ZxG d]d^� d^ej�ZyG d_d`� d`e�ZzG dadb� dbe�Z{G dcdd� dde�Z|G dedf� dfe�Z}G dgdh� dhe�Z~G didj� dje�ZG dkdl� dle�Z�G dmdn� dne�Z�G dodp� dpe�Z�G dqdr� dre�Z�G dsdt� dte�Z�G dudv� dve�Z�G dwdx� dxe�Z�G dydz� dze�Z�G d{d|� d|e�Z�G d}d~� d~e�Z�G dd�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�G d�d�� d�e�Z�dS )�� N)�system_session)�Command�CommandError�Option�SuperCommand)�SamDB)�dsdb)�security)�
ndr_unpack�ndr_pack)�preg)� AUTH_SESSION_INFO_DEFAULT_GROUPS�AUTH_SESSION_INFO_AUTHENTICATED�#AUTH_SESSION_INFO_SIMPLE_PRIVILEGES)�
netcmd_finddc)�policy)�param)�libsmb_samba_internal)�
NTSTATUSError)�dsacl2fsacl)�nbt)�Net)�GPParser�GPNoParserException�GPGeneralizeException)�GPPolParser)�GPIniParser�GPTIniParser�GPFDeploy1IniParser�GPScriptsIniParser)�GPAuditCsvParser)�GptTmplInfParser)�GPAasParser)�SMB_SIGNING_REQUIRED)�attr_default)� get_bytes�
get_string)�ConfigParser)�StringIO�BytesIO)� calc_mode�stat_from_modec C �$ t �| �}|sd}|S d�|�}|S )zreturn gpo flags string�NONE� )r �
get_gpo_flags�join)�value�flags�ret� r4 �2/usr/lib/python3/dist-packages/samba/netcmd/gpo.py�gpo_flags_stringJ �
�r6 c C r, )zreturn gplink options stringr- r. )r �get_gplink_optionsr0 )r1 �optionsr3 r4 r4 r5 �gplink_options_stringT r7 r: c C s� g }| � � dkr
|S | �d�}|D ]/}|sq|�d�}t|�dks(|d �d�s.td| ��|�|d dd � t|d
�d�� q|S )z.parse a gPLink into an array of dn and options� �]�;� r z[LDAP://zBadly formed gPLink '%s'� N� ��dnr9 )�strip�split�len�
startswith�RuntimeError�append�int)�gplinkr3 �a�g�dr4 r4 r5 �parse_gplink^ s
&rN c C s d� dd� | D ��}|S )z4Encode an array of dn and options into gPLink stringr; c s s$ � | ]
}d |d |d f V qdS )z[LDAP://%s;%d]rB r9 Nr4 )�.0rL r4 r4 r5 � <genexpr>r s �"