| 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 | }; |