Completed
Push — try/capabilities ( 1eedd1...45f305 )
by
unknown
06:43
created

AtLeastOneRule   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 13
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
dl 0
loc 13
rs 10
c 0
b 0
f 0
wmc 3
lcom 1
cbo 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A check() 0 10 3
1
<?php
2
/**
3
 * A named rule composed of other rules that represents a high-level user capability, e.g. restoring backups
4
 *
5
 * @package automattic/jetpack-capabilities
6
 */
7
8
namespace Automattic\Jetpack\Capabilities;
9
10
// TODO: should this be called "AggregateRule"?
11
// phpcs:ignore Squiz.Commenting.ClassComment.Missing
12
class AtLeastOneRule extends AggregateRule {
13
	// phpcs:ignore Squiz.Commenting.FunctionComment.Missing
14
	public function check( ...$args ) {
15
		foreach ( $this->rules as $rule ) {
16
			$permission = $rule->check();
17
			if ( $permission->granted() ) {
18
				return $permission;
19
			}
20
		}
21
		// TODO: this should be an aggregate permission with all the permission denied reasons available.
22
		return new PermissionDenied( __( 'All aggregate checks failed', 'jetpack' ) );
23
	}
24
}
25