D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
lib
/
python3.9
/
site-packages
/
ipalib
/
__pycache__
/
Filename :
aci.cpython-39.pyc
back
Copy
a }�f+ � @ sd d dl Z d dlZd dlZe�dej�Ze�dej�Ze�dej�ZddgZg d�Z G dd � d �Z dS ) � Nz<\(version\s+3.0\s*;\s*ac[li]\s+\"([^\"]*)\"\s*;\s*(.*);\s*\)z(\w+)\s*\(([^()]*)\)\s*(.*)z+\(?([a-zA-Z0-9;\.]+)\s*(\!?=)\s*\"(.*)\"\)?�allowZdeny) �read�write�add�delete�searchZcompareZ selfwrite�proxy�allc @ s� e Zd ZdZdZd*dd�Zdd� Zdd� Zd d � Zdd� Z d d� Z dd� Zdd� Zdd� Z dd� Zd+dd�Zd,dd�Zd-dd�Zdd� Zd d!� Zd"d#� Zd$d%� Zd&d'� ZeZd(d)� ZdS ).�ACIz� Holds the basic data for an ACI entry, as stored in the cn=accounts entry in LDAP. Has methods to parse an ACI string and export to an ACI String. Nc C sH d | _ d | _d | _|| _i | _d| _dg| _i | _|d urD| �|� d S )Nr r ) �name�source_group� dest_groupZorig_acistr�target�action�permissions�bindrule� _parse_acistr)�self�acistr� r �./usr/lib/python3.9/site-packages/ipalib/aci.py�__init__4 s zACI.__init__c C s: |dkr| j S |dkr| jS |dkr*| jS td| ��dS )z*Fake getting attributes by key for sortingr � � zUnknown key value %sN)r r r � TypeError)r �keyr r r �__getitem__@ s zACI.__getitem__c C s | � � S )zAn alias for export_to_string())�export_to_string)r r r r �__repr__J s zACI.__repr__c C s� | � � d}t| j�� �D ]~\}}|d }t|d �ttfv r�d}| �|d �D ]}|| d }qP|dd� }|d|||f }q|d|||d f }q|d| j| j d � | j�| jd | jd | jd f d }|S )z/Output a Directory Server-compatible ACI string� �operator� expressionz || N���z(%s %s "%s")z((version 3.0;acl "%s";%s (%s) %s %s "%s"�,�keywordz;)) �validate�sortedr �items�type�tuple�list�_unique_listr r �joinr r )r �aci�t�v�opr �lr r r r N s :zACI.export_to_stringc C s$ g }|D ]}||vr|� |� q|S )a A set() doesn't maintain order so make a list unique ourselves. The number of entries in our lists are always going to be relatively low and this code will be called infrequently anyway so the overhead will be small. )�append)r r1 �unique�itemr r r r+ _ s zACI._unique_listc C s0 |� d�r|dd � }|�d�r,|d d� }|S )N�"r ���)� startswith�endswith)r �sr r r �_remove_quotesm s zACI._remove_quotesc C s t jr|�d�}t�|�}|jd |_d}d}|D ]�}|dkr�t|��� }t|�}|dvrz|t|� }|dvrztd| ��|}t|��� }| �|�}t|�}|dkr�td | ��|d kr�t � d|�} i | j|<