/var/www/hkosl.com/aga/wp-includes/class-wp-role.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<?php
/**
 * User API: WP_Role class
 *
 * @package WordPress
 * @subpackage Users
 * @since 4.4.0
 */

/**
 * Core class used to extend the user roles API.
 *
 * @since 2.0.0
 */
class WP_Role {
    
/**
     * Role name.
     *
     * @since 2.0.0
     * @var string
     */
    
public $name;

    
/**
     * List of capabilities the role contains.
     *
     * @since 2.0.0
     * @var array
     */
    
public $capabilities;

    
/**
     * Constructor - Set up object properties.
     *
     * The list of capabilities, must have the key as the name of the capability
     * and the value a boolean of whether it is granted to the role.
     *
     * @since 2.0.0
     *
     * @param string $role Role name.
     * @param array $capabilities List of capabilities.
     */
    
public function __construct$role$capabilities ) {
        
$this->name         $role;
        
$this->capabilities $capabilities;
    }

    
/**
     * Assign role a capability.
     *
     * @since 2.0.0
     *
     * @param string $cap Capability name.
     * @param bool $grant Whether role has capability privilege.
     */
    
public function add_cap$cap$grant true ) {
        
$this->capabilities$cap ] = $grant;
        
wp_roles()->add_cap$this->name$cap$grant );
    }

    
/**
     * Removes a capability from a role.
     *
     * This is a container for WP_Roles::remove_cap() to remove the
     * capability from the role. That is to say, that WP_Roles::remove_cap()
     * implements the functionality, but it also makes sense to use this class,
     * because you don't need to enter the role name.
     *
     * @since 2.0.0
     *
     * @param string $cap Capability name.
     */
    
public function remove_cap$cap ) {
        unset( 
$this->capabilities$cap ] );
        
wp_roles()->remove_cap$this->name$cap );
    }

    
/**
     * Determines whether the role has the given capability.
     *
     * The capabilities is passed through the {@see 'role_has_cap'} filter.
     * The first parameter for the hook is the list of capabilities the class
     * has assigned. The second parameter is the capability name to look for.
     * The third and final parameter for the hook is the role name.
     *
     * @since 2.0.0
     *
     * @param string $cap Capability name.
     * @return bool True if the role has the given capability. False otherwise.
     */
    
public function has_cap$cap ) {
        
/**
         * Filters which capabilities a role has.
         *
         * @since 2.0.0
         *
         * @param bool[] $capabilities Associative array of capabilities for the role.
         * @param string $cap          Capability name.
         * @param string $name         Role name.
         */
        
$capabilities apply_filters'role_has_cap'$this->capabilities$cap$this->name );

        if ( ! empty( 
$capabilities$cap ] ) ) {
            return 
$capabilities$cap ];
        } else {
            return 
false;
        }
    }

}