AccessControl::NO_ACCESS_RESTRICTION, ]; /** @var UserSubscription\Pages */ private $subscriptionPages; public function __construct(UserSubscription\Pages $subscriptionPages) { $this->subscriptionPages = $subscriptionPages; } public function captcha($data) { $this->initSubscriptionPage(UserSubscription\Pages::ACTION_CAPTCHA, $data); } public function captchaImage($data) { $captcha = new UserSubscription\Captcha; $width = !empty($data['width']) ? (int)$data['width'] : null; $height = !empty($data['height']) ? (int)$data['height'] : null; $sessionId = !empty($data['captcha_session_id']) ? $data['captcha_session_id'] : null; return $captcha->renderImage($width, $height, $sessionId); } public function confirm($data) { $subscription = $this->initSubscriptionPage(UserSubscription\Pages::ACTION_CONFIRM, $data); $subscription->confirm(); } public function manage($data) { $this->initSubscriptionPage(UserSubscription\Pages::ACTION_MANAGE, $data); } public function unsubscribe($data) { $subscription = $this->initSubscriptionPage(UserSubscription\Pages::ACTION_UNSUBSCRIBE, $data); $subscription->unsubscribe(); } private function initSubscriptionPage($action, $data) { return $this->subscriptionPages->init($action, $data, true, true); } }