Re: please HELP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




I'm trying to fix the mailboxes with something like this:

        imap_setacl ($mbox, "user/".$argv[1]."/*", $wrongname."todelete", "");         imap_setacl ($mbox, "user/".$argv[1]."/*", $argv[1], "lrswipkxtea");

But it seems imap_setacl can't use wildcards. And I can't write one by one by hand.

Anyone can help me with that?

The full php script is below:

<?php
        if ($argc < 2 )
        {
            exit( "Usage: ./rename.php LOGIN (without TODELETE)\nUse ^ instead of DOTS\n\n" );
        }

        $mbox = imap_open("{localhost:143/novalidate-cert}", "admin", "<SECRET>", OP_HALFOPEN) or die("can't connect: " . imap_last_error());

        imap_renamemailbox($mbox, "{localhost:143}user/".$argv[1]."TODELETE", "{localhost:143}user/".$argv[1]) or die("can't rename, already exists?: " . imap_last_error());

        $wrongname = str_replace("^", ".", $argv[1]);
        imap_setacl ($mbox, "user/".$argv[1], $wrongname."todelete", "") or print("can't remove $wrongname todelete of $argv[1]\n");         imap_setacl ($mbox, "user/".$argv[1]."/*", $wrongname."todelete", "") or print("can't remove $wrongname todelete of $argv[1]/*\n");

        imap_setacl ($mbox, "user/".$argv[1], $argv[1], "lrswipkxtea") or print("can't set $argv[1] with lrswipkxtea into $argv[1]\n");         imap_setacl ($mbox, "user/".$argv[1]."/*", $argv[1], "lrswipkxtea") or print("can't set $argv[1] with lrswipkxtea into $argv[1]/*\n");

        imap_close($mbox);
        shell_exec("cyrus reconstruct -x -r -f user/".$argv[1]);
?>

--
Atenciosamente / Best Regards,

Heiler Bemerguy
Network Manager - CINBESA
55 91 98151-4894/3184-1751

Em 22/01/2018 22:09, Patrick Boutilier escreveu:
On 01/22/2018 07:55 PM, Heiler Bemerguy via Info-cyrus wrote:

The way I interpret it is that the / means unixhierarchysep is on.

Just tested this on 2.4.18 and the same thing happens. When you rename back no messages are listed and reconstruct does nothing.

Ah. As suspected the rights are wrong. You just need to set the rights back to the real user. You probably need to use / instead of .

localhost> lam user.test
testtodelete lrswipkxtecda

localhost> sam user.test test lrswipkxtecda

localhost> lam user.test
testtodelete lrswipkxtecda
test lrswipkxtecda

localhost> sam user.test testtodelete ''

localhost> lam user.test
test lrswipkxtecda

localhost> lam user/asaude
asaudetodelete lrswipkxtecda
localhost> lam user/ana^claudia
ana.claudiatodelete lrswipkxtecda
localhost>

OMG it's completely borked. Why did it happen? How it changed to "TODELETE" but didn't change back hours later?!?

Just looks like a bug.

 Maybe was the capital
letters?!

Yup. I tested and using capital letters causes this behaviour.



Then I'll have to change one by one? with "sam"? Could you please explain what you did? I understood the LAMs but didn't the SAMs lol it seems in your case you had two acls?! a right and a wrong?


You will have to change the rights somehow. Should be able to do it with a PHP or perl script.

Correct, need to remove the wrong ACL and put the correct one on. For example:

sam user/asaude asaudetodelete ''
sam user/asaude asaude lrswipkxtecda

First sam deletes the wrong ACL, second sam adds the correct one.

Of course those only get the InBox. For folders you will have to also do something like:

sam user/asaude/* asaudetodelete ''
sam user/asaude/* asaude lrswipkxtecda

----
Cyrus Home Page: http://www.cyrusimap.org/
List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
To Unsubscribe:
https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus




[Index of Archives]     [Cyrus SASL]     [Squirrel Mail]     [Asterisk PBX]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [KDE]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux