Ejemplo n.º 1
0
 public function testExecuteWithException()
 {
     $this->prepareMocksForTestExecute();
     $this->pageRepository->expects($this->once())->method('save')->with($this->cmsPage)->willThrowException(new \Exception(__('Exception')));
     $this->resultJson->expects($this->once())->method('setData')->with(['messages' => ['[Page ID: 1] Error message', '[Page ID: 1] Something went wrong while saving the page.'], 'error' => true])->willReturnSelf();
     $this->assertSame($this->resultJson, $this->controller->execute());
 }
Ejemplo n.º 2
0
 /**
  * @return \Magento\Framework\Controller\ResultInterface
  */
 public function execute()
 {
     /** @var \Magento\Framework\Controller\Result\Json $resultJson */
     $resultJson = $this->jsonFactory->create();
     $error = false;
     $messages = [];
     $postItems = $this->getRequest()->getParam('items', []);
     if (!($this->getRequest()->getParam('isAjax') && count($postItems))) {
         return $resultJson->setData(['messages' => [__('Please correct the data sent.')], 'error' => true]);
     }
     foreach (array_keys($postItems) as $pageId) {
         /** @var \Magento\Cms\Model\Page $page */
         $page = $this->pageRepository->getById($pageId);
         try {
             $pageData = $this->filterPost($postItems[$pageId]);
             $this->validatePost($pageData, $page, $error, $messages);
             $extendedPageData = $page->getData();
             $this->setCmsPageData($page, $extendedPageData, $pageData);
             $this->pageRepository->save($page);
         } catch (\Magento\Framework\Exception\LocalizedException $e) {
             $messages[] = $this->getErrorWithPageId($page, $e->getMessage());
             $error = true;
         } catch (\RuntimeException $e) {
             $messages[] = $this->getErrorWithPageId($page, $e->getMessage());
             $error = true;
         } catch (\Exception $e) {
             $messages[] = $this->getErrorWithPageId($page, __('Something went wrong while saving the page.'));
             $error = true;
         }
     }
     return $resultJson->setData(['messages' => $messages, 'error' => $error]);
 }
 /**
  * Return CMS page ID
  *
  * @return int|null
  */
 public function getPageId()
 {
     try {
         return $this->pageRepository->getById($this->context->getRequest()->getParam('page_id'))->getId();
     } catch (NoSuchEntityException $e) {
     }
     return null;
 }
Ejemplo n.º 4
0
 /**
  * Selected page getter
  * @return \Magento\Cms\Api\PageRepositoryInterface|bool
  */
 public function getSelected()
 {
     $identifier = $this->getSelectedIdentifier();
     if (!empty($identifier)) {
         try {
             return $this->pageRepository->getById($identifier);
         } catch (NoSuchEntityException $e) {
             return false;
         }
     }
     return false;
 }
Ejemplo n.º 5
0
 /**
  * Test search \Magento\Cms\Api\Data\PageInterface
  */
 public function testSearch()
 {
     $pageTitle = 'Page title';
     $pageIdentifier = 'page-title' . uniqid();
     /** @var  \Magento\Cms\Api\Data\PageInterface $pageDataObject */
     $pageDataObject = $this->pageFactory->create();
     $pageDataObject->setTitle($pageTitle)->setIdentifier($pageIdentifier);
     $this->currentPage = $this->pageRepository->save($pageDataObject);
     $filterBuilder = Bootstrap::getObjectManager()->create('Magento\\Framework\\Api\\FilterBuilder');
     $searchCriteriaBuilder = Bootstrap::getObjectManager()->create('Magento\\Framework\\Api\\SearchCriteriaBuilder');
     $filter = $filterBuilder->setField(PageInterface::IDENTIFIER)->setValue($pageIdentifier)->create();
     $searchCriteriaBuilder->addFilter([$filter]);
     $searchData = $searchCriteriaBuilder->create()->__toArray();
     $requestData = ['searchCriteria' => $searchData];
     $serviceInfo = ['rest' => ['resourcePath' => self::RESOURCE_PATH . "/search" . '?' . http_build_query($requestData), 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET], 'soap' => ['service' => self::SERVICE_NAME, 'serviceVersion' => self::SERVICE_VERSION, 'operation' => self::SERVICE_NAME . 'GetList']];
     $searchResult = $this->_webApiCall($serviceInfo, $requestData);
     $this->assertEquals(1, $searchResult['total_count']);
     $this->assertEquals($searchResult['items'][0][PageInterface::IDENTIFIER], $pageIdentifier);
 }
Ejemplo n.º 6
0
    /**
     * {@inheritdoc}
     * @param  ModuleDataSetupInterface $setup
     * @param  ModuleContextInterface   $context
     * @return void
     */
    public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
    {
        $this->configResource->saveConfig(AgreementsProvider::PATH_ENABLED, 1, ScopeConfigInterface::SCOPE_TYPE_DEFAULT, 0);
        $owner = $this->scopeConfig->getValue(StoreInformation::XML_PATH_STORE_INFO_NAME, ScopeInterface::SCOPE_STORE);
        if (empty($owner)) {
            $owner = 'Nome negozio';
        }
        $content = <<<EOD
Informativa Ai sensi del D.Lgs. 196/2003 che prevede la tutela delle persone e di altri soggetti rispetto al trattamento dei dati personali

Desideriamo informarla che i dati personali da lei forniti ovvero altrimenti acquisiti nell'ambito della nostra attività potranno essere trattati da {$owner} su supporto cartaceo e/o con l'ausilio di strumenti informatici nel rispetto della normativa di cui sopra per finalità gestionali, invio documentazione tecnica, statistiche, commerciali, marketing, promozionali o comunicazioni commerciali.
Ai sensi dell'art. 7 del D.Lgs. 196/2003 in ogni momento potrà avere accesso agli stessi dati, chiederne la modifica, la cancellazione oppure opporsi al loro utilizzo. Titolare del trattamento è {$owner}.


Oggetto dell'informativa:
Le informazioni oggetto della presente comunicazione riguardano i vostri dati personali comuni forniti da voi stessi e tutti i dati, anche sensibili (ovvero idonei a rivelare le convinzioni religiose, le opinioni politiche, l' adesione a partiti, sindacati, associazioni od organizzazioni a carattere religioso, politico e sindacale, nonché i dati idonei a rivelare lo stato di salute) da voi conferitici direttamente, nonché acquisiti in futuro sia da noi direttamente che tramite terzi oppure attraverso l'ausilio di sistemi elettronici, telematici e con ogni altro mezzo messo a disposizione dalla tecnica e dall'evoluzione tecnologica nel rispetto della legge.
Finalità del trattamento:
Il trattamento dei vostri dati avviene per finalità atte al conseguimento dei nostri scopi sociali e, comunque, connessi e strumentali alle attività della nostra società, quali ad esempio:
finalità connesse all'acquisizione di informazioni, utili all'attivazione o alla prosecuzione di rapporti con la nostra società;
finalità connesse alla personalizzazione ed all' implementazione dei servizi forniti dalla nostra società ed all'eventuale verifica del livello di soddisfazione;
finalità connesse alla comunicazione di informazioni relative a nuove offerte di prodotti e di servizi della nostra società. In particolare per i servizi relativi alla gestione della posta e di domini web, tutte le informazioni sono potenzialmente accessibili dal nostro personale unicamente per garantirvi il ripristino dei dati di vostra proprietà. {$owner} non è assolutamente responsabile del loro contenuto, né potrà utilizzare tali informazioni per fini differenti da quello indicato.


Modalità del trattamento:
I dati personali da voi forniti saranno inseriti in una banca dati e/o conservati in archivi cartacei o su supporto magnetico e saranno da noi trattati manualmente oppure attraverso l'ausilio di sistemi elettronici, telematici e con ogni altro mezzo messo a disposizione dalla tecnica e dall'evoluzione tecnologica nel rispetto della legge.
Il trattamento dei dati avverrà in modo lecito e corretto e, comunque, in modo da garantire la sicurezza e la riservatezza dei dati stessi.
I dati di vostra proprietà ed archiviati presso {$owner} in formato digitale, saranno invece conservati separatamente e saranno accessibili unicamente su vostra richiesta e per fini di manutenzione/ripristino. Non potendo distinguere i dati a cui {$owner} può potenzialmente accedere, verranno trattati come dati di tipo sensibile, e saranno pertanto adottate le corrispondenti misure di sicurezza informatiche a vostra tutela.
Natura obbligatoria e facoltativa del conferimento e conseguenze dell'eventuale rifiuto:
Il conferimento da parte vostra dei dati per le finalità di cui ai punti 2-a e 2-b sopra menzionate è obbligatorio.
L'eventuale vostro rifiuto di fornire i dati o parte di essi può comportare l'impedimento nell'esecuzione del rapporto.
Il conferimento dei dati potrebbe rappresentare, inoltre, un onere per voi necessario al fine di poterci consentire di adempiere ad obblighi legali connessi a norme civilistiche, fiscali e contabili.
Il conferimento da parte vostra dei dati per le finalità di cui al punto 2-c sopra menzionato è facoltativo.
Soggetti ai quali possono essere comunicati i dati:
I vostri dati personali potranno da noi essere comunicati, per quanto di loro rispettiva e specifica competenza, ad Enti ed in generale ad ogni soggetto pubblico e privato, società collegate, controllate, controllanti rispetto al quale vi sia per noi obbligo di comunicazione e ciò anche al fine del più corretto adempimento di ogni eventuale rispettivo obbligo (anche di natura strumentale) comunque connesso o riferibile ai rapporti presenti e futuri che si andranno con voi ad instaurare, imposto da leggi e/o regolamenti o per il conseguimento delle finalità sopra espresse. I dati in nostro possesso non saranno in nessun caso oggetto di diffusione.


Diritti dell'interessato:
Rispetto ai dati in nostro possesso, è in vostra facoltà esercitare tutti i diritti riconosciuti dall'art. 7 del D.Lgs. 196/2003, che per Sua comodità riproduciamo integralmente:
L'interessato ha diritto di ottenere la conferma dell'esistenza o meno di dati personali che lo riguardano, anche se non ancora registrati, e la loro comunicazione in forma intelligibile.
L'interessato ha diritto di ottenere l'indicazione:
dell'origine dei dati personali;
delle finalità e modalità del trattamento;
della logica applicata in caso di trattamento effettuato con l'ausilio di strumenti elettronici;
degli estremi identificativi del titolare, dei responsabili e del rappresentante designato ai sensi dell'articolo 5, comma 2;
dei soggetti o delle categorie di soggetti ai quali i dati personali possono essere comunicati o che possono venirne a conoscenza in qualità di rappresentante designato nel territorio dello Stato, di responsabili o incaricati.
L'interessato ha diritto di ottenere:
l'aggiornamento, la rettificazione ovvero, quando vi ha interesse, l'integrazione dei dati;
la cancellazione, la trasformazione in forma anonima o il blocco dei dati trattati in violazione di legge, compresi quelli di cui non è necessaria la conservazione in relazione agli scopi per i quali i dati sono stati raccolti o successivamente trattati;
l'attestazione che le operazioni di cui alle lettere a) e b) sono state portate a conoscenza, anche per quanto riguarda il loro contenuto, di coloro ai quali i dati sono stati comunicati o diffusi, eccettuato il caso in cui tale adempimento si rivela impossibile o comporta un impiego di mezzi manifestamente sproporzionato rispetto al diritto tutelato.
L'interessato ha diritto di opporsi, in tutto o in parte:
per motivi legittimi al trattamento dei dati personali che lo riguardano, ancorché pertinenti allo scopo della raccolta;
al trattamento di dati personali che lo riguardano a fini di invio di materiale pubblicitario o di vendita diretta o per il compimento di ricerche di mercato o di comunicazione commerciale.
EOD;
        $agreementData = ['name' => 'Privacy Policy', 'is_active' => 1, 'is_html' => 0, 'mode' => AgreementModeOptions::MODE_MANUAL, 'stores' => [0], 'checkbox_text' => 'Autorizzo il trattamento dei dati personali ai sensi dell\'articolo 13 d.lgs. 196/2003', 'content' => $content, 'content_height' => ''];
        $agreement = $this->createAgreement()->setData($agreementData)->save();
        $this->configResource->saveConfig(PrivacyAgreement::XML_PATH_PRIVACY_SETTINGS_AGREEMENT_ID, $agreement->getId(), ScopeConfigInterface::SCOPE_TYPE_DEFAULT, 0);
        try {
            $this->pageRepository->getById(PrivacyPage::PAGE_IDENTIFIER);
        } catch (NoSuchEntityException $e) {
            $pageData = ['title' => 'Privacy Policy', 'content_heading' => 'Privacy Policy', 'page_layout' => '1column', 'identifier' => PrivacyPage::PAGE_IDENTIFIER, 'content' => '{{widget type="Artera\\Privacy\\Block\\Widget"}}', 'is_active' => 1, 'stores' => [0], 'sort_order' => 0];
            $this->createPage()->setData($pageData)->save();
        }
    }