[system] / trunk / webwork-modperl / lib / WeBWorK / DB / Schema / GlobalTableEmulator.pm Repository:
ViewVC logotype

Diff of /trunk/webwork-modperl/lib/WeBWorK/DB/Schema/GlobalTableEmulator.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 957 Revision 958
154 # add it 154 # add it
155 return $userSchema->add($UserRecord); 155 return $userSchema->add($UserRecord);
156} 156}
157 157
158sub get($@) { 158sub get($@) {
159 warn "\@_=@_\n";
159 my ($self, @keyparts) = @_; 160 my ($self, @keyparts) = @_;
160 161
161 my $db = $self->{db}; 162 my $db = $self->{db};
162 my $table = $self->{table}; 163 my $table = $self->{table};
163 my $userSchema = $db->{"${table}_user"}; 164 my $userSchema = $db->{"${table}_user"};
164 my $globalUserID = $self->{params}->{globalUserID}; 165 my $globalUserID = $self->{params}->{globalUserID};
165 166
166 if ($globalUserID) { 167 if ($globalUserID) {
168 warn "gonna try to get a user record for ($globalUserID @keyparts)...\n";
167 my $UserRecord = $userSchema->get($globalUserID, @keyparts); 169 my $UserRecord = $userSchema->get($globalUserID, @keyparts);
170 warn "UserRecord=$UserRecord\n";
168 return user2global($self->{record}, $UserRecord); 171 return user2global($self->{record}, $UserRecord);
169 } else { 172 } else {
170 warn "WARNING: using slow, slow consensus"; 173 warn "WARNING: using slow, slow consensus";
171 # get a consensus of all the user records 174 # get a consensus of all the user records
172 my @userRecordIDs = $userSchema->list(undef, @keyparts); 175 my @userRecordIDs = $userSchema->list(undef, @keyparts);
202 205
203 if ($globalUserID) { 206 if ($globalUserID) {
204 my $NewDefaults = global2user($userSchema->{record}, $Record); 207 my $NewDefaults = global2user($userSchema->{record}, $Record);
205 $NewDefaults->user_id($globalUserID); 208 $NewDefaults->user_id($globalUserID);
206 209
207 my $OldDefaults = $self->get($globalUserID, @keyparts);
208
209 # add new or store updated "global" record 210 # add new or store updated "global" record
210 if ($userSchema->exists($globalUserID, @keyparts)) { 211 if ($userSchema->exists($globalUserID, @keyparts)) {
211 $result = $userSchema->put($NewDefaults); 212 $result = $userSchema->put($NewDefaults);
212 } else { 213 } else {
213 $result = $userSchema->add($NewDefaults); 214 $result = $userSchema->add($NewDefaults);
214 } 215 }
215 216
216 my @userIDs = map { $_->[0] } $userSchema->list(undef, @keyparts); 217 my @userIDs = map { $_->[0] } $userSchema->list(undef, @keyparts);
217 218
219 my $OldDefaults = user2global($self->{record}, $userSchema->get($globalUserID, @keyparts));
218 $self->distGlobalValues($OldDefaults, $Record, @userIDs); 220 $self->distGlobalValues($OldDefaults, $Record, @userIDs);
219 } else { 221 } else {
220 warn "WARNING: using slow, slow consensus"; 222 warn "WARNING: using slow, slow consensus";
221 # make a user-specific record with user_id=HIDDEN_LOGIN out of $Record 223 # make a user-specific record with user_id=HIDDEN_LOGIN out of $Record
222 # i'm calling this a "hidden" record 224 # i'm calling this a "hidden" record

Legend:
Removed from v.957  
changed lines
  Added in v.958

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9