Ignore:
Timestamp:
05/12/09 16:40:07 (15 years ago)
Author:
nanardon
Message:
  • allow to set memberUID everywhere
File:
1 edited

Legend:

Unmodified
Added
Removed
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ad/objects.pm

    r81 r92  
    108108 
    109109    $field eq 'dn' and return $self->{entry}->dn; 
    110     return $self->{entry}->get_value($field); 
     110    my ($first, @others) = $self->{entry}->get_value($field); 
     111    return @others ? [ sort($first, @others) ] : $first; 
    111112} 
    112113 
     
    132133} 
    133134 
    134 sub get_group_users { 
    135     my ($self, $groupname, @searchargs) = @_; 
    136     my $gr = $self->get_group($groupname, attrs => [ qw(cn member) ]); 
    137  
    138     my @res; 
    139     foreach my $dnu (@{ $gr->get_value('member', asref => 1) || [] }) { 
    140         my $mesg = $self->search( 
    141             filter => '(objectClass=*)', # TODO can we get something else than user ? 
    142             @searchargs, 
    143             base => $dnu, 
    144         ); 
    145  
    146         $mesg->code and return; # ensure error is propagate here 
    147         foreach my $entry ($mesg->entries) { 
    148            push(@res, $entry); 
    149        }  
    150     } 
    151     @res 
    152 } 
    153  
    154 sub get_user_groups { 
    155     my ($self, $username, @searchargs) = @_; 
    156     my $user = $self->get_user($username); 
    157  
    158     my @res; 
    159     $self->unlimited_search( 
    160         base => $self->top_dn, 
    161         filter => sprintf( 
    162             '(&(objectClass=group)(member=%s))', 
    163             escape_filter_value($user->dn), 
    164         ), 
    165         @searchargs, 
    166         callback => sub { 
    167             my ($mesg, $entry) = @_; 
    168             ref $entry eq 'Net::LDAP::Entry' or return; 
    169             push(@res, $entry); 
    170         }, 
    171     ); 
    172  
    173     @res 
    174 } 
    175  
    176 sub add_user_group { 
    177     my ($self, $username, $groupname) = @_; 
    178  
    179     my $user = $self->get_user($username) or return; 
    180     my $group = $self->get_group($groupname) or return; 
    181  
    182     $group->add(member => $user->dn); 
    183  
    184     my $mesg = $group->update($self); 
    185     if ($mesg->code) { 
    186         warn $mesg->error; 
    187         return; 
    188     } else { return 1 }; 
    189 } 
    190  
    1911351; 
    192136 
Note: See TracChangeset for help on using the changeset viewer.