OpenLDAP:具有dynamic条件的ACL

我有一个问题,为OpenLDAP设置ACL。 这里是一些最简单的例子来解释这个问题。

模式如下:

dc=example,dc=com |-- cn=password_resetter `-- ou=users |-- uid=johndoe `-- uid=janedoe 

用户中的所有对象都具有“qmailUser”作为objectClass,结果是属性mailuserPasswordpassword_ressetter应该能够根据邮件地址更改密码。

我知道的正常方式是允许search和比较邮件属性,并允许写入userPassword属性。 像(没有testing过):

 to dn.subtree="ou=users,dc=exmpale,dc=com" by dn.base="cn=password_resetter,dc=example,dc=com" search to dn.children="ou=users,dc=exmpale,dc=com" attrs=mail by dn.base="cn=password_resetter,dc=example,dc=com" compare to dn.children="ou=users,dc=exmpale,dc=com" attrs=userPassword by dn.base="cn=password_resetter,dc=example,dc=com" write 

但是这将正确的访问权检查转移到客户端应用程序:客户端可以search用户树,客户端可以编辑每个密码,甚至不检查邮件。

你知道一个访问规则,只有当邮件是一个特定的,才允许更改userPassword? 或者其他说:我理想的需要一个规则,允许更改属性userPassword只有DN与一个被宽恕的邮件。