Changeset 92 for LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ad/objects.pm
- Timestamp:
- 05/12/09 16:40:07 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ad/objects.pm
r81 r92 108 108 109 109 $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; 111 112 } 112 113 … … 132 133 } 133 134 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 here147 foreach my $entry ($mesg->entries) {148 push(@res, $entry);149 }150 }151 @res152 }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 @res174 }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 191 135 1; 192 136
Note: See TracChangeset
for help on using the changeset viewer.