Ñò Ã#xPc@spdZddklZddklZddklZddklZddklZdefd„ƒYZ d S( s, Base classes for non-LDAP backend plugins. iÿÿÿÿ(tapi(tCommand(terrors(tDN(t_tVirtualCommandcBs eZdZdZdd„ZRS(sÅ A command that doesn't use the LDAP backend but wants to use the LDAP access control system to make authorization decisions. The class variable operation is the commonName attribute of the entry to be tested against. In advance, you need to create an entry of the form: cn=, api.env.container_virtual, api.env.basedn Ex. cn=request certificate, cn=virtual operations,cn=etc, dc=example, dc=com cCs|idjo)|djotidtdƒƒ‚n|djo |i}n|iii}|ii d|ƒt d|f|ii i |ii i ƒ}y3|i|dƒptidtdƒƒ‚nWn.tij otidtdƒƒ‚nXtS( s„ Perform an LDAP query to determine authorization. This should be executed before any actual work is done. tinfosoperation not definedsIPA: virtual verify %stcnt objectclasss#not allowed to perform this commandsNo such virtual commandN(t operationtNoneRtACIErrorRRtBackendtldap2tlogtdebugRtenvtcontainer_virtualtbasednt can_writetNotFoundtTrue(tselfR tldapt operationdn((s:/usr/lib/python2.6/site-packages/ipalib/plugins/virtual.pyt check_access-s  * N(t__name__t __module__t__doc__R R R(((s:/usr/lib/python2.6/site-packages/ipalib/plugins/virtual.pyRs N( RtipalibRRRt ipapython.dnRt ipalib.textRR(((s:/usr/lib/python2.6/site-packages/ipalib/plugins/virtual.pyts