
    EfU                         d Z ddlmZ ddlmZ ddlT 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             d	S d	S )u   auth2ldif преобразовывает CmfAuth в LDIF.

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

Пример:
python3 -m cmf.bin.auth2ldif
    )make_models)init_ds)*)OrderedMultiDictdomainpasswordc                    g }t                      }|                     dd          \  }}t                      }|                    dd|            |                    d|           |                    dd           |                    |           t                      }|                    dd| d	|            |                    d|           |                    dd           |                    dd
           |                    |           t                      }|                    dd| d	|            |                    dd           |                    dd           |                    |           t
          j                                        D ]}t                      }|                    dd|j         d| d	|            |                    d|j                   |                    d|j                   |                    d|j                   |                    d|j	                   |                    dd           |                    dd           |                    dd           |                    dd           |                    dd           |                    dd           |                    dd           |                    dd           |                    dd           |                    d|j
                   |                    d|j                   |                    dd|j         d            |                    d!|j                   |j        t          |j                            d"                    D ]}|                                }|                    d#d| d$| d	|            ||vr3t                      ||<   |||         d%<   t                      ||         d&<   ||         d&                             |j                   |                    |           t                      }|                    dd'| d	|            |                    d(d)           |                    dd*           |                    d+d,           |                    |           |                                D ]}	t                      }|                    dd||	         d%          d$| d	|            |                    d||	         d%                     |                    dd-           ||	         d&         D ]!}
|                    d.d|
 d| d	|            "|                    |           t                      }|                    dd/| d	|            |                    dd0           |                    d!|            |                    |           |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VVF}}S1}--HC			BFF4sFF4FF=*%%%
MM"			BFF4%s%%%%&&&FF4FF=*%%%FF=.)))
MM"			BFF4///#//000FF4FF=.///
MM"^  "" ! !
t@17@@#@@3@@AAA
tQW
tQW
uag
vqw
tX
}e$$$
}i(((
}o...
}o...
}n---
}f%%%
}i(((
}4555
{AK(((
{AK(((
 3 3 3 3444
~q{+++8!(..--.. 4 4WWYY
$I!$I$I3$I$IC$I$IJJJVOO!%VAY)*VAYv&,/EEVAYy)9%))!'2222 	b			BFF4///#//000FF=.///FF4FF=1222
MM"[[]]  
tJ6!9V,JJCJJSJJKKK
tq	&)+,,,
}n---9% 	D 	DAFF8B1BBCBBSBBCCCCb 
		BFF4;S;;c;;<<<FF4
FF>X-(((
MM"M    Nc                     | D ]C}|                     d          D ]\  }}t          | d||           t          |           Dd S )NT)multi:)file)itemsprint)ldifrN   rD   rF   vs        rH   
print_ldifrS   b   sn      GG$G'' 	) 	)DAqQ'''14(((((4 rJ   c                  "   dd l } |                     | j                  }|                    ddd           |                    ddd	           |                    d
dd|                     d          d           |                                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    OOO$$ > %  F 3]     5u     "s##     rJ   c                      t                      } t          | j        | j                  }t	          || j                   d S N)ra   rI   r   r   rS   output)argsrQ   s     rH   mainrg      s6    <<DT[$-00DtT[!!!!!rJ   __main__rd   )__doc__cmfr   cmf.data_providers.baser   cmf.includewerkzeug.datastructuresr   strrI   rS   ra   rg   __name__ rJ   rH   <module>rq      s           + + + + + +     4 4 4 4 4 4Oc OS O O O Od     ," " " zKGIIIDFFFFF rJ   