Changeset 181
- Timestamp:
- 05/25/09 02:29:23 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ad.pm
r74 r181 220 220 $page->cookie($cookie); 221 221 $page->size(0); 222 $self-> search(@args, control => [ $page ]);222 $self->ldap->search(@args, control => [ $page ]); 223 223 } 224 224 return 1; … … 233 233 } 234 234 235 sub get_group_users {236 my ($self, $groupname, @searchargs) = @_;237 my $gr = $self->get_group($groupname, attrs => [ qw(cn member) ]);238 239 my @res;240 foreach my $dnu (@{ $gr->get_value('member', asref => 1) || [] }) {241 my $mesg = $self->search(242 filter => '(objectClass=*)', # TODO can we get something else than user ?243 @searchargs,244 base => $dnu,245 );246 247 $mesg->code and return; # ensure error is propagate here248 foreach my $entry ($mesg->entries) {249 push(@res, $entry);250 }251 }252 @res253 }254 255 sub get_user_groups {256 my ($self, $username, @searchargs) = @_;257 my $user = $self->get_user($username);258 259 my @res;260 $self->unlimited_search(261 base => $self->top_dn,262 filter => sprintf(263 '(&(objectClass=group)(member=%s))',264 escape_filter_value($user->dn),265 ),266 @searchargs,267 callback => sub {268 my ($mesg, $entry) = @_;269 ref $entry eq 'Net::LDAP::Entry' or return;270 push(@res, $entry);271 },272 );273 274 @res275 }276 277 sub add_user_group {278 my ($self, $username, $groupname) = @_;279 280 my $user = $self->get_user($username) or return;281 my $group = $self->get_group($groupname) or return;282 283 $group->add(member => $user->dn);284 285 my $mesg = $group->update($self);286 if ($mesg->code) {287 warn $mesg->error;288 return;289 } else { return 1 };290 }291 292 235 1; 293 236
Note: See TracChangeset
for help on using the changeset viewer.