PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 4.7.3
WP STAGING – WordPress Backup, Restore, Migration & Clone v4.7.3
4.9.1 4.9.0 4.8.1 trunk 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.10.0 3.2.0 3.3.1 3.3.2 3.3.3 3.4.1 3.4.3 3.5.0 3.6.0 3.7.1 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 3.9.0 3.9.1 3.9.2 3.9.3 3.9.4 4.0.0 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.8.0
wp-staging / Framework / Component / AbstractTemplateComponent.php
wp-staging / Framework / Component Last commit date
AbstractTemplateComponent.php 4 years ago
AbstractTemplateComponent.php
56 lines
1 <?php
2
3 // TODO PHP7.x; declare(strict_types=1);
4 // TODO PHP7.x; type-hints && return types
5
6 namespace WPStaging\Framework\Component;
7
8 use WPStaging\Framework\Adapter\WpAdapter;
9 use WPStaging\Framework\Security\AccessToken;
10 use WPStaging\Framework\Security\Capabilities;
11 use WPStaging\Framework\Security\Nonce;
12 use WPStaging\Framework\TemplateEngine\TemplateEngine;
13
14 abstract class AbstractTemplateComponent
15 {
16 /** @var TemplateEngine */
17 protected $templateEngine;
18
19 private $accessToken;
20 private $nonce;
21 private $wpAdapter;
22
23 public function __construct(TemplateEngine $templateEngine)
24 {
25 $this->templateEngine = $templateEngine;
26
27 // Todo: Inject using DI
28 $this->accessToken = new AccessToken();
29 $this->nonce = new Nonce();
30 $this->wpAdapter = new WpAdapter();
31 }
32
33 /**
34 * @param string $path
35 * @param array $params
36 *
37 * @return string
38 */
39 public function renderTemplate($path, array $params = [])
40 {
41 return $this->templateEngine->render($path, $params);
42 }
43
44 /**
45 * @return bool Whether the current request should render this template.
46 */
47 protected function canRenderAjax()
48 {
49 $isAjax = $this->wpAdapter->doingAjax();
50 $hasToken = $this->accessToken->requestHasValidToken();
51 $isAuthenticated = current_user_can((new Capabilities())->manageWPSTG()) && $this->nonce->requestHasValidNonce(Nonce::WPSTG_NONCE);
52
53 return $isAjax && ($hasToken || $isAuthenticated);
54 }
55 }
56