Changeset 158
- Timestamp:
- 05/22/09 04:55:03 (15 years ago)
- Location:
- LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/Group.pm
r154 r158 69 69 my $sth = $self->db->prepare_cached( 70 70 q{ 71 select "user".uid from users_groups join "user"72 on users_groups.uid = "user".uidNumber join73 "group" on "group".gidnumber = users_groups.gid74 where "group".groupname = ? order by uid71 select id from user_attributes_groups 72 join user_attributes_list on 73 user_attributes_groups.attr = user_attributes_list.ikey 74 where value = ? and canonical = ? 75 75 } 76 76 ); 77 $sth->execute($self->id );77 $sth->execute($self->id, 'memberOf'); 78 78 my @res; 79 79 while (my $res = $sth->fetchrow_hashref) { 80 push(@res, $res->{ uid});80 push(@res, $res->{id}); 81 81 } 82 82 return \@res; … … 91 91 foreach my $attr (keys %data) { 92 92 $attr =~ /^memberUID$/ and do { 93 my $gid = $self->get_field('gidnumber') or next; 93 my $cl = $self->base->_load_obj_class('user') or next; 94 my $attrid = $cl->_get_field_name_db('memberOf', $self->base) or next; 94 95 my %member; 95 96 foreach (@{ $self->get_field('memberUID') }) { … … 103 104 $member{$_}{c} && $member{$_}{n} and next; # no change ! 104 105 my $user = $self->base->get_object('user', $_) or next; 105 my $uid = $user->get_field('uidnumber') or next;106 106 if ($member{$_}{n}) { 107 107 my $sth = $self->db->prepare_cached( 108 q{insert into user s_groups (uid, gid) values (?,?)}108 q{insert into user_attributes_groups (id, attr, value) values (?,?,?)} 109 109 ); 110 $sth->execute($ uid, $gid);110 $sth->execute($_, $attrid, $self->id); 111 111 } elsif ($member{$_}{c}) { 112 112 my $sth = $self->db->prepare_cached( 113 q{delete from user s_groups where uid = ? and gid= ?}113 q{delete from user_attributes_groups where id = ? and attr = ? and value = ?} 114 114 ); 115 $sth->execute($ uid, $gid);115 $sth->execute($_, $attrid, $self->id); 116 116 } # else {} # can't happend 117 117 } -
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/User.pm
r156 r158 74 74 my $sth = $self->db->prepare_cached( 75 75 q{ 76 select groupname from users_groups join "user"77 on users_groups.uid = "user".uidnumber join78 "group" on "group".gidnumber = users_groups.gid79 where "user".uid = ? order by groupname76 select value from user_attributes_groups 77 join user_attributes_list on 78 user_attributes_groups.attr = user_attributes_list.ikey 79 where id = ? and canonical = ? 80 80 } 81 81 ); 82 $sth->execute($self->id );82 $sth->execute($self->id, 'memberOf'); 83 83 my @res; 84 84 while (my $res = $sth->fetchrow_hashref) { 85 push(@res, $res->{ groupname});85 push(@res, $res->{value}); 86 86 } 87 87 return \@res; … … 124 124 foreach my $attr (keys %data) { 125 125 $attr =~ /^memberOf$/ and do { 126 my $ uid = $self->get_field('uidnumber') or next;126 my $attrid = $self->_get_field_name_db('memberOf', $self->base) or next; 127 127 my %member; 128 128 foreach (@{ $self->get_field('memberOf') }) { … … 136 136 $member{$_}{c} && $member{$_}{n} and next; # no change ! 137 137 my $group = $self->base->get_object('group', $_) or next; 138 my $gid = $group->get_field('gidnumber') or next;139 138 if ($member{$_}{n}) { 140 139 my $sth = $self->db->prepare_cached( 141 q{insert into user s_groups (uid, gid) values (?,?)}140 q{insert into user_attributes_groups (id, attr, value) values (?,?,?)} 142 141 ); 143 $sth->execute($ uid, $gid);142 $sth->execute($self->id, $attrid, $_); 144 143 } elsif ($member{$_}{c}) { 145 144 my $sth = $self->db->prepare_cached( 146 q{delete from user s_groups where uid = ? and gid= ?}145 q{delete from user_attributes_groups where id = ? and attr = ? and value = ?} 147 146 ); 148 $sth->execute($ uid, $gid);147 $sth->execute($self->id, $attrid, $_); 149 148 } # else {} # can't happend 150 149 }
Note: See TracChangeset
for help on using the changeset viewer.