Changeset 88
- Timestamp:
- 05/11/09 22:46:45 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/Group.pm
r87 r88 94 94 $attr =~ /^memberUID$/ and do { 95 95 my $gid = $self->get_field('gid') or next; 96 if (join("\0", sort @{ $self->get_field('memberUID') }) eq97 join("\0", sort @{ $data{$attr} || []})) {98 next;96 my %member; 97 foreach (@{ $self->get_field('memberUID') }) { 98 $member{$_}{c} = 1; 99 99 } 100 $self->db->prepare_cached('delete from users_groups where gid = ?')101 ->execute($gid);102 100 foreach (@{ $data{$attr} || []}) { 101 $member{$_}{n} = 1; 102 } 103 104 foreach (keys %member) { 105 $member{$_}{c} && $member{$_}{n} and next; # no change ! 103 106 my $user = $self->base->get_object('user', $_) or next; 104 107 my $uid = $user->get_field('uid') or next; 105 my $sth = $self->db->prepare_cached( 106 q{insert into users_groups (uid, gid) values (?,?)} 107 ); 108 $sth->execute($uid, $gid); 108 if ($member{$_}{n}) { 109 my $sth = $self->db->prepare_cached( 110 q{insert into users_groups (uid, gid) values (?,?)} 111 ); 112 $sth->execute($uid, $gid); 113 } elsif ($member{$_}{c}) { 114 my $sth = $self->db->prepare_cached( 115 q{delete from users_groups where uid = ? and gid = ?} 116 ); 117 $sth->execute($uid, $gid); 118 } # else {} # can't happend 109 119 } 110 120 next;
Note: See TracChangeset
for help on using the changeset viewer.