
    B
dU                         d Z ddlmZ ddlmZ ddl ddlmZ dedefdZ	dd
Z
d Zd Zedk(  r  ej                           e         e        y	y	)u   auth2ldif преобразовывает CmfAuth в LDIF.

Подробнее:
python3 -m cmf.bin.auth2ldif --help

Пример:
python3 -m cmf.bin.auth2ldif
    )make_models)init_ds)*)OrderedMultiDictdomainpasswordc                 f
   g }t               }| j                  dd      \  }}t               }|j                  dd|        |j                  d|       |j                  dd       |j	                  |       t               }|j                  dd| d	|        |j                  d|       |j                  dd       |j                  dd
       |j	                  |       t               }|j                  dd| d	|        |j                  dd       |j                  dd       |j	                  |       t
        j                  j                         D ]s  }t               }|j                  dd|j                   d| d	|        |j                  d|j                         |j                  d|j                         |j                  d|j                         |j                  d|j                         |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  d|j                         |j                  d|j                         |j                  dd|j                   d        |j                  d!|j                         |j                  t        |j                  j                  d"            D ]w  }|j!                         }|j                  d#d| d$| d	|        ||vr%t               ||<   |||   d%<   t               ||   d&<   ||   d&   j                  |j                         y |j	                  |       v t               }|j                  dd'| d	|        |j                  d(d)       |j                  dd*       |j                  d+d,       |j	                  |       |j#                         D ]  }	t               }|j                  dd||	   d%    d$| d	|        |j                  d||	   d%           |j                  dd-       ||	   d&   D ]  }
|j                  d.d|
 d| d	|         |j	                  |        t               }|j                  dd/| d	|        |j                  dd0       |j                  d!|        |j	                  |       |S )1N.   )maxsplitdnzdc=dcobjectClassdcObjectz,dc=organizationzou=people,dc=oupeopleorganizationalUnitzcn=z,ou=people,dc=cngnuidmailtopcontactinetOrgPersonshadowAccountposixAccountuserorganizationalPerson	uidNumber	gidNumberhomeDirectoryz/home//userPassword,memberOfz,ou=Groups,dc=namememberszou=Groups,dc=objectclassorganizationalunitgroupsdescriptionzgeneric groups branchgroupOfNamesmemberzcn=readonly,ou=people,dc=readonly)dictrsplitr   addappendmodelsCmfAuthlistloginemail	posix_uid	posix_gid	pass_hashr+   setsplitstripkeys)r   r   resultr+   sldtldmdegkms              ./modules/auth/bin/auth2ldif.py	auth2ldifrI      s   FVF}}S1}-HC		BFF43seFF4FF=*%
MM"		BFF43se4u%&FF4FF=*%FF=.)
MM"		BFF4=T#/0FF4FF=./
MM"^^  " !
ts177)>#d3%@A
tQWW
tQWW
uagg
vqww
tX
}e$
}i(
}o.
}o.
}n-
}f%
}i(
}45
{AKK(
{AKK(
&	 34
~q{{+88!((..-. 4WWY
c!N3%tC5$IJVO!%VAY)*VAYv&,/EVAYy)9%))!''24 	bC!D 
	BFF4=T#/0FF=./FF4FF=12
MM"[[] 
ts6!9V,-^C5SEJK
tq	&)*,
}n-9% 	DAFF8s1#^C5SEBC	Db 
	BFF4,SEcU;<FF4
FF>XJ(
MM"M    Nc                     | D ]9  }|j                  d      D ]  \  }}t        | d||        t        |       ; y )NT)multi:)file)itemsprint)ldifrN   rD   rF   vs        rH   
print_ldifrS   b   sI     GG$G' 	)DAqQCq'14(	)4rJ   c                      dd l } | j                  | j                        }|j                  ddd       |j                  ddd	       |j                  d
dd| j	                  d      d       |j                         S )Nr   )formatter_classz--domainzyour company domain namezexample.com)helpdefaultz
--passwordzpassword for cn=readonly123z--outputz-ozsend output to filew-)rV   typerW   )argparseArgumentParserArgumentDefaultsHelpFormatteradd_argumentFileType
parse_args)r\   parsers     rH   ra   ra   i   s    $$ >> % F 3]   5u   "s#   rJ   c                      t               } t        | j                  | j                        }t	        || j
                         y N)ra   rI   r   r   rS   output)argsrQ   s     rH   mainrg      s+    <DT[[$--0DtT[[!rJ   __main__rd   )__doc__cmfr   cmf.data_providers.baser   cmf.includewerkzeug.datastructuresr   strrI   rS   ra   rg   __name__ rJ   rH   <module>rq      se     +  4Oc OS Od," zKIF rJ   