diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 07:56:49 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 07:56:49 +0000 |
commit | a415c29efee45520ae252d2aa28f1083a521cd7b (patch) | |
tree | f4ade4b6668ecc0765de7e1424f7c1427ad433ff /wp-includes/class-wp-role.php | |
parent | Initial commit. (diff) | |
download | wordpress-a415c29efee45520ae252d2aa28f1083a521cd7b.tar.xz wordpress-a415c29efee45520ae252d2aa28f1083a521cd7b.zip |
Adding upstream version 6.4.3+dfsg1.upstream/6.4.3+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'wp-includes/class-wp-role.php')
-rw-r--r-- | wp-includes/class-wp-role.php | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/wp-includes/class-wp-role.php b/wp-includes/class-wp-role.php new file mode 100644 index 0000000..b9884f2 --- /dev/null +++ b/wp-includes/class-wp-role.php @@ -0,0 +1,103 @@ +<?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 + */ +#[AllowDynamicProperties] +class WP_Role { + /** + * Role name. + * + * @since 2.0.0 + * @var string + */ + public $name; + + /** + * List of capabilities the role contains. + * + * @since 2.0.0 + * @var bool[] Array of key/value pairs where keys represent a capability name and boolean values + * represent whether the role has that capability. + */ + 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 bool[] $capabilities Array of key/value pairs where keys represent a capability name and boolean values + * represent whether the role has that capability. + */ + 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. + * + * @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. + * + * @since 2.0.0 + * + * @param string $cap Capability name. + * @return bool Whether the role has the given capability. + */ + public function has_cap( $cap ) { + /** + * Filters which capabilities a role has. + * + * @since 2.0.0 + * + * @param bool[] $capabilities Array of key/value pairs where keys represent a capability name and boolean values + * represent whether the role has that capability. + * @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; + } + } +} |