Code

< 40 %
40-60 %
> 60 %
1
<?php
2
3
    require_once('vendor/autoload.php');
4
5
    use PhpAbac\AbacFactory;
6
7
    $countries = include('tests/fixtures/countries.php');
8
    $visas = include('tests/fixtures/visas.php');
9
    $users = include('tests/fixtures/users.php');
10
    $vehicles = include('tests/fixtures/vehicles.php');
11
    
12
    $abac = AbacFactory::getAbac([__DIR__.'/tests/fixtures/policy_rules.yml']);
13
    
14
    putenv('SERVICE_STATE=OPEN');
15
    
16
    $user1Nationality = $abac->enforce('nationality-access', $users[3], null, [
17
        'cache_result' => true,
18
        'cache_lifetime' => 100,
19
        'cache_driver' => 'memory'
20
    ]);
21
    
22
    if ($user1Nationality === true) {
23
        echo("GRANTED : The user 1 is able to be nationalized\n");
24
    } else {
25
        echo("FAIL : The system didn't grant access\n");
26
    }
27
    
28
    $user2Nationality = $abac->enforce('nationality-access', $users[0]);
29
    if ($user2Nationality !== true) {
30
        echo("DENIED : The user 2 is not able to be nationalized because he hasn't done his JAPD\n");
31
    } else {
32
        echo("FAIL : The system didn't deny access\n");
33
    }
34
    
35
    $user1Vehicle = $abac->enforce('vehicle-homologation', $users[0], $vehicles[0], [
36
        'dynamic_attributes' => ['proprietaire' => 1]
37
    ]);
38
    if ($user1Vehicle === true) {
39
        echo("GRANTED : The vehicle 1 is able to be approved for the user 1\n");
40
    } else {
41
        echo("FAIL : The system didn't grant access\n");
42
    }
43
    $user3Vehicle = $abac->enforce('vehicle-homologation', $users[2], $vehicles[1], [
44
        'dynamic_attributes' => ['proprietaire' => 3]
45
    ]);
46
    if ($user3Vehicle !== true) {
47
        echo("DENIED : The vehicle 2 is not approved for the user 3 because its last technical review is too old\n");
48
    } else {
49
        echo("FAIL : The system didn't deny access\n");
50
    }
51
    $user4Vehicle = $abac->enforce('vehicle-homologation', $users[3], $vehicles[3], [
52
        'dynamic_attributes' => ['proprietaire' => 4]
53
    ]);
54
    if ($user4Vehicle !== true) {
55
        echo("DENIED : The vehicle 4 is not able to be approved for the user 4 because he has no driving license\n");
56
    } else {
57
        echo("FAIL : The system didn't deny access\n");
58
    }
59
    $user5Vehicle = $abac->enforce('vehicle-homologation', $users[3], $vehicles[3], [
60
        'dynamic_attributes' => ['proprietaire' => 1]
61
    ]);
62
    if ($user5Vehicle !== true) {
63
        echo("DENIED : The vehicle 4 is not able to be approved for the user 2 because he doesn't own the vehicle\n");
64
    } else {
65
        echo("FAIL : The system didn't deny access\n");
66
    }
67
    $userTravel1 = $abac->enforce('travel-to-foreign-country', $users[0], null, [
68
        'dynamic_attributes' => [
69
            'code-pays' => 'US'
70
        ]
71
    ]);
72
    if ($userTravel1 !== true) {
73
        echo("DENIED: The user 1 is not allowed to travel to the USA because he doesn't have an US visa\n");
74
    } else {
75
        echo('FAIL: The system didn\'t deny access');
76
    }
77
    $userTravel2 = $abac->enforce('travel-to-foreign-country', $users[1], null, [
78
        'dynamic_attributes' => [
79
            'code-pays' => 'US'
80
        ]
81
    ]);
82
    if ($userTravel2 === true) {
83
        echo("GRANTED: The user 2 is allowed to travel to the USA\n");
84
    } else {
85
        echo('FAIL: The system didn\'t grant access');
86
    }
87