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

(-)a/C4/Auth.pm (+1 lines)
Lines 2249-2254 sub get_cataloguing_page_permissions { Link Here
2249
  $flagsrequired = { 'a_flag => 1, 'b_flag' => 1 };     # a_flag AND b_flag must be satisfied
2249
  $flagsrequired = { 'a_flag => 1, 'b_flag' => 1 };     # a_flag AND b_flag must be satisfied
2250
  $flagsrequired = { 'a_flag' => 'sub_a' };             # sub_a of a_flag must be satisfied
2250
  $flagsrequired = { 'a_flag' => 'sub_a' };             # sub_a of a_flag must be satisfied
2251
  $flagsrequired = { 'a_flag' => [ 'sub_a, 'sub_b' ] }; # sub_a OR sub_b of a_flag must be satisfied
2251
  $flagsrequired = { 'a_flag' => [ 'sub_a, 'sub_b' ] }; # sub_a OR sub_b of a_flag must be satisfied
2252
  $flagsrequired = { 'a_flag' => { 'sub_a' => 1, 'sub_b' => 1 } };    # sub_a AND sub_b of a_flag must be satisfied
2252
2253
2253
  $flags = ($userid, $flagsrequired);
2254
  $flags = ($userid, $flagsrequired);
2254
2255
(-)a/t/db_dependent/Auth/haspermission.t (-2 / +44 lines)
Lines 20-26 Link Here
20
# along with Koha; if not, see <http://www.gnu.org/licenses>.
20
# along with Koha; if not, see <http://www.gnu.org/licenses>.
21
21
22
use Modern::Perl;
22
use Modern::Perl;
23
use Test::More tests => 4;
23
use Test::More tests => 5;
24
use Test::Exception;
24
use Test::Exception;
25
25
26
use Koha::Database;
26
use Koha::Database;
Lines 238-240 subtest 'arrayref top level OR tests' => sub { Link Here
238
};
238
};
239
239
240
$schema->storage->txn_rollback;
240
$schema->storage->txn_rollback;
241
- 
241
242
subtest 'AND on subpermissions' => sub {
243
244
    plan tests => 2;
245
246
    $schema->storage->txn_begin;
247
248
    my $patron = $builder->build_object( { class => 'Koha::Patrons', value => { flags => 0 } } );
249
250
    $builder->build(
251
        {
252
            source => 'UserPermission',
253
            value  => {
254
                borrowernumber => $patron->id,
255
                module_bit     => 9,                  # editcatalogue
256
                code           => 'edit_catalogue',
257
            },
258
        }
259
    );
260
261
    my $r = haspermission( $patron->userid, { editcatalogue => { edit_catalogue => 1, advanced_editor => 1 } } );
262
    is( $r, 0, "The user only has 'edit_catalogue' permissions, 0 returned" );
263
264
    $builder->build(
265
        {
266
            source => 'UserPermission',
267
            value  => {
268
                borrowernumber => $patron->id,
269
                module_bit     => 9,                   # editcatalogue
270
                code           => 'advanced_editor',
271
            },
272
        }
273
    );
274
275
    $r = haspermission( $patron->userid, { editcatalogue => { edit_catalogue => 1, advanced_editor => 1 } } );
276
277
    ok(
278
        $r->{editcatalogue}->{edit_catalogue} && $r->{editcatalogue}->{advanced_editor},
279
        "The patron has 'edit_catalogue' and 'advanced_editor', both returned"
280
    );
281
282
    $schema->storage->txn_rollback;
283
};

Return to bug 36056