Ejemplo n.º 1
0
 /**
  * {@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']);
 }