Skip to content

Commit d77f1f7

Browse files
committed
Added Casbin 2.0 support, requires Laravel 5.5 and newer.
1 parent 8f437f2 commit d77f1f7

File tree

4 files changed

+59
-85
lines changed

4 files changed

+59
-85
lines changed

.travis.yml

Lines changed: 37 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -12,53 +12,43 @@ services:
1212
matrix:
1313
fast_finish: true
1414
include:
15-
# Laravel 5.1
16-
- php: 5.6
17-
env: LARAVEL=5.1.* PHPUNIT=^5.7
18-
- php: 7.0
19-
env: LARAVEL=5.1.* PHPUNIT=^5.7
20-
- php: 7.1
21-
env: LARAVEL=5.1.* PHPUNIT=^5.7
15+
# Laravel 5.5
16+
- php: 7.1
17+
env: LARAVEL=5.5.* PHPUNIT=~6.0
18+
- php: 7.2
19+
env: LARAVEL=5.5.* PHPUNIT=~6.0
20+
- php: 7.3
21+
env: LARAVEL=5.5.* PHPUNIT=~6.0
2222

23-
# Laravel 5.5
24-
- php: 7.0
25-
env: LARAVEL=5.5.* PHPUNIT=~6.0
26-
- php: 7.1
27-
env: LARAVEL=5.5.* PHPUNIT=~6.0
28-
- php: 7.2
29-
env: LARAVEL=5.5.* PHPUNIT=~6.0
30-
- php: 7.3
31-
env: LARAVEL=5.5.* PHPUNIT=~6.0
23+
# Laravel 5.6
24+
- php: 7.1
25+
env: LARAVEL=5.6.* PHPUNIT=~7.0
26+
- php: 7.2
27+
env: LARAVEL=5.6.* PHPUNIT=~7.0
28+
- php: 7.3
29+
env: LARAVEL=5.6.* PHPUNIT=~7.0
3230

33-
# Laravel 5.6
34-
- php: 7.1
35-
env: LARAVEL=5.6.* PHPUNIT=~7.0
36-
- php: 7.2
37-
env: LARAVEL=5.6.* PHPUNIT=~7.0
38-
- php: 7.3
39-
env: LARAVEL=5.6.* PHPUNIT=~7.0
31+
# Laravel 5.7
32+
- php: 7.1
33+
env: LARAVEL=5.7.* PHPUNIT=~7.5
34+
- php: 7.2
35+
env: LARAVEL=5.7.* PHPUNIT=~7.5
36+
- php: 7.3
37+
env: LARAVEL=5.7.* PHPUNIT=~7.5
4038

41-
# Laravel 5.7
42-
- php: 7.1
43-
env: LARAVEL=5.7.* PHPUNIT=~7.5
44-
- php: 7.2
45-
env: LARAVEL=5.7.* PHPUNIT=~7.5
46-
- php: 7.3
47-
env: LARAVEL=5.7.* PHPUNIT=~7.5
39+
# Laravel 5.8
40+
- php: 7.1
41+
env: LARAVEL=5.8.* PHPUNIT=~7.5
42+
- php: 7.2
43+
env: LARAVEL=5.8.* PHPUNIT=~8.0
44+
- php: 7.3
45+
env: LARAVEL=5.8.* PHPUNIT=~8.0
4846

49-
# Laravel 5.8
50-
- php: 7.1
51-
env: LARAVEL=5.8.* PHPUNIT=~7.5
52-
- php: 7.2
53-
env: LARAVEL=5.8.* PHPUNIT=~8.0
54-
- php: 7.3
55-
env: LARAVEL=5.8.* PHPUNIT=~8.0
56-
57-
# Laravel 6.0
58-
- php: 7.2
59-
env: LARAVEL=6.0.* PHPUNIT=~8.0
60-
- php: 7.3
61-
env: LARAVEL=6.0.* PHPUNIT=~8.0
47+
# Laravel 6.0
48+
- php: 7.2
49+
env: LARAVEL=6.0.* PHPUNIT=~8.0
50+
- php: 7.3
51+
env: LARAVEL=6.0.* PHPUNIT=~8.0
6252

6353
before_install:
6454
- travis_retry composer self-update
@@ -70,9 +60,9 @@ install:
7060
- travis_retry composer install --no-suggest --no-interaction
7161

7262
script:
73-
- vendor/bin/phpunit --version
74-
- mkdir -p build/logs
75-
- vendor/bin/phpunit
63+
- vendor/bin/phpunit --version
64+
- mkdir -p build/logs
65+
- vendor/bin/phpunit
7666

7767
after_script:
78-
- travis_retry vendor/bin/php-coveralls -v
68+
- travis_retry vendor/bin/php-coveralls -v

composer.json

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,16 @@
1010
],
1111
"license": "Apache-2.0",
1212
"require": {
13-
"laravel/framework": "~5.1|~6.0",
14-
"casbin/casbin": "~1.0",
15-
"casbin/psr3-bridge": "^1.0"
13+
"php": ">=7.1.0",
14+
"laravel/framework": "~5.5|~6.0",
15+
"casbin/casbin": "~2.0",
16+
"casbin/psr3-bridge": "^1.1"
1617
},
1718
"require-dev": {
18-
"phpunit/phpunit": "~5.7|~6.0|~7.0|~8.0",
19+
"phpunit/phpunit": "~7.0|~8.0",
1920
"php-coveralls/php-coveralls": "^2.1",
2021
"mockery/mockery": "^1.0",
21-
"laravel/laravel": "~5.1|~6.0"
22+
"laravel/laravel": "~5.5|~6.0"
2223
},
2324
"autoload": {
2425
"psr-4": {

src/Adapters/DatabaseAdapter.php

Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
<?php
22

3+
declare(strict_types=1);
4+
35
namespace Lauthz\Adapters;
46

57
use Lauthz\Models\Rule;
68
use Lauthz\Contracts\DatabaseAdapter as DatabaseAdapterContract;
9+
use Casbin\Model\Model;
710
use Casbin\Persist\AdapterHelper;
811

912
/**
@@ -38,7 +41,7 @@ public function __construct(Rule $eloquent)
3841
* @param string $ptype
3942
* @param array $rule
4043
*/
41-
public function savePolicyLine($ptype, array $rule)
44+
public function savePolicyLine(string $ptype, array $rule): void
4245
{
4346
$col['ptype'] = $ptype;
4447
foreach ($rule as $key => $value) {
@@ -52,10 +55,8 @@ public function savePolicyLine($ptype, array $rule)
5255
* loads all policy rules from the storage.
5356
*
5457
* @param Model $model
55-
*
56-
* @return mixed
5758
*/
58-
public function loadPolicy($model)
59+
public function loadPolicy(Model $model): void
5960
{
6061
$rows = $this->eloquent->getAllFromCache();
6162

@@ -71,39 +72,33 @@ public function loadPolicy($model)
7172
* saves all policy rules to the storage.
7273
*
7374
* @param Model $model
74-
*
75-
* @return bool
7675
*/
77-
public function savePolicy($model)
76+
public function savePolicy(Model $model): void
7877
{
79-
foreach ($model->model['p'] as $ptype => $ast) {
78+
foreach ($model['p'] as $ptype => $ast) {
8079
foreach ($ast->policy as $rule) {
8180
$this->savePolicyLine($ptype, $rule);
8281
}
8382
}
8483

85-
foreach ($model->model['g'] as $ptype => $ast) {
84+
foreach ($model['g'] as $ptype => $ast) {
8685
foreach ($ast->policy as $rule) {
8786
$this->savePolicyLine($ptype, $rule);
8887
}
8988
}
90-
91-
return true;
9289
}
9390

9491
/**
95-
* Adds a policy rule to the storage.
92+
* adds a policy rule to the storage.
9693
* This is part of the Auto-Save feature.
9794
*
9895
* @param string $sec
9996
* @param string $ptype
10097
* @param array $rule
101-
*
102-
* @return mixed
10398
*/
104-
public function addPolicy($sec, $ptype, $rule)
99+
public function addPolicy(string $sec, string $ptype, array $rule): void
105100
{
106-
return $this->savePolicyLine($ptype, $rule);
101+
$this->savePolicyLine($ptype, $rule);
107102
}
108103

109104
/**
@@ -112,10 +107,8 @@ public function addPolicy($sec, $ptype, $rule)
112107
* @param string $sec
113108
* @param string $ptype
114109
* @param array $rule
115-
*
116-
* @return mixed
117110
*/
118-
public function removePolicy($sec, $ptype, $rule)
111+
public function removePolicy(string $sec, string $ptype, array $rule): void
119112
{
120113
$count = 0;
121114

@@ -130,8 +123,6 @@ public function removePolicy($sec, $ptype, $rule)
130123
++$count;
131124
}
132125
}
133-
134-
return $count;
135126
}
136127

137128
/**
@@ -141,11 +132,9 @@ public function removePolicy($sec, $ptype, $rule)
141132
* @param string $sec
142133
* @param string $ptype
143134
* @param int $fieldIndex
144-
* @param mixed ...$fieldValues
145-
*
146-
* @return mixed
135+
* @param string ...$fieldValues
147136
*/
148-
public function removeFilteredPolicy($sec, $ptype, $fieldIndex, ...$fieldValues)
137+
public function removeFilteredPolicy(string $sec, string $ptype, int $fieldIndex, string ...$fieldValues): void
149138
{
150139
$count = 0;
151140

@@ -163,7 +152,5 @@ public function removeFilteredPolicy($sec, $ptype, $fieldIndex, ...$fieldValues)
163152
++$count;
164153
}
165154
}
166-
167-
return $count;
168155
}
169156
}

tests/TestCase.php

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,9 @@ public function createApplication()
3434
$this->artisan('vendor:publish', ['--provider' => 'Lauthz\LauthzServiceProvider']);
3535
$this->artisan('migrate', ['--force' => true]);
3636

37-
if (method_exists($this, 'afterApplicationCreated')) {
38-
$this->afterApplicationCreated(function () {
39-
$this->initTable();
40-
});
41-
} else {
37+
$this->afterApplicationCreated(function () {
4238
$this->initTable();
43-
}
39+
});
4440

4541
return $this->app;
4642
}

0 commit comments

Comments
 (0)