acl.pm
branchfoerste
changeset 61 e0895d4224f2
parent 58 dd04534fe595
child 63 96f567261e87
equal deleted inserted replaced
60:3293084cfdd9 61:e0895d4224f2
    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