HEX
Server: Apache
System: Linux webm004.cluster121.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
User: grainesdfo (155059)
PHP: 5.4.45
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/grainesdfo/www/wp-content/plugins/easing-slider/src/Foundation/Capabilities/Capabilities.php
<?php

namespace EasingSlider\Foundation\Capabilities;

use EasingSlider\Foundation\Contracts\Capabilities\Capabilities as CapabilitiesContract;
use WP_Roles;

/**
 * Exit if accessed directly
 */
if ( ! defined('ABSPATH')) {
	exit;
}

abstract class Capabilities implements CapabilitiesContract
{
	/**
	 * Capabilities
	 *
	 * @var array
	 */
	protected $capabilities;

	/**
	 * Constructor
	 *
	 * @return void
	 */
	public function __construct()
	{
		$this->capabilities = $this->getCapabilities();
	}

	/**
	 * Gets the user roles
	 *
	 * @return \WP_Roles
	 */
	protected function getUserRoles()
	{
		global $wp_roles;

		if ( ! isset($wp_roles)) {
			$wp_roles = new WP_Roles();
		}

		return $wp_roles;
	}

	/**
	 * Adds the capabilities to all user roles
	 *
	 * @return void
	 */
	public function addToRoles()
	{
		$userRoles = $this->getUserRoles();

		foreach ($userRoles->roles as $role => $object) {
			foreach ($this->capabilities as $capability) {
				$userRoles->add_cap($role, $capability);
			}
		}
	}

	/**
	 * Removes the capabilities from all user roles
	 *
	 * @return void
	 */
	public function removeFromRoles()
	{
		$userRoles = $this->getUserRoles();

		foreach ($userRoles->roles as $role => $object) {
			foreach ($this->capabilities as $capability) {
				$userRoles->remove_cap($role, $capability);
			}
		}
	}

	/**
	 * Gets the capabilities
	 *
	 * @return array
	 */
	abstract protected function getCapabilities();
}