View | Details | Raw Unified | Return to bug 7067
Collapse All | Expand All

(-)a/Koha/Borrower/Modifications.pm (-57 / +25 lines)
Lines 30-39 use C4::SQLHelper qw(InsertInTable UpdateInTable); Link Here
30
30
31
sub new {
31
sub new {
32
    my ( $class, %args ) = @_;
32
    my ( $class, %args ) = @_;
33
    my $self = bless( {}, $class );
34
35
    $self->{'verification_token'} = $args{'verification_token'};
36
    $self->{'borrowernumber'}     = $args{'borrowernumber'};
37
33
38
    return bless( \%args, $class );
34
    return bless( \%args, $class );
39
}
35
}
Lines 101-112 Returns true if the passed in token is valid. Link Here
101
sub Verify {
97
sub Verify {
102
    my ( $self, $verification_token ) = @_;
98
    my ( $self, $verification_token ) = @_;
103
99
104
    if ( ref($self) ) {
100
    $verification_token =
105
        $verification_token =
101
      ($verification_token)
106
          ($verification_token)
102
      ? $verification_token
107
          ? $verification_token
103
      : $self->{'verification_token'};
108
          : $self->{'verification_token'};
109
    }
110
104
111
    my $dbh   = C4::Context->dbh;
105
    my $dbh   = C4::Context->dbh;
112
    my $query = "
106
    my $query = "
Lines 190-206 them from the modifications table. Link Here
190
sub ApproveModifications {
184
sub ApproveModifications {
191
    my ( $self, $borrowernumber ) = @_;
185
    my ( $self, $borrowernumber ) = @_;
192
186
193
    if ( ref($self) ) {
187
    $borrowernumber =
194
        $borrowernumber =
188
      ($borrowernumber) ? $borrowernumber : $self->{'borrowernumber'};
195
          ($borrowernumber) ? $borrowernumber : $self->{'borrowernumber'};
196
    }
197
189
198
    return unless $borrowernumber;
190
    return unless $borrowernumber;
199
191
200
    my $data = $self->GetModifications( borrowernumber => $borrowernumber );
192
    my $data = $self->GetModifications({ borrowernumber => $borrowernumber });
201
193
202
    if ( UpdateInTable( "borrowers", $data ) ) {
194
    if ( UpdateInTable( "borrowers", $data ) ) {
203
        $self->DelModifications( borrowernumber => $borrowernumber );
195
        $self->DelModifications({ borrowernumber => $borrowernumber });
204
    }
196
    }
205
}
197
}
206
198
Lines 216-265 without commiting the changes to the borrower record. Link Here
216
sub DenyModifications {
208
sub DenyModifications {
217
    my ( $self, $borrowernumber ) = @_;
209
    my ( $self, $borrowernumber ) = @_;
218
210
219
    if ( ref($self) ) {
211
    $borrowernumber =
220
        $borrowernumber =
212
      ($borrowernumber) ? $borrowernumber : $self->{'borrowernumber'};
221
          ($borrowernumber) ? $borrowernumber : $self->{'borrowernumber'};
222
    }
223
213
224
    return unless $borrowernumber;
214
    return unless $borrowernumber;
225
215
226
    return $self->DelModifications( borrowernumber => $borrowernumber );
216
    return $self->DelModifications({ borrowernumber => $borrowernumber });
227
}
217
}
228
218
229
=head DelModifications
219
=head DelModifications
230
220
231
Koha::Borrower::Modifications->DelModifications(
221
Koha::Borrower::Modifications->DelModifications({
232
  [ borrowernumber => $borrowernumber ],
222
  [ borrowernumber => $borrowernumber ],
233
  [ verification_token => $verification_token ]
223
  [ verification_token => $verification_token ]
234
);
224
});
235
225
236
Deletes the modifications for the given borrowernumber or verification token.
226
Deletes the modifications for the given borrowernumber or verification token.
237
227
238
=cut
228
=cut
239
229
240
sub DelModifications {
230
sub DelModifications {
241
    my ( $self, %params ) = @_;
231
    my ( $self, $params ) = @_;
242
232
243
    my ( $field, $value );
233
    my ( $field, $value );
244
234
245
    if ( $params{'borrowernumber'} ) {
235
    if ( $params->{'borrowernumber'} ) {
246
        $field = 'borrowernumber';
236
        $field = 'borrowernumber';
247
        $value = $params{'borrowernumber'};
237
        $value = $params->{'borrowernumber'};
248
    }
238
    }
249
    elsif ( $params{'verification_token'} ) {
239
    elsif ( $params->{'verification_token'} ) {
250
        $field = 'verification_token';
240
        $field = 'verification_token';
251
        $value = $params{'verification_token'};
241
        $value = $params->{'verification_token'};
252
    }
253
254
    if ( ref($self) && !$value ) {
255
        if ( $self->{'borrowernumber'} ) {
256
            $field = 'borrowernumber';
257
            $value = $self->{'borrowernumber'};
258
        }
259
        elsif ( $self->{'verification_token'} ) {
260
            $field = 'verification_token';
261
            $value = $self->{'verification_token'};
262
        }
263
    }
242
    }
264
243
265
    return unless $value;
244
    return unless $value;
Lines 280-317 sub DelModifications { Link Here
280
259
281
=head GetModifications
260
=head GetModifications
282
261
283
$hashref = Koha::Borrower::Modifications->GetModifications(
262
$hashref = Koha::Borrower::Modifications->GetModifications({
284
  [ borrowernumber => $borrowernumber ],
263
  [ borrowernumber => $borrowernumber ],
285
  [ verification_token => $verification_token ]
264
  [ verification_token => $verification_token ]
286
);
265
});
287
266
288
Gets the modifications for the given borrowernumber or verification token.
267
Gets the modifications for the given borrowernumber or verification token.
289
268
290
=cut
269
=cut
291
270
292
sub GetModifications {
271
sub GetModifications {
293
    my ( $self, %params ) = @_;
272
    my ( $self, $params ) = @_;
294
273
295
    my ( $field, $value );
274
    my ( $field, $value );
296
275
297
    if ( $params{'borrowernumber'} ) {
276
    if ( defined( $params->{'borrowernumber'} ) ) {
298
        $field = 'borrowernumber';
277
        $field = 'borrowernumber';
299
        $value = $params{'borrowernumber'};
278
        $value = $params->{'borrowernumber'};
300
    }
279
    }
301
    elsif ( $params{'verification_token'} ) {
280
    elsif ( defined( $params->{'verification_token'} ) ) {
302
        $field = 'verification_token';
281
        $field = 'verification_token';
303
        $value = $params{'verification_token'};
282
        $value = $params->{'verification_token'};
304
    }
305
306
    if ( ref($self) && !$value ) {
307
        if ( $self->{'borrowernumber'} ) {
308
            $field = 'borrowernumber';
309
            $value = $self->{'borrowernumber'};
310
        }
311
        elsif ( $self->{'verification_token'} ) {
312
            $field = 'verification_token';
313
            $value = $self->{'verification_token'};
314
        }
315
    }
283
    }
316
284
317
    return unless $value;
285
    return unless $value;
(-)a/opac/opac-memberentry.pl (-5 / +2 lines)
Lines 157-167 elsif ( $action eq 'update' ) { Link Here
157
157
158
    %borrower = DelUnchangedFields( $borrowernumber, %borrower );
158
    %borrower = DelUnchangedFields( $borrowernumber, %borrower );
159
159
160
    my $m =
160
    Koha::Borrower::Modifications->DelModifications({ borrowernumber => $borrowernumber });
161
      Koha::Borrower::Modifications->new( borrowernumber => $borrowernumber );
161
    Koha::Borrower::Modifications->AddModifications(\%borrower);
162
163
    $m->DelModifications;
164
    $m->AddModifications(\%borrower);
165
}
162
}
166
elsif ($borrowernumber) {    #Display logged in borrower's data
163
elsif ($borrowernumber) {    #Display logged in borrower's data
167
    $action = 'edit';
164
    $action = 'edit';
(-)a/opac/opac-registration-verify.pl (-1 / +1 lines)
Lines 54-60 if ( $m->Verify() ) { Link Here
54
    ( $borrowernumber, $password ) = AddMember_Opac(%$borrower);
54
    ( $borrowernumber, $password ) = AddMember_Opac(%$borrower);
55
55
56
    if ($borrowernumber) {
56
    if ($borrowernumber) {
57
        $m->DelModifications();
57
        Koha::Borrower::Modifications->DelModifications({ verification_token => $token });
58
58
59
        $template->param( password_cleartext => $password );
59
        $template->param( password_cleartext => $password );
60
        $template->param(
60
        $template->param(
(-)a/t/db_dependent/Koha_borrower_modifications.t (-7 / +6 lines)
Lines 14-22 C4::Context->dbh->do("TRUNCATE TABLE borrower_modifications"); Link Here
14
Koha::Borrower::Modifications->new( verification_token => '1234567890' )->AddModifications({ surname => 'Hall', firstname => 'Kyle' });
14
Koha::Borrower::Modifications->new( verification_token => '1234567890' )->AddModifications({ surname => 'Hall', firstname => 'Kyle' });
15
15
16
## Get the new pending modification
16
## Get the new pending modification
17
my $borrower = Koha::Borrower::Modifications->GetModifications(
17
my $borrower = Koha::Borrower::Modifications->GetModifications({
18
    verification_token => '1234567890'
18
    verification_token => '1234567890'
19
);
19
});
20
20
21
## Verify we get the same data
21
## Verify we get the same data
22
ok( $borrower->{'surname'} = 'Hall' );
22
ok( $borrower->{'surname'} = 'Hall' );
Lines 25-38 ok( $borrower->{'surname'} = 'Hall' ); Link Here
25
ok( Koha::Borrower::Modifications->Verify( '1234567890' ) );
25
ok( Koha::Borrower::Modifications->Verify( '1234567890' ) );
26
26
27
## Delete the pending modification
27
## Delete the pending modification
28
$borrower = Koha::Borrower::Modifications->DelModifications(
28
$borrower = Koha::Borrower::Modifications->DelModifications({
29
    verification_token => '1234567890'
29
    verification_token => '1234567890'
30
);
30
});
31
31
32
## Verify it's no longer in the database
32
## Verify it's no longer in the database
33
$borrower = Koha::Borrower::Modifications->GetModifications(
33
$borrower = Koha::Borrower::Modifications->GetModifications({
34
    verification_token => '1234567890'
34
    verification_token => '1234567890'
35
);
35
});
36
ok( !defined( $borrower->{'surname'} ) );
36
ok( !defined( $borrower->{'surname'} ) );
37
37
38
## Check the Verify method
38
## Check the Verify method
39
- 

Return to bug 7067