<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>4907</bug_id>
          
          <creation_ts>2004-07-27 18:26:36 +0400</creation_ts>
          <short_desc>imap acl manage</short_desc>
          <delta_ts>2006-11-24 05:46:51 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>php-imap</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Igor Muratov">migor</reporter>
          <assigned_to name="Alexey Gladkov">legion</assigned_to>
          <cc>legion</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>17593</commentid>
    <comment_count>0</comment_count>
    <who name="Igor Muratov">migor</who>
    <bug_when>2004-07-27 18:26:36 +0400</bug_when>
    <thetext>Plese apply this patch. This add acl management funccionality to the php-imap module


diff -b -r -U5 php4-4.2.3/ext/imap/php_imap.c php-4.2.3.patched/ext/imap/php_ima
p.c
--- php4-4.2.3/ext/imap/php_imap.c      Mon Aug 26 03:58:31 2002
+++ php-4.2.3.patched/ext/imap/php_imap.c       Fri May 16 16:23:12 2003
@@ -133,10 +133,11 @@
 
 #if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001)
        PHP_FE(imap_get_quota,                                                  
NULL)
        PHP_FE(imap_set_quota,                                                  
NULL)
        PHP_FE(imap_setacl,                                                     
        NULL)
+       PHP_FE(imap_getacl,                                                     
        NULL)
 #endif
 
        PHP_FE(imap_mail,                                                       
        NULL)
 
        PHP_FALIAS(imap_header,                 imap_headerinfo,        NULL)
@@ -384,10 +385,29 @@
                IMAPG(quota_usage) = qlist-&gt;usage;
                IMAPG(quota_limit) = qlist-&gt;limit;
        }
 }
 /* }}} */
+
+
+/* {{{ mail_getquota 
+ *
+ * Mail GET_ACL callback
+ * Called via the mail_parameter function in c-client:src/c-client/mail.c
+ */
+void mail_getacl(MAILSTREAM *stream, char *mailbox, ACLLIST *alist)
+{
+       TSRMLS_FETCH();
+
+       /* walk through the ACLLIST */
+       for (; alist; alist = alist-&gt;next)
+       {
+               add_assoc_stringl(IMAPG(imap_acl_list), alist-&gt;identifier, alist
-&gt;rights, strlen(alist-&gt;rights), 1);
+       }
+
+}
+/* }}} */
 #endif
 
 /* {{{ php_imap_init_globals
  */
 static void php_imap_init_globals(zend_imap_globals *imap_globals)
@@ -406,10 +426,11 @@
        imap_globals-&gt;imap_messages_tail = NIL;
        imap_globals-&gt;imap_folder_objects = NIL;
        imap_globals-&gt;imap_folder_objects_tail = NIL;
        imap_globals-&gt;imap_sfolder_objects = NIL;
        imap_globals-&gt;imap_sfolder_objects_tail = NIL;
+       imap_globals-&gt;imap_acl_list = NIL;
 
        imap_globals-&gt;folderlist_style = FLIST_ARRAY;
 }
 /* }}} */
 
@@ -1105,10 +1126,41 @@
 
        RETURN_LONG(imap_setacl(imap_le_struct-&gt;imap_stream, Z_STRVAL_PP(mailbox
), Z_STRVAL_PP(id), Z_STRVAL_PP(rights)));
 }
 /* }}} */
 
+
+/* {{{ proto array imap_get_quota(int stream_id, string mailbox)
+       Gets the ACL for a given mailbox */
+PHP_FUNCTION(imap_getacl)
+{
+       zval **streamind, **mailbox;
+       pils *imap_le_struct;
+
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &amp;streamind, &amp;mailb
ox) == FAILURE) {
+               ZEND_WRONG_PARAM_COUNT();
+       }
+
+       ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, &quot;imap&quot;, le_im
ap);
+
+       convert_to_string_ex(mailbox);
+
+    /* initializing the special array for the return values */
+    array_init(return_value);
+
+    IMAPG(imap_acl_list) = return_value;
+
+       /* set the callback for the GET_ACL function */
+       mail_parameters(NIL, SET_ACL, (void *) mail_getacl);
+       if(!imap_getacl(imap_le_struct-&gt;imap_stream, Z_STRVAL_PP(mailbox))) {
+               php_error(E_WARNING, &quot;c-client imap_getacl failed&quot;);
+               RETURN_FALSE;
+       }
+
+    IMAPG(imap_acl_list) = NIL;
+}
+/* }}} */
 #endif /* HAVE_IMAP2000 || HAVE_IMAP2001 */
 
 
 /* {{{ proto int imap_expunge(int stream_id)
    Permanently delete all messages marked for deletion */
diff -b -r -U5 php4-4.2.3/ext/imap/php_imap.h php-4.2.3.patched/ext/imap/php_ima
p.h
--- php4-4.2.3/ext/imap/php_imap.h      Mon Aug 26 03:58:32 2002
+++ php-4.2.3.patched/ext/imap/php_imap.h       Thu Apr 24 16:28:42 2003
@@ -177,10 +177,11 @@
 
 #if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001)
 PHP_FUNCTION(imap_get_quota);
 PHP_FUNCTION(imap_set_quota);
 PHP_FUNCTION(imap_setacl);
+PHP_FUNCTION(imap_getacl);
 #endif
 
 
 ZEND_BEGIN_MODULE_GLOBALS(imap)
        char *imap_user;
@@ -208,10 +209,11 @@
        unsigned long status_uidnext;
        unsigned long status_uidvalidity;
 #if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001)
        unsigned long quota_usage;
        unsigned long quota_limit;
+       pval *imap_acl_list;
 #endif
 ZEND_END_MODULE_GLOBALS(imap)
 
 #ifdef ZTS
 # define IMAPG(v) TSRMG(imap_globals_id, zend_imap_globals *, v)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17851</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2004-08-05 19:43:40 +0400</bug_when>
    <thetext>Ну ты совсем !!!
А аттачметн сделать было слабо ? 
Добавь в аттач плиз!!!! </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17854</commentid>
    <comment_count>2</comment_count>
      <attachid>545</attachid>
    <who name="Igor Muratov">migor</who>
    <bug_when>2004-08-06 09:08:39 +0400</bug_when>
    <thetext>Created attachment 545
add acl functionality

Исправляюсь :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17858</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2004-08-06 13:38:25 +0400</bug_when>
    <thetext>Какова история этого патча?
Откуда он взялся?
Кто его поддерживает?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17874</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2004-08-06 21:02:08 +0400</bug_when>
    <thetext>Патч приложен к php-imap-4.3.9-alt0.cvs20040802 .</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>545</attachid>
            <date>2004-08-06 09:08:39 +0400</date>
            <delta_ts>2004-08-06 09:08:39 +0400</delta_ts>
            <desc>add acl functionality</desc>
            <filename>php4-imap-getacl.patch</filename>
            <type>text/plain</type>
            <size>3964</size>
            <attacher name="Igor Muratov">migor</attacher>
            
              <data encoding="base64">T25seSBpbiBwaHAtNC4yLjMucGF0Y2hlZC9leHQvaW1hcC86IE1ha2VmaWxlCk9ubHkgaW4gcGhw
LTQuMi4zLnBhdGNoZWQvZXh0L2ltYXAvOiBjb25maWcuY2FjaGUKT25seSBpbiBwaHAtNC4yLjMu
cGF0Y2hlZC9leHQvaW1hcC86IGNvbmZpZy5oCk9ubHkgaW4gcGhwLTQuMi4zLnBhdGNoZWQvZXh0
L2ltYXAvOiBjb25maWcubG9nCk9ubHkgaW4gcGhwLTQuMi4zLnBhdGNoZWQvZXh0L2ltYXAvOiBj
b25maWcuc3RhdHVzCk9ubHkgaW4gcGhwLTQuMi4zLnBhdGNoZWQvZXh0L2ltYXAvOiBjb25maWdf
dmFycy5tawpPbmx5IGluIHBocDQtNC4yLjMvZXh0L2ltYXAvOiBjb25mdGVzdApPbmx5IGluIHBo
cDQtNC4yLjMvZXh0L2ltYXAvOiBjb25mdGVzdC5jCk9ubHkgaW4gcGhwLTQuMi4zLnBhdGNoZWQv
ZXh0L2ltYXAvOiBsaWJ0b29sCmRpZmYgLWIgLXIgLVU1IHBocDQtNC4yLjMvZXh0L2ltYXAvcGhw
X2ltYXAuYyBwaHAtNC4yLjMucGF0Y2hlZC9leHQvaW1hcC9waHBfaW1hcC5jCi0tLSBwaHA0LTQu
Mi4zL2V4dC9pbWFwL3BocF9pbWFwLmMJTW9uIEF1ZyAyNiAwMzo1ODozMSAyMDAyCisrKyBwaHAt
NC4yLjMucGF0Y2hlZC9leHQvaW1hcC9waHBfaW1hcC5jCUZyaSBNYXkgMTYgMTY6MjM6MTIgMjAw
MwpAQCAtMTMzLDEwICsxMzMsMTEgQEAKIAogI2lmIGRlZmluZWQoSEFWRV9JTUFQMjAwMCkgfHwg
ZGVmaW5lZChIQVZFX0lNQVAyMDAxKQogCVBIUF9GRShpbWFwX2dldF9xdW90YSwJCQkJCQkJTlVM
TCkKIAlQSFBfRkUoaW1hcF9zZXRfcXVvdGEsCQkJCQkJCU5VTEwpCiAgCVBIUF9GRShpbWFwX3Nl
dGFjbCwJCQkJCQkJCU5VTEwpCisgCVBIUF9GRShpbWFwX2dldGFjbCwJCQkJCQkJCU5VTEwpCiAj
ZW5kaWYKIAogCVBIUF9GRShpbWFwX21haWwsCQkJCQkJCQlOVUxMKQogCiAJUEhQX0ZBTElBUyhp
bWFwX2hlYWRlciwgCQlpbWFwX2hlYWRlcmluZm8sCU5VTEwpCkBAIC0zODQsMTAgKzM4NSwyOSBA
QAogCQlJTUFQRyhxdW90YV91c2FnZSkgPSBxbGlzdC0+dXNhZ2U7CiAJCUlNQVBHKHF1b3RhX2xp
bWl0KSA9IHFsaXN0LT5saW1pdDsKIAl9CiB9CiAvKiB9fX0gKi8KKworCisvKiB7e3sgbWFpbF9n
ZXRxdW90YSAKKyAqCisgKiBNYWlsIEdFVF9BQ0wgY2FsbGJhY2sKKyAqIENhbGxlZCB2aWEgdGhl
IG1haWxfcGFyYW1ldGVyIGZ1bmN0aW9uIGluIGMtY2xpZW50OnNyYy9jLWNsaWVudC9tYWlsLmMK
KyAqLwordm9pZCBtYWlsX2dldGFjbChNQUlMU1RSRUFNICpzdHJlYW0sIGNoYXIgKm1haWxib3gs
IEFDTExJU1QgKmFsaXN0KQoreworCVRTUk1MU19GRVRDSCgpOworCisJLyogd2FsayB0aHJvdWdo
IHRoZSBBQ0xMSVNUICovCisJZm9yICg7IGFsaXN0OyBhbGlzdCA9IGFsaXN0LT5uZXh0KQorCXsK
KwkJYWRkX2Fzc29jX3N0cmluZ2woSU1BUEcoaW1hcF9hY2xfbGlzdCksIGFsaXN0LT5pZGVudGlm
aWVyLCBhbGlzdC0+cmlnaHRzLCBzdHJsZW4oYWxpc3QtPnJpZ2h0cyksIDEpOworCX0KKworfQor
LyogfX19ICovCiAjZW5kaWYKIAogLyoge3t7IHBocF9pbWFwX2luaXRfZ2xvYmFscwogICovCiBz
dGF0aWMgdm9pZCBwaHBfaW1hcF9pbml0X2dsb2JhbHMoemVuZF9pbWFwX2dsb2JhbHMgKmltYXBf
Z2xvYmFscykKQEAgLTQwNiwxMCArNDI2LDExIEBACiAJaW1hcF9nbG9iYWxzLT5pbWFwX21lc3Nh
Z2VzX3RhaWwgPSBOSUw7CiAJaW1hcF9nbG9iYWxzLT5pbWFwX2ZvbGRlcl9vYmplY3RzID0gTklM
OwogCWltYXBfZ2xvYmFscy0+aW1hcF9mb2xkZXJfb2JqZWN0c190YWlsID0gTklMOwogCWltYXBf
Z2xvYmFscy0+aW1hcF9zZm9sZGVyX29iamVjdHMgPSBOSUw7CiAJaW1hcF9nbG9iYWxzLT5pbWFw
X3Nmb2xkZXJfb2JqZWN0c190YWlsID0gTklMOworCWltYXBfZ2xvYmFscy0+aW1hcF9hY2xfbGlz
dCA9IE5JTDsKIAogCWltYXBfZ2xvYmFscy0+Zm9sZGVybGlzdF9zdHlsZSA9IEZMSVNUX0FSUkFZ
OwogfQogLyogfX19ICovCiAKQEAgLTExMDUsMTAgKzExMjYsNDEgQEAKIAogCVJFVFVSTl9MT05H
KGltYXBfc2V0YWNsKGltYXBfbGVfc3RydWN0LT5pbWFwX3N0cmVhbSwgWl9TVFJWQUxfUFAobWFp
bGJveCksIFpfU1RSVkFMX1BQKGlkKSwgWl9TVFJWQUxfUFAocmlnaHRzKSkpOwogfQogLyogfX19
ICovCiAKKworLyoge3t7IHByb3RvIGFycmF5IGltYXBfZ2V0X3F1b3RhKGludCBzdHJlYW1faWQs
IHN0cmluZyBtYWlsYm94KQorCUdldHMgdGhlIEFDTCBmb3IgYSBnaXZlbiBtYWlsYm94ICovCitQ
SFBfRlVOQ1RJT04oaW1hcF9nZXRhY2wpCit7CisJenZhbCAqKnN0cmVhbWluZCwgKiptYWlsYm94
OworCXBpbHMgKmltYXBfbGVfc3RydWN0OworCisJaWYgKFpFTkRfTlVNX0FSR1MoKSAhPSAyIHx8
IHplbmRfZ2V0X3BhcmFtZXRlcnNfZXgoMiwgJnN0cmVhbWluZCwgJm1haWxib3gpID09IEZBSUxV
UkUpIHsKKwkJWkVORF9XUk9OR19QQVJBTV9DT1VOVCgpOworCX0KKworCVpFTkRfRkVUQ0hfUkVT
T1VSQ0UoaW1hcF9sZV9zdHJ1Y3QsIHBpbHMgKiwgc3RyZWFtaW5kLCAtMSwgImltYXAiLCBsZV9p
bWFwKTsKKworCWNvbnZlcnRfdG9fc3RyaW5nX2V4KG1haWxib3gpOworCisgICAgLyogaW5pdGlh
bGl6aW5nIHRoZSBzcGVjaWFsIGFycmF5IGZvciB0aGUgcmV0dXJuIHZhbHVlcyAqLworICAgIGFy
cmF5X2luaXQocmV0dXJuX3ZhbHVlKTsKKworICAgIElNQVBHKGltYXBfYWNsX2xpc3QpID0gcmV0
dXJuX3ZhbHVlOworCisJLyogc2V0IHRoZSBjYWxsYmFjayBmb3IgdGhlIEdFVF9BQ0wgZnVuY3Rp
b24gKi8KKwltYWlsX3BhcmFtZXRlcnMoTklMLCBTRVRfQUNMLCAodm9pZCAqKSBtYWlsX2dldGFj
bCk7CisJaWYoIWltYXBfZ2V0YWNsKGltYXBfbGVfc3RydWN0LT5pbWFwX3N0cmVhbSwgWl9TVFJW
QUxfUFAobWFpbGJveCkpKSB7CisJCXBocF9lcnJvcihFX1dBUk5JTkcsICJjLWNsaWVudCBpbWFw
X2dldGFjbCBmYWlsZWQiKTsKKwkJUkVUVVJOX0ZBTFNFOworCX0KKworICAgIElNQVBHKGltYXBf
YWNsX2xpc3QpID0gTklMOworfQorLyogfX19ICovCiAjZW5kaWYgLyogSEFWRV9JTUFQMjAwMCB8
fCBIQVZFX0lNQVAyMDAxICovCiAKIAogLyoge3t7IHByb3RvIGludCBpbWFwX2V4cHVuZ2UoaW50
IHN0cmVhbV9pZCkKICAgIFBlcm1hbmVudGx5IGRlbGV0ZSBhbGwgbWVzc2FnZXMgbWFya2VkIGZv
ciBkZWxldGlvbiAqLwpkaWZmIC1iIC1yIC1VNSBwaHA0LTQuMi4zL2V4dC9pbWFwL3BocF9pbWFw
LmggcGhwLTQuMi4zLnBhdGNoZWQvZXh0L2ltYXAvcGhwX2ltYXAuaAotLS0gcGhwNC00LjIuMy9l
eHQvaW1hcC9waHBfaW1hcC5oCU1vbiBBdWcgMjYgMDM6NTg6MzIgMjAwMgorKysgcGhwLTQuMi4z
LnBhdGNoZWQvZXh0L2ltYXAvcGhwX2ltYXAuaAlUaHUgQXByIDI0IDE2OjI4OjQyIDIwMDMKQEAg
LTE3NywxMCArMTc3LDExIEBACiAKICNpZiBkZWZpbmVkKEhBVkVfSU1BUDIwMDApIHx8IGRlZmlu
ZWQoSEFWRV9JTUFQMjAwMSkKIFBIUF9GVU5DVElPTihpbWFwX2dldF9xdW90YSk7CiBQSFBfRlVO
Q1RJT04oaW1hcF9zZXRfcXVvdGEpOwogUEhQX0ZVTkNUSU9OKGltYXBfc2V0YWNsKTsKK1BIUF9G
VU5DVElPTihpbWFwX2dldGFjbCk7CiAjZW5kaWYKIAogCiBaRU5EX0JFR0lOX01PRFVMRV9HTE9C
QUxTKGltYXApCiAJY2hhciAqaW1hcF91c2VyOwpAQCAtMjA4LDEwICsyMDksMTEgQEAKIAl1bnNp
Z25lZCBsb25nIHN0YXR1c191aWRuZXh0OwogCXVuc2lnbmVkIGxvbmcgc3RhdHVzX3VpZHZhbGlk
aXR5OwogI2lmIGRlZmluZWQoSEFWRV9JTUFQMjAwMCkgfHwgZGVmaW5lZChIQVZFX0lNQVAyMDAx
KQogCXVuc2lnbmVkIGxvbmcgcXVvdGFfdXNhZ2U7CiAJdW5zaWduZWQgbG9uZyBxdW90YV9saW1p
dDsKKwlwdmFsICppbWFwX2FjbF9saXN0OwogI2VuZGlmCiBaRU5EX0VORF9NT0RVTEVfR0xPQkFM
UyhpbWFwKQogCiAjaWZkZWYgWlRTCiAjIGRlZmluZSBJTUFQRyh2KSBUU1JNRyhpbWFwX2dsb2Jh
bHNfaWQsIHplbmRfaW1hcF9nbG9iYWxzICosIHYpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>