imap_setacl

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

imap_setaclУстанавливает ACL для заданного почтового ящика

Описание

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

Устанавливает ACL для заданного почтового ящика.

Список параметров

imap

Экземпляр IMAP\Connection.

mailbox

Имя почтового ящика, более подробно смотрите в описании imap_open()

Внимание

Если imap.enable_insecure_rsh не отключён, то передача в этот параметр не проверенных данных не безопасна.

user_id

Идентификатор пользователя, которому выдаются права.

rights

Права для выдачи. Передача пустой строки означает удаление всех прав.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия Описание
8.1.0 Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примечания

В данный момент эта функция поддерживается только при использовании библиотеки c-client2000 или более новой версии.

Смотрите также

  • imap_getacl() - Получает ACL для заданного почтового ящика

add a note add a note

User Contributed Notes 2 notes

up
0
hartmut dot woehrle at hwds dot ch
8 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
22 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