Changeset 92 for LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ad/Group.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/Group.pm
r91 r92 39 39 sub _key_attr { 'cn' } 40 40 41 sub _delayed_fields { 42 my ($self)= @_; 43 return qw(memberUID member); 44 } 45 41 46 sub _canonical_fields { 42 47 my ($self, $base, $mode) = @_; 43 48 ( 44 qw(gidNumber description sAMAccountName member ),49 qw(gidNumber description sAMAccountName member memberUID), 45 50 ($mode !~ /w/ 46 51 ? qw(cn dn) … … 84 89 }, 85 90 ); 91 sort(@res); 86 92 return \@res 93 }; 94 $field eq 'memberUID' and do { 95 my $val = $self->SUPER::get_field($field); 96 return ref $val ? $val : [ grep { $_ } $val ]; 87 97 }; 88 98 $self->SUPER::get_field($field); … … 93 103 my %ndata; 94 104 while (my ($f, $val) = each(%data)) { 105 $f eq 'memberUID' and do { 106 my %users; 107 $users{$_}{e} = 1 foreach (@{ $self->get_field('memberUID') || []}); 108 $users{$_}{n} = 1 foreach (@{ $val || []}); 109 foreach (keys %users) { 110 $users{$_}{e} && $users{$_}{n} and next; 111 my $user = $self->base->get_object('user', $_) or next; 112 if ($users{$_}{e}) { 113 $self->{entry}->del(memberUID => $_); 114 } elsif ($users{$_}{n}) { 115 $self->{entry}->add(memberUID => $_); 116 } # else {} # can't happen 117 my $mesg = $self->{entry}->update($self->base->ldap); 118 if ($mesg->code) { 119 warn $mesg->error; 120 } 121 } 122 next; 123 }; 95 124 $f eq 'member' and do { 96 125 my %users;
Note: See TracChangeset
for help on using the changeset viewer.