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

(-)a/C4/Auth.pm (-11 / +11 lines)
Lines 752-758 sub checkauth { Link Here
752
        my $s_userid = '';
752
        my $s_userid = '';
753
        if ($session) {
753
        if ($session) {
754
            $s_userid = $session->param('id') // '';
754
            $s_userid = $session->param('id') // '';
755
            C4::Context::set_userenv(
755
            C4::Context->set_userenv(
756
                $session->param('number'),       $s_userid,
756
                $session->param('number'),       $s_userid,
757
                $session->param('cardnumber'),   $session->param('firstname'),
757
                $session->param('cardnumber'),   $session->param('firstname'),
758
                $session->param('surname'),      $session->param('branch'),
758
                $session->param('surname'),      $session->param('branch'),
Lines 1084-1090 sub checkauth { Link Here
1084
                if ($persona) {
1084
                if ($persona) {
1085
                    $session->param( 'persona', 1 );
1085
                    $session->param( 'persona', 1 );
1086
                }
1086
                }
1087
                C4::Context::set_userenv(
1087
                C4::Context->set_userenv(
1088
                    $session->param('number'),       $session->param('id'),
1088
                    $session->param('number'),       $session->param('id'),
1089
                    $session->param('cardnumber'),   $session->param('firstname'),
1089
                    $session->param('cardnumber'),   $session->param('firstname'),
1090
                    $session->param('surname'),      $session->param('branch'),
1090
                    $session->param('surname'),      $session->param('branch'),
Lines 1332-1338 sub check_api_auth { Link Here
1332
        my $session = get_session($sessionID);
1332
        my $session = get_session($sessionID);
1333
        C4::Context->_new_userenv($sessionID);
1333
        C4::Context->_new_userenv($sessionID);
1334
        if ($session) {
1334
        if ($session) {
1335
            C4::Context::set_userenv(
1335
            C4::Context->set_userenv(
1336
                $session->param('number'),       $session->param('id'),
1336
                $session->param('number'),       $session->param('id'),
1337
                $session->param('cardnumber'),   $session->param('firstname'),
1337
                $session->param('cardnumber'),   $session->param('firstname'),
1338
                $session->param('surname'),      $session->param('branch'),
1338
                $session->param('surname'),      $session->param('branch'),
Lines 1504-1510 sub check_api_auth { Link Here
1504
                $session->param( 'ip',           $session->remote_addr() );
1504
                $session->param( 'ip',           $session->remote_addr() );
1505
                $session->param( 'lasttime',     time() );
1505
                $session->param( 'lasttime',     time() );
1506
            }
1506
            }
1507
            C4::Context::set_userenv(
1507
            C4::Context->set_userenv(
1508
                $session->param('number'),       $session->param('id'),
1508
                $session->param('number'),       $session->param('id'),
1509
                $session->param('cardnumber'),   $session->param('firstname'),
1509
                $session->param('cardnumber'),   $session->param('firstname'),
1510
                $session->param('surname'),      $session->param('branch'),
1510
                $session->param('surname'),      $session->param('branch'),
Lines 1585-1591 sub check_cookie_auth { Link Here
1585
    my $session   = get_session($sessionID);
1585
    my $session   = get_session($sessionID);
1586
    C4::Context->_new_userenv($sessionID);
1586
    C4::Context->_new_userenv($sessionID);
1587
    if ($session) {
1587
    if ($session) {
1588
        C4::Context::set_userenv(
1588
        C4::Context->set_userenv(
1589
            $session->param('number'),       $session->param('id'),
1589
            $session->param('number'),       $session->param('id'),
1590
            $session->param('cardnumber'),   $session->param('firstname'),
1590
            $session->param('cardnumber'),   $session->param('firstname'),
1591
            $session->param('surname'),      $session->param('branch'),
1591
            $session->param('surname'),      $session->param('branch'),
Lines 1732-1766 sub checkpw_internal { Link Here
1732
1732
1733
    my $sth =
1733
    my $sth =
1734
      $dbh->prepare(
1734
      $dbh->prepare(
1735
        "select password,cardnumber,borrowernumber,userid,firstname,surname,branchcode,flags from borrowers where userid=?"
1735
        "select password,cardnumber,borrowernumber,userid,firstname,surname,borrowers.branchcode,branches.branchname,flags from borrowers join branches on borrowers.branchcode=branches.branchcode where userid=?"
1736
      );
1736
      );
1737
    $sth->execute($userid);
1737
    $sth->execute($userid);
1738
    if ( $sth->rows ) {
1738
    if ( $sth->rows ) {
1739
        my ( $stored_hash, $cardnumber, $borrowernumber, $userid, $firstname,
1739
        my ( $stored_hash, $cardnumber, $borrowernumber, $userid, $firstname,
1740
            $surname, $branchcode, $flags )
1740
            $surname, $branchcode, $branchname, $flags )
1741
          = $sth->fetchrow;
1741
          = $sth->fetchrow;
1742
1742
1743
        if ( checkpw_hash( $password, $stored_hash ) ) {
1743
        if ( checkpw_hash( $password, $stored_hash ) ) {
1744
1744
1745
            C4::Context->set_userenv( "$borrowernumber", $userid, $cardnumber,
1745
            C4::Context->set_userenv( "$borrowernumber", $userid, $cardnumber,
1746
                $firstname, $surname, $branchcode, $flags );
1746
                $firstname, $surname, $branchcode, $branchname, $flags );
1747
            return 1, $cardnumber, $userid;
1747
            return 1, $cardnumber, $userid;
1748
        }
1748
        }
1749
    }
1749
    }
1750
    $sth =
1750
    $sth =
1751
      $dbh->prepare(
1751
      $dbh->prepare(
1752
        "select password,cardnumber,borrowernumber,userid, firstname,surname,branchcode,flags from borrowers where cardnumber=?"
1752
        "select password,cardnumber,borrowernumber,userid,firstname,surname,borrowers.branchcode,branches.branchname,flags from borrowers join branches on borrowers.branchcode=branches.branchcode where cardnumber=?"
1753
      );
1753
      );
1754
    $sth->execute($userid);
1754
    $sth->execute($userid);
1755
    if ( $sth->rows ) {
1755
    if ( $sth->rows ) {
1756
        my ( $stored_hash, $cardnumber, $borrowernumber, $userid, $firstname,
1756
        my ( $stored_hash, $cardnumber, $borrowernumber, $userid, $firstname,
1757
            $surname, $branchcode, $flags )
1757
            $surname, $branchcode, $branchname, $flags )
1758
          = $sth->fetchrow;
1758
          = $sth->fetchrow;
1759
1759
1760
        if ( checkpw_hash( $password, $stored_hash ) ) {
1760
        if ( checkpw_hash( $password, $stored_hash ) ) {
1761
1761
1762
            C4::Context->set_userenv( $borrowernumber, $userid, $cardnumber,
1762
            C4::Context->set_userenv( $borrowernumber, $userid, $cardnumber,
1763
                $firstname, $surname, $branchcode, $flags );
1763
                $firstname, $surname, $branchcode, $branchname, $flags );
1764
            return 1, $cardnumber, $userid;
1764
            return 1, $cardnumber, $userid;
1765
        }
1765
        }
1766
    }
1766
    }
(-)a/C4/Context.pm (-3 / +5 lines)
Lines 1086-1094 sub userenv { Link Here
1086
1086
1087
=head2 set_userenv
1087
=head2 set_userenv
1088
1088
1089
  C4::Context->set_userenv($usernum, $userid, $usercnum, $userfirstname, 
1089
  C4::Context->set_userenv($usernum, $userid, $usercnum,
1090
                  $usersurname, $userbranch, $userflags, $emailaddress, $branchprinter,
1090
                           $userfirstname, $usersurname,
1091
                  $persona);
1091
                           $userbranch, $branchname, $userflags,
1092
                           $emailaddress, $branchprinter, $persona);
1092
1093
1093
Establish a hash of user environment variables.
1094
Establish a hash of user environment variables.
1094
1095
Lines 1098-1103 set_userenv is called in Auth.pm Link Here
1098
1099
1099
#'
1100
#'
1100
sub set_userenv {
1101
sub set_userenv {
1102
    shift @_;
1101
    my ($usernum, $userid, $usercnum, $userfirstname, $usersurname, $userbranch, $branchname, $userflags, $emailaddress, $branchprinter, $persona, $shibboleth)=
1103
    my ($usernum, $userid, $usercnum, $userfirstname, $usersurname, $userbranch, $branchname, $userflags, $emailaddress, $branchprinter, $persona, $shibboleth)=
1102
    map { Encode::is_utf8( $_ ) ? $_ : Encode::decode('UTF-8', $_) } # CGI::Session doesn't handle utf-8, so we decode it here
1104
    map { Encode::is_utf8( $_ ) ? $_ : Encode::decode('UTF-8', $_) } # CGI::Session doesn't handle utf-8, so we decode it here
1103
    @_;
1105
    @_;
(-)a/C4/InstallAuth.pm (-3 / +3 lines)
Lines 246-252 sub checkauth { Link Here
246
          new CGI::Session( "driver:File;serializer:yaml", $sessionID,
246
          new CGI::Session( "driver:File;serializer:yaml", $sessionID,
247
            { Directory => '/tmp' } );
247
            { Directory => '/tmp' } );
248
        if ( $session->param('cardnumber') ) {
248
        if ( $session->param('cardnumber') ) {
249
            C4::Context::set_userenv(
249
            C4::Context->set_userenv(
250
                $session->param('number'),
250
                $session->param('number'),
251
                $session->param('id'),
251
                $session->param('id'),
252
                $session->param('cardnumber'),
252
                $session->param('cardnumber'),
Lines 308-314 sub checkauth { Link Here
308
           #Only superlibrarian should have access to this page.
308
           #Only superlibrarian should have access to this page.
309
           #Since if it is a user, it is supposed that there is a borrower table
309
           #Since if it is a user, it is supposed that there is a borrower table
310
           #And thus that data structure is loaded.
310
           #And thus that data structure is loaded.
311
                my $hash = C4::Context::set_userenv(
311
                my $hash = C4::Context->set_userenv(
312
                    0,                           0,
312
                    0,                           0,
313
                    C4::Context->config('user'), C4::Context->config('user'),
313
                    C4::Context->config('user'), C4::Context->config('user'),
314
                    C4::Context->config('user'), "",
314
                    C4::Context->config('user'), "",
Lines 412-418 sub checkpw { Link Here
412
            C4::Context->config('user'),
412
            C4::Context->config('user'),
413
            C4::Context->config('user'),
413
            C4::Context->config('user'),
414
            C4::Context->config('user'),
414
            C4::Context->config('user'),
415
            "", 1
415
            "", "NO_LIBRARY_SET", 1
416
        );
416
        );
417
        return 2;
417
        return 2;
418
    }
418
    }
(-)a/t/Circulation_barcodedecode.t (-1 / +1 lines)
Lines 21-27 use Test::More tests => 26; Link Here
21
use t::lib::Mocks;
21
use t::lib::Mocks;
22
22
23
C4::Context->_new_userenv(123456);
23
C4::Context->_new_userenv(123456);
24
C4::Context->set_userenv(1,'kmkale' , 1, 'kk1' , 'IMS', 0, 'kmkale@anantcorp.com');
24
C4::Context->set_userenv(1,'kmkale' , 1, 'km', 'kale' , 'IMS', 'IMS Branch DEscription', 0, 'kmkale@anantcorp.com');
25
25
26
BEGIN {
26
BEGIN {
27
    # Mock the DB connexion and C4::Context
27
    # Mock the DB connexion and C4::Context
(-)a/t/db_dependent/Circulation.t (-2 / +1 lines)
Lines 95-101 is( Link Here
95
95
96
# Now, set a userenv
96
# Now, set a userenv
97
C4::Context->_new_userenv('xxx');
97
C4::Context->_new_userenv('xxx');
98
C4::Context::set_userenv(0,0,0,'firstname','surname', 'MPL', 'Midway Public Library', '', '', '');
98
C4::Context->set_userenv(0,0,0,'firstname','surname', 'MPL', 'Midway Public Library', '', '', '');
99
is(C4::Context->userenv->{branch}, 'MPL', 'userenv set');
99
is(C4::Context->userenv->{branch}, 'MPL', 'userenv set');
100
100
101
# Userenv set, PickupLibrary
101
# Userenv set, PickupLibrary
102
- 

Return to bug 10900