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

(-)a/t/db_dependent/Auth.t (-2 / +93 lines)
Lines 7-13 use CGI qw ( -utf8 ); Link Here
7
use Test::MockObject;
7
use Test::MockObject;
8
use Test::MockModule;
8
use Test::MockModule;
9
use List::MoreUtils qw/all any none/;
9
use List::MoreUtils qw/all any none/;
10
use Test::More tests => 20;
10
use Test::More tests => 21;
11
use Test::Warn;
11
use Test::Warn;
12
use t::lib::Mocks;
12
use t::lib::Mocks;
13
use t::lib::TestBuilder;
13
use t::lib::TestBuilder;
Lines 1350-1355 subtest 'AutoLocation' => sub { Link Here
1350
1350
1351
};
1351
};
1352
1352
1353
subtest 'AutoSelfCheckAllowed' => sub {
1354
    plan tests => 5;
1355
1356
    my $query = CGI->new;
1357
    my $auth  = Test::MockModule->new('C4::Auth');
1358
    $auth->mock( 'safe_exit', sub { return } );
1359
1360
    t::lib::Mocks::mock_preference( 'AutoSelfCheckAllowed', 0 );
1361
1362
    # Pref is off, cannot access sco
1363
    {
1364
        # checkauth will redirect and safe_exit if not authenticated and not authorized
1365
        local *STDOUT;
1366
        my $stdout;
1367
        open STDOUT, '>', \$stdout;
1368
        my ( $template, $loggedinuser, $cookies ) = get_template_and_user(
1369
            {
1370
                template_name => "sco/sco-main.tt",
1371
                query         => $query,
1372
                type          => "opac",
1373
                flagsrequired => { self_check => "self_checkout_module" },
1374
            }
1375
        );
1376
        like( $stdout, qr{<title>\s*Log in to your account} );
1377
        close STDOUT;
1378
    };
1379
1380
    # Pref is on from here
1381
    t::lib::Mocks::mock_preference( 'AutoSelfCheckAllowed', 1 );
1382
1383
    t::lib::Mocks::mock_preference( 'AutoSelfCheckID',   '' );
1384
    t::lib::Mocks::mock_preference( 'AutoSelfCheckPass', '' );
1385
1386
    # Credential prefs are empty, cannot access sco
1387
    {
1388
        # checkauth will redirect and safe_exit if not authenticated and not authorized
1389
        local *STDOUT;
1390
        my $stdout;
1391
        open STDOUT, '>', \$stdout;
1392
        my ( $template, $loggedinuser, $cookies ) = get_template_and_user(
1393
            {
1394
                template_name => "sco/sco-main.tt",
1395
                query         => $query,
1396
                type          => "opac",
1397
                flagsrequired => { self_check => "self_checkout_module" },
1398
            }
1399
        );
1400
        like( $stdout, qr{<title>\s*Log in to your account} );
1401
        close STDOUT;
1402
    };
1403
1404
    my $sco_patron = $builder->build_object( { class => 'Koha::Patrons', value => { flags => 0 } } );
1405
    my $password   = set_weak_password($sco_patron);
1406
    t::lib::Mocks::mock_preference( 'AutoSelfCheckID',   $sco_patron->userid );
1407
    t::lib::Mocks::mock_preference( 'AutoSelfCheckPass', $password );
1408
1409
    # Credential pref are good but patron does not have the self_checkout_module subpermission
1410
    {
1411
        # checkauth will redirect and safe_exit if not authenticated and not authorized
1412
        local *STDOUT;
1413
        my $stdout;
1414
        open STDOUT, '>', \$stdout;
1415
        my ( $template, $loggedinuser, $cookies ) = get_template_and_user(
1416
            {
1417
                template_name => "sco/sco-main.tt",
1418
                query         => $query,
1419
                type          => "opac",
1420
                flagsrequired => { self_check => "self_checkout_module" },
1421
            }
1422
        );
1423
        like( $stdout, qr{<title>\s*Log in to your account} );
1424
        close STDOUT;
1425
    };
1426
1427
    # All good from now
1428
    C4::Context->dbh->do(
1429
        q|
1430
            INSERT INTO user_permissions (borrowernumber, module_bit, code) VALUES (?, ?, ?)
1431
        |, undef, $sco_patron->borrowernumber, 23, 'self_checkout_module'
1432
    );
1433
    my ( $template, $loggedinuser, $cookies ) = get_template_and_user(
1434
        {
1435
            template_name => "sco/sco-main.tt",
1436
            query         => $query,
1437
            type          => "opac",
1438
            flagsrequired => { self_check => "self_checkout_module" },
1439
        }
1440
    );
1441
    is( $template->{VARS}->{logged_in_user}->id, $sco_patron->id );
1442
    is( $loggedinuser,                           $sco_patron->id );
1443
};
1444
1353
sub set_weak_password {
1445
sub set_weak_password {
1354
    my ($patron) = @_;
1446
    my ($patron) = @_;
1355
    my $password = 'password';
1447
    my $password = 'password';
1356
- 

Return to bug 36349