aboutsummaryrefslogtreecommitdiff
path: root/srcs/wordpress/wp-includes/class-wp-role.php
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-07 13:06:14 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-07 13:06:14 +0100
commit7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8 (patch)
treef7453d7dd5cbaaab246e23810b02d3edf1e451be /srcs/wordpress/wp-includes/class-wp-role.php
parentc59bdcf77c50cbe89b4a93782cdd6d9e7532080e (diff)
downloadft_server-7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8.tar.gz
ft_server-7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8.tar.bz2
ft_server-7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8.zip
Added wordpress
Diffstat (limited to 'srcs/wordpress/wp-includes/class-wp-role.php')
-rw-r--r--srcs/wordpress/wp-includes/class-wp-role.php110
1 files changed, 110 insertions, 0 deletions
diff --git a/srcs/wordpress/wp-includes/class-wp-role.php b/srcs/wordpress/wp-includes/class-wp-role.php
new file mode 100644
index 0000000..fa8c9d0
--- /dev/null
+++ b/srcs/wordpress/wp-includes/class-wp-role.php
@@ -0,0 +1,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;
+ }
+ }
+
+}