1
0
mirror of https://github.com/imapsync/imapsync.git synced 2024-11-17 08:12:48 +01:00
imapsync/patches/imapsync-pb-acl.diff
Nick Bebout 1d6b1c8c48 1.127
2011-03-12 02:44:14 +00:00

59 lines
1.7 KiB
Diff

--- imapsync.orig Fri Apr 22 03:12:18 2005
+++ imapsync Mon May 2 11:16:51 2005
@@ -580,7 +580,7 @@
foreach my $f_fold (@f_folders) {
my $stot = 0;
my $smess = 0;
- printf("From Folder %-25s", "[$f_fold]");
+ printf("From Folder %-35s", "[$f_fold]");
unless ($from->select($f_fold)) {
warn
"From Folder $f_fold : Could not select ",
@@ -694,6 +694,25 @@
}
}
+ if ($syncacls) {
+ my $f_hash = $from->getacl($f_fold)
+ or warn "Could not getacl for $f_fold: $@\n";
+ my $t_hash = $to->getacl($t_fold)
+ or warn "Could not getacl for $t_fold: $@\n";
+ my %users = map({ ($_, 1) } (keys(%$f_hash), keys(%$t_hash)));
+ foreach my $user (sort(keys(%users))) {
+ my $acl = $f_hash->{$user} || "none";
+ print "acl $user : [$acl]\n";
+ next if ($f_hash->{$user} && $t_hash->{$user} &&
+ $f_hash->{$user} eq $t_hash->{$user});
+ unless ($dry) {
+ print "setting acl $t_fold $user $acl\n";
+ $to->setacl($t_fold, $user, $acl)
+ or warn "Could not set acl: $@\n";
+ }
+ }
+ }
+
unless ($to->select($t_fold)) {
warn
"To Folder $t_fold : Could not select ",
@@ -711,20 +730,6 @@
if ($subscribe and exists $fs_folders{$f_fold}) {
print "Subscribing to folder $t_fold on destination server\n";
unless($dry) { $to->subscribe($t_fold) };
- }
-
- if ($syncacls) {
- my $hash = $from->getacl($f_fold)
- or warn "Could not getacl for $f_fold: $@\n";
- foreach my $user (keys(%$hash)) {
- my $acl = $hash->{$user};
- print "acl $user : " . $acl . "\n";
- unless ($dry) {
- print "setting acl $t_fold $user $acl\n";
- $to->setacl($t_fold, $user, $acl)
- or warn "Could not set acl: $@\n";
- }
- }
}
next FOLDER if ($justfolders);