File "AccessResolver.php"
Full Path: /home/jovision/public_html/wp/wp-content/plugins/wpforms-lite/src/Admin/Dashboard/AccessResolver.php
File size: 1.25 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace WPForms\Admin\Dashboard;
use WPForms\Admin\Dashboard\Widgets\AbstractWidget;
/**
* Builds the immutable access context for the Dashboard page.
*
* @since 2.0.2
*/
class AccessResolver {
/**
* Cached context.
*
* @since 2.0.2
*
* @var AccessContext|null
*/
private $context;
/**
* Get the access context, building it on first call.
*
* @since 2.0.2
*
* @return AccessContext
*/
public function get_context(): AccessContext {
if ( $this->context === null ) {
$this->context = new AccessContext( $this->get_data() );
}
return $this->context;
}
/**
* Get the raw context data. The Pro override adds license-derived values.
*
* @since 2.0.2
*
* @return array
*/
protected function get_data(): array {
return [
// Mirrors the capability the Dashboard submenu is registered with, so a site
// filtering `wpforms_manage_cap` does not reach a page whose AJAX actions all
// reject it.
'can_manage' => current_user_can( wpforms_get_capability_manage_options() ),
'user_id' => get_current_user_id(),
'dismissals' => Helpers::get_user_meta_array( 'wpforms_dismissed' ),
'widget_settings' => Helpers::get_user_meta_array( AbstractWidget::SETTINGS_META_KEY ),
];
}
}