equal
deleted
inserted
replaced
92 } |
92 } |
93 |
93 |
94 if ( $Cf->list ) { _list() } |
94 if ( $Cf->list ) { _list() } |
95 elsif ( $Cf->modify ) { _modify() } |
95 elsif ( $Cf->modify ) { _modify() } |
96 elsif ( $Cf->delete ) { $Cf->acl('delete') ; _modify() } |
96 elsif ( $Cf->delete ) { $Cf->acl('delete') ; _modify() } |
97 else { die "Need action (--modify|--list)\n" } |
97 else { die "Need action (--delete|--modify|--list)\n" } |
98 |
98 |
99 } |
99 } |
100 |
100 |
101 sub _modify() { |
101 sub _modify() { |
102 |
102 |
261 |
261 |
262 my $folders = imap_rlist( '', $n->[0], $n->[1] ); |
262 my $folders = imap_rlist( '', $n->[0], $n->[1] ); |
263 for my $f ( @{$folders} ) { |
263 for my $f ( @{$folders} ) { |
264 |
264 |
265 #next if '\\Noselect' ~~ $f->[0]; |
265 #next if '\\Noselect' ~~ $f->[0]; |
266 my $perms = $imap->getacl( $f ) or die $@; |
266 my $perms = $imap->getacl( $f ) or die "Can't getacl '$f': $@"; |
267 my ($u, $p); |
267 my ($u, $p); |
268 while ($u = shift @{$perms} and $p = shift @{$perms}) { |
268 while ($u = shift @{$perms} and $p = shift @{$perms}) { |
269 next unless $u eq $uid; |
269 next unless $u eq $uid; |
270 $hasacl = 1; |
270 $hasacl = 1; |
271 print "\t$f: $u [$p]\n"; |
271 print "\t$f: $u [$p]\n"; |
293 |
293 |
294 my $perms = $imap->getacl( $f ) or die $@; |
294 my $perms = $imap->getacl( $f ) or die $@; |
295 my ($u, $p); |
295 my ($u, $p); |
296 while ($u = shift @{$perms} and $p = shift @{$perms}) { |
296 while ($u = shift @{$perms} and $p = shift @{$perms}) { |
297 |
297 |
298 # use Data::Dumper; |
|
299 # warn Dumper([ $Cf->acl_admin, $Cf->imap_admin, '#' . $Cf->acl_admin, '#' . $Cf->imap_admin ]); |
|
300 |
|
301 # '#user' will be listed when we have a global acl for 'user' |
298 # '#user' will be listed when we have a global acl for 'user' |
302 next if $u ~~ [ $Cf->acl_admin, $Cf->imap_admin, '#' . $Cf->acl_admin, '#' . $Cf->imap_admin ]; |
299 my $gl = $u =~ /^#/ ? ' [global acl]' : ''; |
|
300 my $gr = $u =~ /^\$/ ? ' [group acl]' : ''; |
303 $hasacl = 1; |
301 $hasacl = 1; |
304 print "\t$u [$p]\n"; |
302 print "\t$u [$p]$gr$gl\n"; |
305 } |
303 } |
306 |
304 |
307 print "\tno acl found\n" unless $hasacl; |
305 print "\tno acl found\n" unless $hasacl; |
308 print "\n"; |
306 print "\n"; |
309 |
307 |