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