imap_setacl

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

imap_setaclLegt die ACL (Zugriffsrechte) für ein Postfach fest

Beschreibung

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

Legt die ACL (Zugriffsrechte) für das angegebene Postfach fest.

Parameter-Liste

imap

Eine IMAP\Connection-Instanz.

mailbox

Der Name des Postfachs, siehe imap_open() für nähere Informationen.

Warnung

Die Übergabe von nicht vertrauenswürdigen Daten an diesen Parameter ist unsicher,falls imap.enable_insecure_rsh nicht deaktiviert ist.

user_id

Der Benutzer, dessen Berechtigungen geändert werden sollen.

rights

Die Berechtigungen, die dem Benutzer gewährt werden sollen. Durch die Übergabe eines leeren Strings wird die ACL entfernt, d. h. alle Berechtigungen werden entzogen.

Rückgabewerte

Gibt bei Erfolg true zurück. Bei einem Fehler wird false zurückgegeben.

Changelog

Version Beschreibung
8.1.0 Der Parameter imap erwartet nun eine IMAP\Connection-Instanz; vorher wurde eine gültige imap-Ressource erwartet.

Anmerkungen

Diese Funktion ist derzeit nur ab der Bibliotheksversion c-client2000 verfügbar.

Siehe auch

  • imap_getacl() - Liefert die Liste der Zugriffsrechte (ACL) für ein Postfach

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