Completed
Push — try/capabilities ( ec87c0...074fe2 )
by
unknown
06:15
created

Capabilities::clear()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * Top level object for registering and fetching named capabilities, e.g. 'jetpack.backups.restore'
4
 *
5
 * @package automattic/jetpack-capabilities
6
 */
7
8
namespace Automattic\Jetpack;
9
10
use \Automattic\Jetpack\Capabilities\Capability;
11
12
// phpcs:ignore Squiz.Commenting.ClassComment.Missing
13
class Capabilities {
14
	/**
15
	 * The list of registered capabilities
16
	 *
17
	 * @var array capabilities
18
	 */
19
	private static $capabilities = [];
20
21
	// phpcs:ignore Squiz.Commenting.FunctionComment.Missing
22
	public static function clear() {
23
		self::$capabilities = [];
24
	}
25
26
	// phpcs:ignore Squiz.Commenting.FunctionComment.Missing
27
	public static function get( $name ) {
28
		return self::$capabilities[ $name ];
29
	}
30
31
	// phpcs:ignore Squiz.Commenting.FunctionComment.Missing
32
	public static function register( $capability ) {
33
		// TODO check for clashes?
34
		self::$capabilities[ $capability->name ] = $capability;
35
	}
36
37
	// public static function register_caps()
38
39
	// phpcs:ignore Squiz.Commenting.FunctionComment.Missing
40
	public static function user_has_cap( $allcaps, $caps, $args, $user ) {
41
42
		list( $cap ) = $args;
43
44
		if ( isset( self::$capabilities[ $cap ] ) ) {
45
			$allcaps[ $cap ] = self::$capabilities[ $cap ]->check()->granted();
46
		}
47
48
		return $allcaps;
49
	}
50
}
51
52
// add_action( 'admin_init', '\Automattic\Jetpack\Capabilities', 'register_caps' );
53
add_filter( 'user_has_cap', [ '\Automattic\Jetpack\Capabilities', 'user_has_cap' ], 10, 4 );
54
// add_filter( 'map_meta_cap', [ '\Automattic\Jetpack\Capabilities', 'map_meta_cap' ], 10, 4 );
55