imap_setacl

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imap_setaclSets the ACL for a given mailbox

Descrição

imap_setacl(
    IMAP\Connection $imap,
    string $mailbox,
    string $user_id,
    string $rights
): bool

Sets the ACL for a giving mailbox.

Parâmetros

imap

Uma instância de IMAP\Connection.

mailbox

The mailbox name, see imap_open() for more information

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

user_id

The user to give the rights to.

rights

The rights to give to the user. Passing an empty string will delete acl.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão Descrição
8.1.0 O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Notas

This function is currently only available to users of the c-client2000 or greater library.

Veja Também

add a note

User Contributed Notes 2 notes

up
0
hartmut dot woehrle at hwds dot ch
7 years ago
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;
}
up
0
panayotis at yellownetroad dot com
21 years ago
I noticed that using:
imap_setacl ($conn, $mbox, $userid, "")
will act like:
"deleteaclmailbox $mbox $userid" (remove the ACL on mailbox for userid).
To Top