Skip to content
This repository was archived by the owner on Jan 30, 2020. It is now read-only.

Commit 18c7b67

Browse files
committed
Merge branch 'TomHAnderson-hotfix/unittests'
2 parents fc91fbe + 89fe48a commit 18c7b67

17 files changed

+675
-551
lines changed

.php_cs

Lines changed: 0 additions & 45 deletions
This file was deleted.

.travis.yml

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,30 +24,35 @@ env:
2424
matrix:
2525
fast_finish: true
2626
include:
27-
- php: 5.5
28-
env:
29-
- EXECUTE_CS_CHECK=true
30-
- php: 5.5
31-
env:
32-
- SERVICE_MANAGER_VERSION="^2.7.5"
3327
- php: 5.6
3428
env:
3529
- EXECUTE_TEST_COVERALLS=true
30+
- EXECUTE_CS_CHECK=true
3631
- DEPLOY_DOCS="$(if [[ $TRAVIS_BRANCH == 'master' && $TRAVIS_PULL_REQUEST == 'false' ]]; then echo -n 'true' ; else echo -n 'false' ; fi)"
3732
- PATH="$HOME/.local/bin:$PATH"
3833
- php: 5.6
3934
env:
4035
- SERVICE_MANAGER_VERSION="^2.7.5"
4136
- php: 7
37+
env:
38+
- EXECUTE_CS_CHECK=true
4239
- php: 7
4340
env:
4441
- SERVICE_MANAGER_VERSION="^2.7.5"
45-
- php: hhvm
46-
- php: hhvm
42+
- php: 7.1
43+
env:
44+
- EXECUTE_CS_CHECK=true
45+
- php: 7.1
46+
env:
47+
- SERVICE_MANAGER_VERSION="^2.7.5"
48+
- php: 7.2
49+
env:
50+
- EXECUTE_CS_CHECK=true
51+
- php: 7.2
4752
env:
4853
- SERVICE_MANAGER_VERSION="^2.7.5"
49-
allow_failures:
50-
- php: hhvm
54+
allowed_failures:
55+
- php: 7.2
5156

5257
notifications:
5358
irc: "irc.freenode.org#zftalk.dev"
@@ -59,14 +64,16 @@ before_install:
5964
- if [[ $EXECUTE_TEST_COVERALLS == 'true' ]]; then composer require --dev --no-update satooshi/php-coveralls ; fi
6065
- if [[ $SERVICE_MANAGER_VERSION != '' ]]; then composer require --dev --no-update "zendframework/zend-servicemanager:$SERVICE_MANAGER_VERSION" ; fi
6166
- if [[ $SERVICE_MANAGER_VERSION == '' ]]; then composer require --dev --no-update "zendframework/zend-servicemanager:^3.0.3" ; fi
67+
- if [[ ${TRAVIS_PHP_VERSION:0:3} == "5.6" ]]; then composer require --dev --no-update phpunit/phpunit ~5; fi
68+
- if [[ ${TRAVIS_PHP_VERSION:0:3} == "5.6" ]]; then composer require --dev --no-update doctrine/instantiator 1.0.5; fi
6269

6370
install:
6471
- travis_retry composer install --no-interaction --ignore-platform-reqs
6572

6673
script:
6774
- if [[ $EXECUTE_TEST_COVERALLS == 'true' ]]; then ./vendor/bin/phpunit --coverage-clover clover.xml ; fi
6875
- if [[ $EXECUTE_TEST_COVERALLS != 'true' ]]; then ./vendor/bin/phpunit ; fi
69-
- if [[ $EXECUTE_CS_CHECK == 'true' ]]; then ./vendor/bin/php-cs-fixer fix -v --diff --dry-run ; fi
76+
- if [[ $EXECUTE_CS_CHECK == 'true' ]]; then ./vendor/bin/phpcs ; fi
7077
- if [[ $DEPLOY_DOCS == "true" && "$TRAVIS_TEST_RESULT" == "0" ]]; then wget -O theme-installer.sh "https://raw.githubusercontent.com/zendframework/zf-mkdoc-theme/master/theme-installer.sh" ; chmod 755 theme-installer.sh ; ./theme-installer.sh ; fi
7178

7279
after_success:

composer.json

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414
}
1515
},
1616
"require": {
17-
"php": "^5.5 || ^7.0"
17+
"php": "^5.6 || ^7.0"
1818
},
1919
"require-dev": {
20-
"fabpot/php-cs-fixer": "1.7.*",
21-
"phpunit/PHPUnit": "~4.0",
22-
"zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3"
20+
"phpunit/PHPUnit": "~5.0 || ~6.0",
21+
"zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3",
22+
"zendframework/zend-coding-standard": "^1.0"
2323
},
2424
"suggest": {
2525
"zendframework/zend-servicemanager": "To support Zend\\Permissions\\Acl\\Assertion\\AssertionManager plugin manager usage"
@@ -33,5 +33,9 @@
3333
"psr-4": {
3434
"ZendTest\\Permissions\\Acl\\": "test/"
3535
}
36+
},
37+
"scripts": {
38+
"cs-check": "phpcs",
39+
"cs-fix": "phpcbf"
3640
}
3741
}

phpcs.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0"?>
2+
<ruleset name="Zend Framework Coding Standard">
3+
<rule ref="./vendor/zendframework/zend-coding-standard/ruleset.xml"/>
4+
5+
<file>src</file>
6+
<file>test</file>
7+
</ruleset>

src/Acl.php

Lines changed: 57 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public function addRole($role, $parents = null)
102102
{
103103
if (is_string($role)) {
104104
$role = new Role\GenericRole($role);
105-
} elseif (!$role instanceof Role\RoleInterface) {
105+
} elseif (! $role instanceof Role\RoleInterface) {
106106
throw new Exception\InvalidArgumentException(
107107
'addRole() expects $role to be of type Zend\Permissions\Acl\Role\RoleInterface'
108108
);
@@ -230,7 +230,7 @@ public function addResource($resource, $parent = null)
230230
{
231231
if (is_string($resource)) {
232232
$resource = new Resource\GenericResource($resource);
233-
} elseif (!$resource instanceof Resource\ResourceInterface) {
233+
} elseif (! $resource instanceof Resource\ResourceInterface) {
234234
throw new Exception\InvalidArgumentException(
235235
'addResource() expects $resource to be of type Zend\Permissions\Acl\Resource\ResourceInterface'
236236
);
@@ -287,7 +287,7 @@ public function getResource($resource)
287287
$resourceId = (string) $resource;
288288
}
289289

290-
if (!$this->hasResource($resource)) {
290+
if (! $this->hasResource($resource)) {
291291
throw new Exception\InvalidArgumentException("Resource '$resourceId' not found");
292292
}
293293

@@ -426,8 +426,12 @@ public function removeResourceAll()
426426
* @param Assertion\AssertionInterface $assert
427427
* @return Acl Provides a fluent interface
428428
*/
429-
public function allow($roles = null, $resources = null, $privileges = null, Assertion\AssertionInterface $assert = null)
430-
{
429+
public function allow(
430+
$roles = null,
431+
$resources = null,
432+
$privileges = null,
433+
Assertion\AssertionInterface $assert = null
434+
) {
431435
return $this->setRule(self::OP_ADD, self::TYPE_ALLOW, $roles, $resources, $privileges, $assert);
432436
}
433437

@@ -440,8 +444,12 @@ public function allow($roles = null, $resources = null, $privileges = null, Asse
440444
* @param Assertion\AssertionInterface $assert
441445
* @return Acl Provides a fluent interface
442446
*/
443-
public function deny($roles = null, $resources = null, $privileges = null, Assertion\AssertionInterface $assert = null)
444-
{
447+
public function deny(
448+
$roles = null,
449+
$resources = null,
450+
$privileges = null,
451+
Assertion\AssertionInterface $assert = null
452+
) {
445453
return $this->setRule(self::OP_ADD, self::TYPE_DENY, $roles, $resources, $privileges, $assert);
446454
}
447455

@@ -540,7 +548,7 @@ public function setRule(
540548
}
541549

542550
// ensure that all specified Roles exist; normalize input to array of Role objects or null
543-
if (!is_array($roles)) {
551+
if (! is_array($roles)) {
544552
$roles = [$roles];
545553
} elseif (0 === count($roles)) {
546554
$roles = [null];
@@ -557,11 +565,11 @@ public function setRule(
557565
unset($rolesTemp);
558566

559567
// ensure that all specified Resources exist; normalize input to array of Resource objects or null
560-
if (!is_array($resources)) {
568+
if (! is_array($resources)) {
561569
if (null === $resources && count($this->resources) > 0) {
562570
$resources = array_keys($this->resources);
563571
// Passing a null resource; make sure "global" permission is also set!
564-
if (!in_array(null, $resources)) {
572+
if (! in_array(null, $resources)) {
565573
array_unshift($resources, null);
566574
}
567575
} else {
@@ -588,7 +596,7 @@ public function setRule(
588596
// normalize privileges to array
589597
if (null === $privileges) {
590598
$privileges = [];
591-
} elseif (!is_array($privileges)) {
599+
} elseif (! is_array($privileges)) {
592600
$privileges = [$privileges];
593601
}
594602

@@ -601,7 +609,7 @@ public function setRule(
601609
if (0 === count($privileges)) {
602610
$rules['allPrivileges']['type'] = $type;
603611
$rules['allPrivileges']['assert'] = $assert;
604-
if (!isset($rules['byPrivilegeId'])) {
612+
if (! isset($rules['byPrivilegeId'])) {
605613
$rules['byPrivilegeId'] = [];
606614
}
607615
} else {
@@ -641,7 +649,9 @@ public function setRule(
641649
}
642650
} else {
643651
foreach ($privileges as $privilege) {
644-
if (isset($rules['byPrivilegeId'][$privilege]) && $type === $rules['byPrivilegeId'][$privilege]['type']) {
652+
if (isset($rules['byPrivilegeId'][$privilege])
653+
&& $type === $rules['byPrivilegeId'][$privilege]['type']
654+
) {
645655
unset($rules['byPrivilegeId'][$privilege]);
646656
}
647657
}
@@ -720,7 +730,7 @@ public function isAllowed($role = null, $resource = null, $privilege = null)
720730
// keep track of originally called role
721731
$this->isAllowedRole = $role;
722732
$role = $this->getRoleRegistry()->get($role);
723-
if (!$this->isAllowedRole instanceof Role\RoleInterface) {
733+
if (! $this->isAllowedRole instanceof Role\RoleInterface) {
724734
$this->isAllowedRole = $role;
725735
}
726736
}
@@ -729,7 +739,7 @@ public function isAllowed($role = null, $resource = null, $privilege = null)
729739
// keep track of originally called resource
730740
$this->isAllowedResource = $resource;
731741
$resource = $this->getResource($resource);
732-
if (!$this->isAllowedResource instanceof Resource\ResourceInterface) {
742+
if (! $this->isAllowedResource instanceof Resource\ResourceInterface) {
733743
$this->isAllowedResource = $resource;
734744
}
735745
}
@@ -745,7 +755,9 @@ public function isAllowed($role = null, $resource = null, $privilege = null)
745755
// look for rule on 'allRoles' pseudo-parent
746756
if (null !== ($rules = $this->getRules($resource, null))) {
747757
foreach ($rules['byPrivilegeId'] as $privilege => $rule) {
748-
if (self::TYPE_DENY === ($ruleTypeOnePrivilege = $this->getRuleType($resource, null, $privilege))) {
758+
if (self::TYPE_DENY === (
759+
$ruleTypeOnePrivilege = $this->getRuleType($resource, null, $privilege)
760+
)) {
749761
return false;
750762
}
751763
}
@@ -822,7 +834,7 @@ protected function roleDFSAllPrivileges(Role\RoleInterface $role, Resource\Resou
822834

823835
// This comment is needed due to a strange php-cs-fixer bug
824836
while (null !== ($role = array_pop($dfs['stack']))) {
825-
if (!isset($dfs['visited'][$role->getRoleId()])) {
837+
if (! isset($dfs['visited'][$role->getRoleId()])) {
826838
if (null !== ($result = $this->roleDFSVisitAllPrivileges($role, $resource, $dfs))) {
827839
return $result;
828840
}
@@ -846,8 +858,11 @@ protected function roleDFSAllPrivileges(Role\RoleInterface $role, Resource\Resou
846858
* @return bool|null
847859
* @throws Exception\RuntimeException
848860
*/
849-
protected function roleDFSVisitAllPrivileges(Role\RoleInterface $role, Resource\ResourceInterface $resource = null, &$dfs = null)
850-
{
861+
protected function roleDFSVisitAllPrivileges(
862+
Role\RoleInterface $role,
863+
Resource\ResourceInterface $resource = null,
864+
&$dfs = null
865+
) {
851866
if (null === $dfs) {
852867
throw new Exception\RuntimeException('$dfs parameter may not be null');
853868
}
@@ -884,8 +899,11 @@ protected function roleDFSVisitAllPrivileges(Role\RoleInterface $role, Resource\
884899
* @return bool|null
885900
* @throws Exception\RuntimeException
886901
*/
887-
protected function roleDFSOnePrivilege(Role\RoleInterface $role, Resource\ResourceInterface $resource = null, $privilege = null)
888-
{
902+
protected function roleDFSOnePrivilege(
903+
Role\RoleInterface $role,
904+
Resource\ResourceInterface $resource = null,
905+
$privilege = null
906+
) {
889907
if (null === $privilege) {
890908
throw new Exception\RuntimeException('$privilege parameter may not be null');
891909
}
@@ -901,7 +919,7 @@ protected function roleDFSOnePrivilege(Role\RoleInterface $role, Resource\Resour
901919

902920
// This comment is needed due to a strange php-cs-fixer bug
903921
while (null !== ($role = array_pop($dfs['stack']))) {
904-
if (!isset($dfs['visited'][$role->getRoleId()])) {
922+
if (! isset($dfs['visited'][$role->getRoleId()])) {
905923
if (null !== ($result = $this->roleDFSVisitOnePrivilege($role, $resource, $privilege, $dfs))) {
906924
return $result;
907925
}
@@ -981,8 +999,11 @@ protected function roleDFSVisitOnePrivilege(
981999
* @param null|string $privilege
9821000
* @return string|null
9831001
*/
984-
protected function getRuleType(Resource\ResourceInterface $resource = null, Role\RoleInterface $role = null, $privilege = null)
985-
{
1002+
protected function getRuleType(
1003+
Resource\ResourceInterface $resource = null,
1004+
Role\RoleInterface $role = null,
1005+
$privilege = null
1006+
) {
9861007
// get the rules for the $resource and $role
9871008
if (null === ($rules = $this->getRules($resource, $role))) {
9881009
return;
@@ -995,7 +1016,7 @@ protected function getRuleType(Resource\ResourceInterface $resource = null, Role
9951016
} else {
9961017
return;
9971018
}
998-
} elseif (!isset($rules['byPrivilegeId'][$privilege])) {
1019+
} elseif (! isset($rules['byPrivilegeId'][$privilege])) {
9991020
return;
10001021
} else {
10011022
$rule = $rules['byPrivilegeId'][$privilege];
@@ -1036,8 +1057,11 @@ protected function getRuleType(Resource\ResourceInterface $resource = null, Role
10361057
* @param bool $create
10371058
* @return array|null
10381059
*/
1039-
protected function &getRules(Resource\ResourceInterface $resource = null, Role\RoleInterface $role = null, $create = false)
1040-
{
1060+
protected function &getRules(
1061+
Resource\ResourceInterface $resource = null,
1062+
Role\RoleInterface $role = null,
1063+
$create = false
1064+
) {
10411065
// create a reference to null
10421066
$null = null;
10431067
$nullRef =& $null;
@@ -1049,8 +1073,8 @@ protected function &getRules(Resource\ResourceInterface $resource = null, Role\R
10491073
break;
10501074
}
10511075
$resourceId = $resource->getResourceId();
1052-
if (!isset($this->rules['byResourceId'][$resourceId])) {
1053-
if (!$create) {
1076+
if (! isset($this->rules['byResourceId'][$resourceId])) {
1077+
if (! $create) {
10541078
return $nullRef;
10551079
}
10561080
$this->rules['byResourceId'][$resourceId] = [];
@@ -1060,17 +1084,17 @@ protected function &getRules(Resource\ResourceInterface $resource = null, Role\R
10601084

10611085
// follow $role
10621086
if (null === $role) {
1063-
if (!isset($visitor['allRoles'])) {
1064-
if (!$create) {
1087+
if (! isset($visitor['allRoles'])) {
1088+
if (! $create) {
10651089
return $nullRef;
10661090
}
10671091
$visitor['allRoles']['byPrivilegeId'] = [];
10681092
}
10691093
return $visitor['allRoles'];
10701094
}
10711095
$roleId = $role->getRoleId();
1072-
if (!isset($visitor['byRoleId'][$roleId])) {
1073-
if (!$create) {
1096+
if (! isset($visitor['byRoleId'][$roleId])) {
1097+
if (! $create) {
10741098
return $nullRef;
10751099
}
10761100
$visitor['byRoleId'][$roleId]['byPrivilegeId'] = [];

0 commit comments

Comments
 (0)