/** * {@inheritdoc} */ protected function getPermissionForAttribute($class, $identifier, $attribute) { if (is_a($this->object, $this->className, true) && ($this->object->getCustomer() && !$this->object->getCustomer()->getOriginId())) { return self::ACCESS_DENIED; } if (is_a($this->object, $this->className, true) && $this->object->getChannel() && !$this->settingsProvider->isChannelApplicable($this->object->getChannel()->getId())) { return self::ACCESS_DENIED; } if (!$this->settingsProvider->hasApplicableChannels()) { return self::ACCESS_DENIED; } return self::ACCESS_ABSTAIN; }
/** * @param NewsletterSubscriber $newsletterSubscriber * @return bool */ protected function isProcessingAllowed(NewsletterSubscriber $newsletterSubscriber) { $customer = null; $customerOriginId = null; $isProcessingAllowed = true; if ($newsletterSubscriber->getCustomer()) { $customerOriginId = $newsletterSubscriber->getCustomer()->getOriginId(); $customer = $this->databaseHelper->findOneByIdentity($newsletterSubscriber->getCustomer()); } if (!$customer && $customerOriginId) { $this->appendDataToContext(ContextCustomerReader::CONTEXT_POST_PROCESS_CUSTOMERS, $customerOriginId); $isProcessingAllowed = false; } return $isProcessingAllowed; }
/** * @depends testUnsubscribeByCustomer */ public function testSubscribeByCustomer() { $this->client->request('GET', $this->getUrl('orocrm_magento_newsletter_subscriber_subscribe_customer', ['id' => $this->subscriber->getCustomer()->getId()])); $result = $this->getJsonResponseContent($this->client->getResponse(), 200); $this->assertEquals(NewsletterSubscriber::STATUS_SUBSCRIBED, $result['state']); }
public function testUnsubscribeByCustomer() { $this->client->request('GET', $this->getUrl('orocrm_magento_newsletter_subscriber_unsubscribe_customer', ['id' => $this->subscriber->getCustomer()->getId()])); $result = $this->getJsonResponseContent($this->client->getResponse(), 200); $this->assertTrue($result['successful']); }