HEX
Server: Apache/2.4.62 (Debian)
System: Linux plxsite 6.8.0-47-generic #47-Ubuntu SMP PREEMPT_DYNAMIC Fri Sep 27 21:40:26 UTC 2024 x86_64
User: root (0)
PHP: 8.1.30
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins/wp-crontrol/src/Context/WordPressUserContext.php
<?php
/**
 * WordPress user capability context implementation.
 *
 * @package wp-crontrol
 */

namespace Crontrol\Context;

/**
 * UserContext implementation that checks WordPress user capabilities.
 *
 * This is the production implementation that maps to WordPress capabilities.
 * Currently uses edit_files for PHP cron events and manage_options for
 * URL and standard cron events. More granular capabilities can be added later.
 */
class WordPressUserContext implements UserContext {
	#[\Override]
	public function can_create_php_cron_events(): bool {
		return current_user_can( 'edit_files' );
	}

	#[\Override]
	public function can_edit_php_cron_events(): bool {
		return current_user_can( 'edit_files' );
	}

	#[\Override]
	public function can_delete_php_cron_events(): bool {
		return current_user_can( 'edit_files' );
	}

	#[\Override]
	public function can_run_php_cron_events(): bool {
		return current_user_can( 'manage_options' );
	}

	#[\Override]
	public function can_create_url_cron_events(): bool {
		return current_user_can( 'manage_options' );
	}

	#[\Override]
	public function can_edit_url_cron_events(): bool {
		return current_user_can( 'manage_options' );
	}

	#[\Override]
	public function can_delete_url_cron_events(): bool {
		return current_user_can( 'manage_options' );
	}

	#[\Override]
	public function can_run_url_cron_events(): bool {
		return current_user_can( 'manage_options' );
	}

	#[\Override]
	public function can_create_standard_cron_events(): bool {
		return current_user_can( 'manage_options' );
	}

	#[\Override]
	public function can_edit_standard_cron_events(): bool {
		return current_user_can( 'manage_options' );
	}

	#[\Override]
	public function can_delete_standard_cron_events(): bool {
		return current_user_can( 'manage_options' );
	}

	#[\Override]
	public function can_run_standard_cron_events(): bool {
		return current_user_can( 'manage_options' );
	}
}