- Timestamp:
- 03/20/15 18:48:21 (9 years ago)
- Location:
- branches/4.0
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/4.0
- Property svn:mergeinfo changed
/trunk merged: 1286-1288,1293
- Property svn:mergeinfo changed
-
branches/4.0/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/User.pm
r1284 r1294 521 521 }; 522 522 $attr =~ /^memberOf$/ and do { 523 my %member ;523 my %members; 524 524 my $memberof = $self->get_field('memberOf'); 525 525 foreach (ref $memberof 526 526 ? @{ $memberof } 527 527 : $memberof || ()) { 528 $member {$_}{c} = 1;528 $members{$_}{c} = 1; 529 529 } 530 530 foreach (grep { $_ } ref $data{$attr} ? @{ $data{$attr} || []} : $data{$attr}) { 531 $member{$_}{n} = 1; 532 } 533 534 foreach (keys %member) { 535 $member{$_}{c} && $member{$_}{n} and next; # no change ! 536 my $group = $self->base->get_object('group', $_) or next; 531 $members{$_}{n} = 1; 532 } 533 534 foreach my $member (keys %members) { 535 $members{$member}{c} && $members{$member}{n} and next; # no change ! 536 my $group = $self->base->get_object('group', $member) or do { 537 la_log(LA_WARN, "Cannot get group %s to set members", $member); 538 next; 539 }; 537 540 ($group->_get_c_field('sutype') || '') =~ /^(jobtype|contrattype)$/ and next; 538 if ($member{$_}{n}) { 539 my $sth = $self->db->prepare_cached( 540 q{insert into group_attributes_users (value, attr, okey) values (?,?,?)} 541 ); 542 $sth->execute($self->id, 'memberUID', $group->_get_ikey); 543 $res++; 544 } elsif ($member{$_}{c}) { 545 if (($self->get_c_field('department') || '') eq $group->id) { 541 if ($members{$member}{n}) { 542 my @newmembers = $group->get_attributes('memberUID'); 543 $res += $group->_set_c_fields('memberUID', [ $self->id, @newmembers ]); 544 } elsif ($members{$member}{c}) { 545 if (($self->_get_c_field('department') || '') eq $group->id) { 546 546 $self->base->log(LA_WARN, 547 547 "Don't removing user %s from group %s: is it's department", … … 549 549 next; 550 550 } 551 my $sth = $self->db->prepare_cached( 552 q{delete from group_attributes_users where value = ? and attr = ? and okey = ?} 553 ); 554 $sth->execute($self->id, 'memberUID', $group->_get_ikey); 555 $res++; 551 my @newmembers = grep { $_ ne $self->id } $group->get_attributes('memberUID'); 552 $res += $group->_set_c_fields('memberUID', [ @newmembers ]); 556 553 } # else {} # can't happend 557 554 }
Note: See TracChangeset
for help on using the changeset viewer.