Changeset 398


Ignore:
Timestamp:
08/27/09 15:22:43 (15 years ago)
Author:
nanardon
Message:
  • add -r option allowing to remove groups/users instead adding
Location:
LATMOS-Accounts/bin
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LATMOS-Accounts/bin/la-group

    r397 r398  
    1515=head1 SYNOPSIS 
    1616 
    17     la-create [options] group user1 [user2 [...]] 
     17    la-create [options] [-s|-r] group user1 [user2 [...]] 
    1818 
    1919=cut 
     
    2323    'b|base=s'   => \my $base, 
    2424    's'          => \my $set, 
     25    'r'          => \my $remove, 
    2526    'help'       => sub { pod2usage(0) }, 
    2627) or pod2usage(); 
     28 
     29$set && $remove and do { 
     30    warn "-s and -r cannot be used together\n"; 
     31    pod2usage(); 
     32    exit 1; 
     33}; 
    2734 
    2835my $otype = 'group'; 
     
    4047Query this specific base instead default. 
    4148 
     49=item -r 
     50 
     51Remove users list instead adding (cannot be used with -s) 
     52 
    4253=item -s 
    4354 
    44 Set member list to user list instead of adding 
     55Set member list to user list instead of adding (cannot be used with -r) 
    4556 
    4657=back 
     
    6879    my @current_users = $obj->get_attributes('member'); 
    6980    my %uniq_users; 
    70     foreach (($set ? () : @current_users), @users) { 
    71         $uniq_users{$_} = 1; 
     81    if ($set) { 
     82        foreach (@users) { 
     83            $uniq_users{$_} = 1; 
     84        } 
     85    } else { 
     86        foreach (@current_users) { 
     87            $uniq_users{$_} = 1; 
     88        } 
     89        if ($remove) { 
     90            foreach (@users) { 
     91                delete $uniq_users{$_}; 
     92            } 
     93        } 
    7294    } 
    7395    my @new_users = keys %uniq_users; 
  • LATMOS-Accounts/bin/la-guser

    r397 r398  
    1515=head1 SYNOPSIS 
    1616 
    17     la-create [options] user group1 [group2 [...]] 
     17    la-create [options] [-s|-r] user group1 [group2 [...]] 
    1818 
    1919=cut 
     
    2323    'b|base=s'   => \my $base, 
    2424    's'          => \my $set, 
     25    'r'          => \my $remove, 
    2526    'help'       => sub { pod2usage(0) }, 
    2627) or pod2usage(); 
     28 
     29$set && $remove and do {                                               
     30    warn "-s and -r cannot be used together\n";                        
     31    pod2usage();                                                       
     32    exit 1;                                                            
     33};   
    2734 
    2835my $otype = 'user'; 
     
    4047Query this specific base instead default. 
    4148 
     49=item -r 
     50 
     51Remove user from groups instead adding (cannot be used with -s) 
     52 
    4253=item -s 
    4354 
    44 Set member list to user list instead of adding 
     55Set member list to user list instead of adding (cannot be used with -r) 
    4556 
    4657=back 
     
    6879    my @current_groups = $obj->get_attributes('memberOf'); 
    6980    my %uniq_groups; 
    70     foreach (($set ? () : @current_groups), @groups) { 
    71         $uniq_groups{$_} = 1; 
     81    if ($set) { 
     82        foreach (@groups) { 
     83            $uniq_groups{$_} = 1; 
     84        } 
     85    } else { 
     86        foreach (@current_groups) { 
     87            $uniq_groups{$_} = 1; 
     88        } 
     89        if ($remove) { 
     90            foreach (@groups) { 
     91                delete $uniq_groups{$_}; 
     92            } 
     93        } 
    7294    } 
    7395    my @new_groups = keys %uniq_groups; 
Note: See TracChangeset for help on using the changeset viewer.