I noticed that using:
imap_setacl ($conn, $mbox, $userid, "")
will act like:
"deleteaclmailbox $mbox $userid" (remove the ACL on mailbox for userid).
(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)
imap_setacl — Modifie le ACL de la boîte aux lettres
Définit l'ACL pour la boîte aux lettres donnée.
imap
Une instance de IMAP\Connection.
mailbox
Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails
Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.
user_id
L'identifiant de l'utilisateur dont on veut définir les droits.
rights
Les droits à donner à l'utilisateur. Le fait de passer une chaîne vide effacera l'ACL.
Cette fonction retourne true
en cas de succès ou false
si une erreur survient.
Version | Description |
---|---|
8.1.0 |
La paramètre imap attend désormais une instance de
IMAP\Connection ; auparavant, une ressource imap était attendue.
|
Cette fonction n'est actuellement disponible que pour les utilisateurs
de la bibliothèque c-client2000
ou supérieur.
I noticed that using:
imap_setacl ($conn, $mbox, $userid, "")
will act like:
"deleteaclmailbox $mbox $userid" (remove the ACL on mailbox for userid).
After getting the ACL's from imap_getacl you want to set them for a user on any mailbox folder like this:
foreach ( $Folders as $key => $Maildir ) {
imap_setacl($domains , "user/john.doe/".$Maildir , $userid, "lrswipkxte");
}
You can use a form that translates the ACLs like the following (thanks to cyradm manual):
switch ($right) {
case "read" : $aclstring = "lrs";
break;
case "post" : $aclstring = "lrsp";
break;
case "append" : $aclstring = "lrsip";
break;
case "write" : $aclstring = "lrswipkxte";
break;
case "delete" : $aclstring = "lrxte";
break;
case "all" : $aclstring = "lrswipkxte";
break;
case "admin" : $aclstring = "lrswipkxtea";
break;
case "none" : $aclstring = "";
break;
}