Commit a00f1f42a7fbc5eb18e6456284975691fe189317
1 parent
1f6e9673
Social auth + view history
Showing
12 changed files
with
446 additions
and
70 deletions
Show diff stats
backend/config/main.php
... | ... | @@ -35,17 +35,21 @@ |
35 | 35 | 'variant-option-complementary' => 'artbox\catalog\controllers\VariantOptionComplController', |
36 | 36 | 'variant-option-exclusion' => 'artbox\catalog\controllers\VariantOptionExclController', |
37 | 37 | 'product-option-complementary' => 'artbox\catalog\controllers\ProductOptionComplController', |
38 | - 'product-option-exclusion' => 'artbox\catalog\controllers\ProductOptionExclController', | |
39 | - 'import' => 'artbox\catalog\controllers\ImportController', | |
40 | - 'blog-article' => 'artbox\weblog\controllers\ArticleController', | |
41 | - 'blog-category' => 'artbox\weblog\controllers\CategoryController', | |
42 | - 'blog-tag' => 'artbox\weblog\controllers\TagController', | |
43 | - 'order' => 'artbox\order\controllers\OrderController', | |
44 | - 'order-product' => 'artbox\order\controllers\OrderProductController', | |
45 | - 'label' => 'artbox\order\controllers\LabelController', | |
46 | - 'delivery' => 'artbox\order\controllers\DeliveryController', | |
47 | - 'payment' => 'artbox\order\controllers\PaymentController', | |
48 | - 'sitemap' => 'artbox\core\controllers\SitemapController', | |
38 | + 'product-option-exclusion' => 'artbox\catalog\controllers\ProductOptionExclController', | |
39 | + 'import' => 'artbox\catalog\controllers\ImportController', | |
40 | + 'blog-article' => 'artbox\weblog\controllers\ArticleController', | |
41 | + 'blog-category' => 'artbox\weblog\controllers\CategoryController', | |
42 | + 'blog-tag' => 'artbox\weblog\controllers\TagController', | |
43 | + 'order' => 'artbox\order\controllers\OrderController', | |
44 | + 'order-product' => 'artbox\order\controllers\OrderProductController', | |
45 | + 'label' => 'artbox\order\controllers\LabelController', | |
46 | + 'delivery' => 'artbox\order\controllers\DeliveryController', | |
47 | + 'payment' => 'artbox\order\controllers\PaymentController', | |
48 | + 'sitemap' => 'artbox\core\controllers\SitemapController', | |
49 | + 'comment' => [ | |
50 | + 'class' => 'artbox\webcomment\controllers\ManageController', | |
51 | + 'viewPath' => '@artbox/webcomment/views/manage', | |
52 | + ], | |
49 | 53 | ], |
50 | 54 | 'components' => [ |
51 | 55 | 'assetManager' => [ | ... | ... |
common/config/main.php
composer.json
... | ... | @@ -35,7 +35,8 @@ |
35 | 35 | "bower-asset/amcharts": "@dev", |
36 | 36 | "bower-asset/pnotify": "@dev", |
37 | 37 | "kartik-v/yii2-widget-colorinput": "*", |
38 | - "kartik-v/yii2-widget-datepicker": "@dev" | |
38 | + "kartik-v/yii2-widget-datepicker": "@dev", | |
39 | + "nodge/yii2-eauth": "~2.0" | |
39 | 40 | }, |
40 | 41 | "require-dev": { |
41 | 42 | "yiisoft/yii2-debug": "~2.0.0", | ... | ... |
composer.lock
... | ... | @@ -4,7 +4,7 @@ |
4 | 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", |
5 | 5 | "This file is @generated automatically" |
6 | 6 | ], |
7 | - "content-hash": "5df5513d6efdd9ab201fd9f3e65ba409", | |
7 | + "content-hash": "f43dbc89b0b20b177ad04a1c8c260992", | |
8 | 8 | "packages": [ |
9 | 9 | { |
10 | 10 | "name": "2amigos/yii2-tinymce-widget", |
... | ... | @@ -575,16 +575,16 @@ |
575 | 575 | }, |
576 | 576 | { |
577 | 577 | "name": "ezyang/htmlpurifier", |
578 | - "version": "v4.9.2", | |
578 | + "version": "v4.9.3", | |
579 | 579 | "source": { |
580 | 580 | "type": "git", |
581 | 581 | "url": "https://github.com/ezyang/htmlpurifier.git", |
582 | - "reference": "6d50e5282afdfdfc3e0ff6d192aff56c5629b3d4" | |
582 | + "reference": "95e1bae3182efc0f3422896a3236e991049dac69" | |
583 | 583 | }, |
584 | 584 | "dist": { |
585 | 585 | "type": "zip", |
586 | - "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/6d50e5282afdfdfc3e0ff6d192aff56c5629b3d4", | |
587 | - "reference": "6d50e5282afdfdfc3e0ff6d192aff56c5629b3d4", | |
586 | + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/95e1bae3182efc0f3422896a3236e991049dac69", | |
587 | + "reference": "95e1bae3182efc0f3422896a3236e991049dac69", | |
588 | 588 | "shasum": "" |
589 | 589 | }, |
590 | 590 | "require": { |
... | ... | @@ -618,7 +618,7 @@ |
618 | 618 | "keywords": [ |
619 | 619 | "html" |
620 | 620 | ], |
621 | - "time": "2017-03-13T06:30:53+00:00" | |
621 | + "time": "2017-06-03T02:28:16+00:00" | |
622 | 622 | }, |
623 | 623 | { |
624 | 624 | "name": "firebase/php-jwt", |
... | ... | @@ -1545,6 +1545,68 @@ |
1545 | 1545 | "time": "2017-04-12 09:00:24" |
1546 | 1546 | }, |
1547 | 1547 | { |
1548 | + "name": "lusitanian/oauth", | |
1549 | + "version": "v0.3.6", | |
1550 | + "source": { | |
1551 | + "type": "git", | |
1552 | + "url": "https://github.com/Lusitanian/PHPoAuthLib.git", | |
1553 | + "reference": "4ce8c488971410233eb3b1e6d9ac4e81debb41d5" | |
1554 | + }, | |
1555 | + "dist": { | |
1556 | + "type": "zip", | |
1557 | + "url": "https://api.github.com/repos/Lusitanian/PHPoAuthLib/zipball/4ce8c488971410233eb3b1e6d9ac4e81debb41d5", | |
1558 | + "reference": "4ce8c488971410233eb3b1e6d9ac4e81debb41d5", | |
1559 | + "shasum": "" | |
1560 | + }, | |
1561 | + "require": { | |
1562 | + "php": ">=5.3.0" | |
1563 | + }, | |
1564 | + "require-dev": { | |
1565 | + "phpunit/phpunit": "3.7.*", | |
1566 | + "predis/predis": "0.8.*@dev", | |
1567 | + "symfony/http-foundation": "~2.1" | |
1568 | + }, | |
1569 | + "suggest": { | |
1570 | + "ext-openssl": "Allows for usage of secure connections with the stream-based HTTP client.", | |
1571 | + "predis/predis": "Allows using the Redis storage backend.", | |
1572 | + "symfony/http-foundation": "Allows using the Symfony Session storage backend." | |
1573 | + }, | |
1574 | + "type": "library", | |
1575 | + "extra": { | |
1576 | + "branch-alias": { | |
1577 | + "dev-master": "0.1-dev" | |
1578 | + } | |
1579 | + }, | |
1580 | + "autoload": { | |
1581 | + "psr-0": { | |
1582 | + "OAuth": "src", | |
1583 | + "OAuth\\Unit": "tests" | |
1584 | + } | |
1585 | + }, | |
1586 | + "notification-url": "https://packagist.org/downloads/", | |
1587 | + "license": [ | |
1588 | + "MIT" | |
1589 | + ], | |
1590 | + "authors": [ | |
1591 | + { | |
1592 | + "name": "David Desberg", | |
1593 | + "email": "david@daviddesberg.com" | |
1594 | + }, | |
1595 | + { | |
1596 | + "name": "Pieter Hordijk", | |
1597 | + "email": "info@pieterhordijk.com" | |
1598 | + } | |
1599 | + ], | |
1600 | + "description": "PHP 5.3+ oAuth 1/2 Library", | |
1601 | + "keywords": [ | |
1602 | + "Authentication", | |
1603 | + "authorization", | |
1604 | + "oauth", | |
1605 | + "security" | |
1606 | + ], | |
1607 | + "time": "2015-09-09T06:43:02+00:00" | |
1608 | + }, | |
1609 | + { | |
1548 | 1610 | "name": "monolog/monolog", |
1549 | 1611 | "version": "1.22.1", |
1550 | 1612 | "source": { |
... | ... | @@ -1718,6 +1780,105 @@ |
1718 | 1780 | "time": "2016-11-29T18:17:37+00:00" |
1719 | 1781 | }, |
1720 | 1782 | { |
1783 | + "name": "nodge/lightopenid", | |
1784 | + "version": "1.1.2", | |
1785 | + "source": { | |
1786 | + "type": "git", | |
1787 | + "url": "https://github.com/Nodge/LightOpenID.git", | |
1788 | + "reference": "a5492cc0c932c557b7e9b54a6e5bbd85cc5fa041" | |
1789 | + }, | |
1790 | + "dist": { | |
1791 | + "type": "zip", | |
1792 | + "url": "https://api.github.com/repos/Nodge/LightOpenID/zipball/a5492cc0c932c557b7e9b54a6e5bbd85cc5fa041", | |
1793 | + "reference": "a5492cc0c932c557b7e9b54a6e5bbd85cc5fa041", | |
1794 | + "shasum": "" | |
1795 | + }, | |
1796 | + "require": { | |
1797 | + "php": ">=5.2" | |
1798 | + }, | |
1799 | + "type": "library", | |
1800 | + "autoload": { | |
1801 | + "classmap": [ | |
1802 | + "openid.php", | |
1803 | + "provider/provider.php" | |
1804 | + ] | |
1805 | + }, | |
1806 | + "notification-url": "https://packagist.org/downloads/", | |
1807 | + "license": [ | |
1808 | + "MIT License" | |
1809 | + ], | |
1810 | + "authors": [ | |
1811 | + { | |
1812 | + "name": "Mewp", | |
1813 | + "homepage": "http://code.google.com/p/lightopenid/" | |
1814 | + }, | |
1815 | + { | |
1816 | + "name": "Ignat Ignatov", | |
1817 | + "homepage": "https://github.com/iignatov/LightOpenID" | |
1818 | + } | |
1819 | + ], | |
1820 | + "description": "Lightweight PHP5 library for easy OpenID authentication.", | |
1821 | + "homepage": "https://github.com/Nodge/LightOpenID", | |
1822 | + "keywords": [ | |
1823 | + "Authentication", | |
1824 | + "OpenId" | |
1825 | + ], | |
1826 | + "time": "2013-08-31T16:48:56+00:00" | |
1827 | + }, | |
1828 | + { | |
1829 | + "name": "nodge/yii2-eauth", | |
1830 | + "version": "2.5.0", | |
1831 | + "source": { | |
1832 | + "type": "git", | |
1833 | + "url": "https://github.com/Nodge/yii2-eauth.git", | |
1834 | + "reference": "04798651fdb3a0db9ed5272330f18b26733507a0" | |
1835 | + }, | |
1836 | + "dist": { | |
1837 | + "type": "zip", | |
1838 | + "url": "https://api.github.com/repos/Nodge/yii2-eauth/zipball/04798651fdb3a0db9ed5272330f18b26733507a0", | |
1839 | + "reference": "04798651fdb3a0db9ed5272330f18b26733507a0", | |
1840 | + "shasum": "" | |
1841 | + }, | |
1842 | + "require": { | |
1843 | + "lib-curl": "*", | |
1844 | + "lusitanian/oauth": "~0.3.0", | |
1845 | + "nodge/lightopenid": "~1.1.0", | |
1846 | + "php": ">=5.4.0", | |
1847 | + "yiisoft/yii2": "*" | |
1848 | + }, | |
1849 | + "type": "yii2-extension", | |
1850 | + "extra": { | |
1851 | + "bootstrap": "nodge\\eauth\\Bootstrap" | |
1852 | + }, | |
1853 | + "autoload": { | |
1854 | + "psr-4": { | |
1855 | + "nodge\\eauth\\": "src/" | |
1856 | + } | |
1857 | + }, | |
1858 | + "notification-url": "https://packagist.org/downloads/", | |
1859 | + "license": [ | |
1860 | + "New BSD License" | |
1861 | + ], | |
1862 | + "authors": [ | |
1863 | + { | |
1864 | + "name": "Maxim Zemskov", | |
1865 | + "email": "nodge@yandex.ru", | |
1866 | + "homepage": "http://nodge.ru/" | |
1867 | + } | |
1868 | + ], | |
1869 | + "description": "Yii2 EAuth Extension. EAuth allows to authenticate users with accounts on other websites (Google, Facebook, Twitter, etc).", | |
1870 | + "homepage": "https://github.com/Nodge/yii2-eauth", | |
1871 | + "keywords": [ | |
1872 | + "Authentication", | |
1873 | + "OpenId", | |
1874 | + "eauth", | |
1875 | + "extension", | |
1876 | + "oauth", | |
1877 | + "yii2" | |
1878 | + ], | |
1879 | + "time": "2017-04-09T20:23:01+00:00" | |
1880 | + }, | |
1881 | + { | |
1721 | 1882 | "name": "phpoffice/phpexcel", |
1722 | 1883 | "version": "1.8.1", |
1723 | 1884 | "source": { |
... | ... | @@ -1776,16 +1937,16 @@ |
1776 | 1937 | }, |
1777 | 1938 | { |
1778 | 1939 | "name": "phpseclib/phpseclib", |
1779 | - "version": "2.0.5", | |
1940 | + "version": "2.0.6", | |
1780 | 1941 | "source": { |
1781 | 1942 | "type": "git", |
1782 | 1943 | "url": "https://github.com/phpseclib/phpseclib.git", |
1783 | - "reference": "f8dd0e18d2328c447dd4190fecd11ef52680d968" | |
1944 | + "reference": "34a7699e6f31b1ef4035ee36444407cecf9f56aa" | |
1784 | 1945 | }, |
1785 | 1946 | "dist": { |
1786 | 1947 | "type": "zip", |
1787 | - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/f8dd0e18d2328c447dd4190fecd11ef52680d968", | |
1788 | - "reference": "f8dd0e18d2328c447dd4190fecd11ef52680d968", | |
1948 | + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/34a7699e6f31b1ef4035ee36444407cecf9f56aa", | |
1949 | + "reference": "34a7699e6f31b1ef4035ee36444407cecf9f56aa", | |
1789 | 1950 | "shasum": "" |
1790 | 1951 | }, |
1791 | 1952 | "require": { |
... | ... | @@ -1864,7 +2025,7 @@ |
1864 | 2025 | "x.509", |
1865 | 2026 | "x509" |
1866 | 2027 | ], |
1867 | - "time": "2017-05-08T05:58:35+00:00" | |
2028 | + "time": "2017-06-05T06:31:10+00:00" | |
1868 | 2029 | }, |
1869 | 2030 | { |
1870 | 2031 | "name": "psr/cache", |
... | ... | @@ -2253,21 +2414,21 @@ |
2253 | 2414 | }, |
2254 | 2415 | { |
2255 | 2416 | "name": "yiisoft/yii2", |
2256 | - "version": "2.0.11.2", | |
2417 | + "version": "2.0.12", | |
2257 | 2418 | "source": { |
2258 | 2419 | "type": "git", |
2259 | 2420 | "url": "https://github.com/yiisoft/yii2-framework.git", |
2260 | - "reference": "ee996adec1dfd7babb67bd0c604f5bd6425fe5ab" | |
2421 | + "reference": "70acbecc75cb26b6cd66d16be0b06e4b73db190d" | |
2261 | 2422 | }, |
2262 | 2423 | "dist": { |
2263 | 2424 | "type": "zip", |
2264 | - "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/ee996adec1dfd7babb67bd0c604f5bd6425fe5ab", | |
2265 | - "reference": "ee996adec1dfd7babb67bd0c604f5bd6425fe5ab", | |
2425 | + "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/70acbecc75cb26b6cd66d16be0b06e4b73db190d", | |
2426 | + "reference": "70acbecc75cb26b6cd66d16be0b06e4b73db190d", | |
2266 | 2427 | "shasum": "" |
2267 | 2428 | }, |
2268 | 2429 | "require": { |
2269 | 2430 | "bower-asset/jquery": "2.2.*@stable | 2.1.*@stable | 1.11.*@stable | 1.12.*@stable", |
2270 | - "bower-asset/jquery.inputmask": "~3.2.2 | ~3.3.3", | |
2431 | + "bower-asset/jquery.inputmask": "~3.2.2 | ~3.3.5", | |
2271 | 2432 | "bower-asset/punycode": "1.3.*", |
2272 | 2433 | "bower-asset/yii2-pjax": "~2.0.1", |
2273 | 2434 | "cebe/markdown": "~1.0.0 | ~1.1.0", |
... | ... | @@ -2349,7 +2510,7 @@ |
2349 | 2510 | "framework", |
2350 | 2511 | "yii2" |
2351 | 2512 | ], |
2352 | - "time": "2017-02-08T09:04:32+00:00" | |
2513 | + "time": "2017-06-05T14:33:41+00:00" | |
2353 | 2514 | }, |
2354 | 2515 | { |
2355 | 2516 | "name": "yiisoft/yii2-bootstrap", |
... | ... | @@ -3568,16 +3729,16 @@ |
3568 | 3729 | }, |
3569 | 3730 | { |
3570 | 3731 | "name": "phpunit/phpunit", |
3571 | - "version": "6.2.0", | |
3732 | + "version": "6.2.1", | |
3572 | 3733 | "source": { |
3573 | 3734 | "type": "git", |
3574 | 3735 | "url": "https://github.com/sebastianbergmann/phpunit.git", |
3575 | - "reference": "23bcb03e5c6a8b8067f6c2b28f6cd84b2df321cc" | |
3736 | + "reference": "16999a1e9a8a25d68f0ab8cc8ab818b043ad5374" | |
3576 | 3737 | }, |
3577 | 3738 | "dist": { |
3578 | 3739 | "type": "zip", |
3579 | - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/23bcb03e5c6a8b8067f6c2b28f6cd84b2df321cc", | |
3580 | - "reference": "23bcb03e5c6a8b8067f6c2b28f6cd84b2df321cc", | |
3740 | + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/16999a1e9a8a25d68f0ab8cc8ab818b043ad5374", | |
3741 | + "reference": "16999a1e9a8a25d68f0ab8cc8ab818b043ad5374", | |
3581 | 3742 | "shasum": "" |
3582 | 3743 | }, |
3583 | 3744 | "require": { |
... | ... | @@ -3622,7 +3783,7 @@ |
3622 | 3783 | "type": "library", |
3623 | 3784 | "extra": { |
3624 | 3785 | "branch-alias": { |
3625 | - "dev-master": "6.1.x-dev" | |
3786 | + "dev-master": "6.2.x-dev" | |
3626 | 3787 | } |
3627 | 3788 | }, |
3628 | 3789 | "autoload": { |
... | ... | @@ -3648,7 +3809,7 @@ |
3648 | 3809 | "testing", |
3649 | 3810 | "xunit" |
3650 | 3811 | ], |
3651 | - "time": "2017-06-02T08:02:48+00:00" | |
3812 | + "time": "2017-06-02T12:24:37+00:00" | |
3652 | 3813 | }, |
3653 | 3814 | { |
3654 | 3815 | "name": "phpunit/phpunit-mock-objects", |
... | ... | @@ -4315,7 +4476,7 @@ |
4315 | 4476 | }, |
4316 | 4477 | { |
4317 | 4478 | "name": "symfony/browser-kit", |
4318 | - "version": "v3.3.0", | |
4479 | + "version": "v3.3.2", | |
4319 | 4480 | "source": { |
4320 | 4481 | "type": "git", |
4321 | 4482 | "url": "https://github.com/symfony/browser-kit.git", |
... | ... | @@ -4372,16 +4533,16 @@ |
4372 | 4533 | }, |
4373 | 4534 | { |
4374 | 4535 | "name": "symfony/console", |
4375 | - "version": "v3.3.0", | |
4536 | + "version": "v3.3.2", | |
4376 | 4537 | "source": { |
4377 | 4538 | "type": "git", |
4378 | 4539 | "url": "https://github.com/symfony/console.git", |
4379 | - "reference": "c80e63f3f5e3a331bfc25e6e9332b10422eb9b05" | |
4540 | + "reference": "70d2a29b2911cbdc91a7e268046c395278238b2e" | |
4380 | 4541 | }, |
4381 | 4542 | "dist": { |
4382 | 4543 | "type": "zip", |
4383 | - "url": "https://api.github.com/repos/symfony/console/zipball/c80e63f3f5e3a331bfc25e6e9332b10422eb9b05", | |
4384 | - "reference": "c80e63f3f5e3a331bfc25e6e9332b10422eb9b05", | |
4544 | + "url": "https://api.github.com/repos/symfony/console/zipball/70d2a29b2911cbdc91a7e268046c395278238b2e", | |
4545 | + "reference": "70d2a29b2911cbdc91a7e268046c395278238b2e", | |
4385 | 4546 | "shasum": "" |
4386 | 4547 | }, |
4387 | 4548 | "require": { |
... | ... | @@ -4394,6 +4555,7 @@ |
4394 | 4555 | }, |
4395 | 4556 | "require-dev": { |
4396 | 4557 | "psr/log": "~1.0", |
4558 | + "symfony/config": "~3.3", | |
4397 | 4559 | "symfony/dependency-injection": "~3.3", |
4398 | 4560 | "symfony/event-dispatcher": "~2.8|~3.0", |
4399 | 4561 | "symfony/filesystem": "~2.8|~3.0", |
... | ... | @@ -4436,11 +4598,11 @@ |
4436 | 4598 | ], |
4437 | 4599 | "description": "Symfony Console Component", |
4438 | 4600 | "homepage": "https://symfony.com", |
4439 | - "time": "2017-05-28T14:08:56+00:00" | |
4601 | + "time": "2017-06-02T19:24:58+00:00" | |
4440 | 4602 | }, |
4441 | 4603 | { |
4442 | 4604 | "name": "symfony/css-selector", |
4443 | - "version": "v3.3.0", | |
4605 | + "version": "v3.3.2", | |
4444 | 4606 | "source": { |
4445 | 4607 | "type": "git", |
4446 | 4608 | "url": "https://github.com/symfony/css-selector.git", |
... | ... | @@ -4493,16 +4655,16 @@ |
4493 | 4655 | }, |
4494 | 4656 | { |
4495 | 4657 | "name": "symfony/debug", |
4496 | - "version": "v3.3.0", | |
4658 | + "version": "v3.3.2", | |
4497 | 4659 | "source": { |
4498 | 4660 | "type": "git", |
4499 | 4661 | "url": "https://github.com/symfony/debug.git", |
4500 | - "reference": "ef5f19a7a68075a0bd05969a329ead3b0776fb7a" | |
4662 | + "reference": "e9c50482841ef696e8fa1470d950a79c8921f45d" | |
4501 | 4663 | }, |
4502 | 4664 | "dist": { |
4503 | 4665 | "type": "zip", |
4504 | - "url": "https://api.github.com/repos/symfony/debug/zipball/ef5f19a7a68075a0bd05969a329ead3b0776fb7a", | |
4505 | - "reference": "ef5f19a7a68075a0bd05969a329ead3b0776fb7a", | |
4666 | + "url": "https://api.github.com/repos/symfony/debug/zipball/e9c50482841ef696e8fa1470d950a79c8921f45d", | |
4667 | + "reference": "e9c50482841ef696e8fa1470d950a79c8921f45d", | |
4506 | 4668 | "shasum": "" |
4507 | 4669 | }, |
4508 | 4670 | "require": { |
... | ... | @@ -4545,11 +4707,11 @@ |
4545 | 4707 | ], |
4546 | 4708 | "description": "Symfony Debug Component", |
4547 | 4709 | "homepage": "https://symfony.com", |
4548 | - "time": "2017-05-27T16:02:27+00:00" | |
4710 | + "time": "2017-06-01T21:01:25+00:00" | |
4549 | 4711 | }, |
4550 | 4712 | { |
4551 | 4713 | "name": "symfony/dom-crawler", |
4552 | - "version": "v3.3.0", | |
4714 | + "version": "v3.3.2", | |
4553 | 4715 | "source": { |
4554 | 4716 | "type": "git", |
4555 | 4717 | "url": "https://github.com/symfony/dom-crawler.git", |
... | ... | @@ -4605,16 +4767,16 @@ |
4605 | 4767 | }, |
4606 | 4768 | { |
4607 | 4769 | "name": "symfony/event-dispatcher", |
4608 | - "version": "v3.3.0", | |
4770 | + "version": "v3.3.2", | |
4609 | 4771 | "source": { |
4610 | 4772 | "type": "git", |
4611 | 4773 | "url": "https://github.com/symfony/event-dispatcher.git", |
4612 | - "reference": "a9f8b02b0ef07302eca92cd4bba73200b7980e9c" | |
4774 | + "reference": "4054a102470665451108f9b59305c79176ef98f0" | |
4613 | 4775 | }, |
4614 | 4776 | "dist": { |
4615 | 4777 | "type": "zip", |
4616 | - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a9f8b02b0ef07302eca92cd4bba73200b7980e9c", | |
4617 | - "reference": "a9f8b02b0ef07302eca92cd4bba73200b7980e9c", | |
4778 | + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/4054a102470665451108f9b59305c79176ef98f0", | |
4779 | + "reference": "4054a102470665451108f9b59305c79176ef98f0", | |
4618 | 4780 | "shasum": "" |
4619 | 4781 | }, |
4620 | 4782 | "require": { |
... | ... | @@ -4664,20 +4826,20 @@ |
4664 | 4826 | ], |
4665 | 4827 | "description": "Symfony EventDispatcher Component", |
4666 | 4828 | "homepage": "https://symfony.com", |
4667 | - "time": "2017-05-04T12:23:07+00:00" | |
4829 | + "time": "2017-06-04T18:15:29+00:00" | |
4668 | 4830 | }, |
4669 | 4831 | { |
4670 | 4832 | "name": "symfony/finder", |
4671 | - "version": "v3.3.0", | |
4833 | + "version": "v3.3.2", | |
4672 | 4834 | "source": { |
4673 | 4835 | "type": "git", |
4674 | 4836 | "url": "https://github.com/symfony/finder.git", |
4675 | - "reference": "30cb2a2c09627823a7243638dd456de4e2748fed" | |
4837 | + "reference": "baea7f66d30854ad32988c11a09d7ffd485810c4" | |
4676 | 4838 | }, |
4677 | 4839 | "dist": { |
4678 | 4840 | "type": "zip", |
4679 | - "url": "https://api.github.com/repos/symfony/finder/zipball/30cb2a2c09627823a7243638dd456de4e2748fed", | |
4680 | - "reference": "30cb2a2c09627823a7243638dd456de4e2748fed", | |
4841 | + "url": "https://api.github.com/repos/symfony/finder/zipball/baea7f66d30854ad32988c11a09d7ffd485810c4", | |
4842 | + "reference": "baea7f66d30854ad32988c11a09d7ffd485810c4", | |
4681 | 4843 | "shasum": "" |
4682 | 4844 | }, |
4683 | 4845 | "require": { |
... | ... | @@ -4713,7 +4875,7 @@ |
4713 | 4875 | ], |
4714 | 4876 | "description": "Symfony Finder Component", |
4715 | 4877 | "homepage": "https://symfony.com", |
4716 | - "time": "2017-05-25T23:10:31+00:00" | |
4878 | + "time": "2017-06-01T21:01:25+00:00" | |
4717 | 4879 | }, |
4718 | 4880 | { |
4719 | 4881 | "name": "symfony/polyfill-mbstring", |
... | ... | @@ -4776,16 +4938,16 @@ |
4776 | 4938 | }, |
4777 | 4939 | { |
4778 | 4940 | "name": "symfony/yaml", |
4779 | - "version": "v3.3.0", | |
4941 | + "version": "v3.3.2", | |
4780 | 4942 | "source": { |
4781 | 4943 | "type": "git", |
4782 | 4944 | "url": "https://github.com/symfony/yaml.git", |
4783 | - "reference": "885db865f6b2b918404a1fae28f9ac640f71f994" | |
4945 | + "reference": "9752a30000a8ca9f4b34b5227d15d0101b96b063" | |
4784 | 4946 | }, |
4785 | 4947 | "dist": { |
4786 | 4948 | "type": "zip", |
4787 | - "url": "https://api.github.com/repos/symfony/yaml/zipball/885db865f6b2b918404a1fae28f9ac640f71f994", | |
4788 | - "reference": "885db865f6b2b918404a1fae28f9ac640f71f994", | |
4949 | + "url": "https://api.github.com/repos/symfony/yaml/zipball/9752a30000a8ca9f4b34b5227d15d0101b96b063", | |
4950 | + "reference": "9752a30000a8ca9f4b34b5227d15d0101b96b063", | |
4789 | 4951 | "shasum": "" |
4790 | 4952 | }, |
4791 | 4953 | "require": { |
... | ... | @@ -4827,7 +4989,7 @@ |
4827 | 4989 | ], |
4828 | 4990 | "description": "Symfony Yaml Component", |
4829 | 4991 | "homepage": "https://symfony.com", |
4830 | - "time": "2017-05-28T10:56:20+00:00" | |
4992 | + "time": "2017-06-02T22:05:06+00:00" | |
4831 | 4993 | }, |
4832 | 4994 | { |
4833 | 4995 | "name": "theseer/tokenizer", | ... | ... |
environments/index.php
... | ... | @@ -4,7 +4,6 @@ |
4 | 4 | * This file returns a list of environments that the application |
5 | 5 | * may be installed under. The returned data must be in the following |
6 | 6 | * format: |
7 | - * | |
8 | 7 | * ```php |
9 | 8 | * return [ |
10 | 9 | * 'environment name' => [ |
... | ... | @@ -36,6 +35,8 @@ |
36 | 35 | 'backend/web/assets', |
37 | 36 | 'frontend/runtime', |
38 | 37 | 'frontend/web/assets', |
38 | + 'storage', | |
39 | + 'common/config/settings.php', | |
39 | 40 | ], |
40 | 41 | 'setExecutable' => [ |
41 | 42 | 'yii', |
... | ... | @@ -54,6 +55,8 @@ |
54 | 55 | 'backend/web/assets', |
55 | 56 | 'frontend/runtime', |
56 | 57 | 'frontend/web/assets', |
58 | + 'storage', | |
59 | + 'common/config/settings.php', | |
57 | 60 | ], |
58 | 61 | 'setExecutable' => [ |
59 | 62 | 'yii', | ... | ... |
1 | +<?php | |
2 | + return [ | |
3 | + 'class' => 'nodge\eauth\EAuth', | |
4 | + 'popup' => true, | |
5 | + 'cache' => false, | |
6 | + 'cacheExpire' => 0, | |
7 | + 'httpClient' => [ | |
8 | + // uncomment this to use streams in safe_mode | |
9 | + //'useStreamsFallback' => true, | |
10 | + ], | |
11 | + 'services' => [ | |
12 | + 'google' => [ | |
13 | + // register your app here: https://code.google.com/apis/console/ | |
14 | + 'class' => 'nodge\eauth\services\GoogleOAuth2Service', | |
15 | + 'clientId' => '857343172443-th52trcqruo6pct71hmn72pud8ob9c9o.apps.googleusercontent.com', | |
16 | + 'clientSecret' => 'PgQIYSOjEUm4lffk_o7zMhxZ', | |
17 | + 'title' => 'Google', | |
18 | + ], | |
19 | + 'facebook' => [ | |
20 | + // register your app here: https://developers.facebook.com/apps/ | |
21 | + 'class' => 'nodge\eauth\services\FacebookOAuth2Service', | |
22 | + 'clientId' => '1453788021358149', | |
23 | + 'clientSecret' => '97dc7b9863b482dce6c6e7618bda9738', | |
24 | + ], | |
25 | + 'yahoo' => [ | |
26 | + 'class' => 'nodge\eauth\services\YahooOpenIDService', | |
27 | + //'realm' => '*.example.org', // your domain, can be with wildcard to authenticate on subdomains. | |
28 | + ], | |
29 | + 'linkedin_oauth2' => [ | |
30 | + // register your app here: https://www.linkedin.com/secure/developer | |
31 | + 'class' => 'nodge\eauth\services\LinkedinOAuth2Service', | |
32 | + 'clientId' => '86uay6912iwzn7', | |
33 | + 'clientSecret' => 'IkOc8oMOlxkyNSfK', | |
34 | + 'title' => 'LinkedIn (OAuth2)', | |
35 | + ], | |
36 | + 'github' => [ | |
37 | + // register your app here: https://github.com/settings/applications | |
38 | + 'class' => 'nodge\eauth\services\GitHubOAuth2Service', | |
39 | + 'clientId' => '1a72fc01be1ecca28c76', | |
40 | + 'clientSecret' => '188376ae0736133bdca9f4376a99a1cd2a6e6254', | |
41 | + ], | |
42 | + 'steam' => [ | |
43 | + 'class' => 'nodge\eauth\services\SteamOpenIDService', | |
44 | + //'realm' => '*.example.org', // your domain, can be with wildcard to authenticate on subdomains. | |
45 | + 'apiKey' => 'ED8812C3AA509B94D4744AADBF4FDF49', | |
46 | + // Optional. You can get it here: https://steamcommunity.com/dev/apikey | |
47 | + ], | |
48 | + 'instagram' => [ | |
49 | + // register your app here: https://instagram.com/developer/register/ | |
50 | + 'class' => 'nodge\eauth\services\InstagramOAuth2Service', | |
51 | + 'clientId' => '7c3de0236bb4467bae58707012addce8', | |
52 | + 'clientSecret' => 'bfcf8a5eb47d4998b6e3dd573777a857', | |
53 | + ], | |
54 | + ], | |
55 | + ]; | |
0 | 56 | \ No newline at end of file | ... | ... |
frontend/config/main.php
1 | 1 | <?php |
2 | + use artbox\catalog\components\History; | |
2 | 3 | use artbox\core\components\LanguageRequest; |
3 | 4 | use artbox\core\components\SeoUrlManager; |
4 | 5 | use artbox\order\models\Basket; |
... | ... | @@ -47,6 +48,14 @@ |
47 | 48 | 'warning', |
48 | 49 | ], |
49 | 50 | ], |
51 | + [ | |
52 | + 'class' => 'yii\log\FileTarget', | |
53 | + 'logFile' => '@frontend/runtime/logs/eauth.log', | |
54 | + 'categories' => [ | |
55 | + 'nodge\eauth\*', | |
56 | + ], | |
57 | + 'logVars' => [], | |
58 | + ], | |
50 | 59 | ], |
51 | 60 | ], |
52 | 61 | 'errorHandler' => [ |
... | ... | @@ -68,9 +77,9 @@ |
68 | 77 | 'route' => 'category/view', |
69 | 78 | 'defaults' => [ 'filter' => '' ], |
70 | 79 | ], |
71 | - 'special/<type:(new|sale)>' => 'special/index', | |
72 | - 'special/<category>/<type:(new|sale)>' => 'special/category', | |
73 | - 'robots.txt' => 'site/robots', | |
80 | + 'special/<type:(new|sale)>' => 'special/index', | |
81 | + 'special/<category>/<type:(new|sale)>' => 'special/category', | |
82 | + 'robots.txt' => 'site/robots', | |
74 | 83 | [ |
75 | 84 | 'pattern' => 'artbox-comment/manage/<action>', |
76 | 85 | 'route' => 'notfound', |
... | ... | @@ -78,11 +87,16 @@ |
78 | 87 | 'action' => '', |
79 | 88 | ], |
80 | 89 | ], |
90 | + 'login/<service:google|twitter|facebook|yahoo|linkedin|linkedin_oauth2|github|steam|instagram>' => 'site/login', | |
81 | 91 | ], |
82 | 92 | ], |
83 | 93 | 'basket' => [ |
84 | 94 | 'class' => Basket::className(), |
85 | 95 | ], |
96 | + 'eauth' => require( 'eauth.php' ), | |
97 | + 'history' => [ | |
98 | + 'class' => History::className(), | |
99 | + ], | |
86 | 100 | ], |
87 | 101 | 'params' => $params, |
88 | 102 | ]; | ... | ... |
frontend/controllers/SiteController.php
... | ... | @@ -7,12 +7,15 @@ |
7 | 7 | use artbox\catalog\models\Product; |
8 | 8 | use artbox\core\models\DummyAlias; |
9 | 9 | use artbox\core\models\Feedback; |
10 | + use artbox\order\models\Customer; | |
10 | 11 | use artbox\order\models\LoginForm; |
11 | 12 | use artbox\order\models\PasswordResetRequestForm; |
12 | 13 | use artbox\order\models\ResetPasswordForm; |
13 | 14 | use artbox\order\models\SignupForm; |
14 | 15 | use artbox\weblog\models\Article; |
15 | 16 | use common\models\Settings; |
17 | + use nodge\eauth\ErrorException; | |
18 | + use nodge\eauth\openid\ControllerBehavior; | |
16 | 19 | use Yii; |
17 | 20 | use yii\base\InvalidParamException; |
18 | 21 | use yii\bootstrap\Html; |
... | ... | @@ -50,6 +53,10 @@ |
50 | 53 | 'feedback' => [ 'post' ], |
51 | 54 | ], |
52 | 55 | ], |
56 | + 'eauth' => [ | |
57 | + 'class' => ControllerBehavior::className(), | |
58 | + 'only' => [ 'login' ], | |
59 | + ], | |
53 | 60 | ]; |
54 | 61 | } |
55 | 62 | |
... | ... | @@ -90,6 +97,33 @@ |
90 | 97 | ->is('mask', 4) |
91 | 98 | ->limit(20) |
92 | 99 | ->all(); |
100 | + $historyItems = []; | |
101 | + /** | |
102 | + * @var \artbox\catalog\components\History $history | |
103 | + */ | |
104 | + if ($history = \Yii::$app->get('history', false)) { | |
105 | + if (!empty($history->get())) { | |
106 | + $historyItems = Product::find() | |
107 | + ->with('lang', 'image') | |
108 | + ->innerJoinWith( | |
109 | + [ | |
110 | + 'variants' => function ($query) { | |
111 | + /** | |
112 | + * @var \yii\db\ActiveQuery $query | |
113 | + */ | |
114 | + $query->with('image'); | |
115 | + }, | |
116 | + ] | |
117 | + ) | |
118 | + ->where( | |
119 | + [ | |
120 | + 'variant.id' => $history->get(), | |
121 | + ] | |
122 | + ) | |
123 | + ->limit(20) | |
124 | + ->all(); | |
125 | + } | |
126 | + } | |
93 | 127 | $productCount = Product::find() |
94 | 128 | ->count(); |
95 | 129 | $brandCount = Brand::find() |
... | ... | @@ -124,6 +158,7 @@ |
124 | 158 | 'topItems' => $topItems, |
125 | 159 | 'newItems' => $newItems, |
126 | 160 | 'saleItems' => $saleItems, |
161 | + 'historyItems' => $historyItems, | |
127 | 162 | 'productCount' => $productCount, |
128 | 163 | 'brandCount' => $brandCount, |
129 | 164 | 'brands' => $brands, |
... | ... | @@ -249,6 +284,44 @@ |
249 | 284 | |
250 | 285 | public function actionLogin() |
251 | 286 | { |
287 | + $serviceName = Yii::$app->getRequest() | |
288 | + ->getQueryParam('service'); | |
289 | + if (isset($serviceName)) { | |
290 | + /** @var $eauth \nodge\eauth\ServiceBase */ | |
291 | + $eauth = Yii::$app->get('eauth') | |
292 | + ->getIdentity($serviceName); | |
293 | + $eauth->setRedirectUrl( | |
294 | + Yii::$app->getUser() | |
295 | + ->getReturnUrl() | |
296 | + ); | |
297 | + $eauth->setCancelUrl( | |
298 | + Yii::$app->getUrlManager() | |
299 | + ->createAbsoluteUrl('site/login') | |
300 | + ); | |
301 | + | |
302 | + try { | |
303 | + if ($eauth->authenticate()) { | |
304 | + // var_dump($eauth->getIsAuthenticated(), $eauth->getAttributes()); exit; | |
305 | + $identity = Customer::findByEAuth($eauth); | |
306 | + Yii::$app->getUser() | |
307 | + ->login($identity); | |
308 | + | |
309 | + // special redirect with closing popup window | |
310 | + $eauth->redirect(); | |
311 | + } else { | |
312 | + // close popup window and redirect to cancelUrl | |
313 | + $eauth->cancel(); | |
314 | + } | |
315 | + } catch (ErrorException $e) { | |
316 | + // save error to show it later | |
317 | + Yii::$app->getSession() | |
318 | + ->setFlash('error', 'EAuthException: ' . $e->getMessage()); | |
319 | + | |
320 | + // close popup window and redirect to cancelUrl | |
321 | + // $eauth->cancel(); | |
322 | + $eauth->redirect($eauth->getCancelUrl()); | |
323 | + } | |
324 | + } | |
252 | 325 | if (!\Yii::$app->user->isGuest) { |
253 | 326 | return $this->redirect([ 'index' ]); |
254 | 327 | } | ... | ... |
frontend/controllers/VariantController.php
... | ... | @@ -27,6 +27,12 @@ |
27 | 27 | { |
28 | 28 | $model = $this->findModel($id); |
29 | 29 | /** |
30 | + * @var \artbox\catalog\components\History $history | |
31 | + */ | |
32 | + if ($history = \Yii::$app->get('history', false)) { | |
33 | + $history->add($model->id); | |
34 | + } | |
35 | + /** | |
30 | 36 | * @var SeoComponent $seo |
31 | 37 | */ |
32 | 38 | $seo = Yii::$app->get('seo'); | ... | ... |
frontend/views/layouts/main.php
... | ... | @@ -16,6 +16,7 @@ |
16 | 16 | use common\models\Settings; |
17 | 17 | use frontend\assets\AppAsset; |
18 | 18 | use frontend\widgets\LangLink; |
19 | + use nodge\eauth\Widget; | |
19 | 20 | use yii\base\Model; |
20 | 21 | use yii\bootstrap\ActiveForm; |
21 | 22 | use yii\bootstrap\Html; |
... | ... | @@ -368,6 +369,19 @@ _________________________________________________________ --> |
368 | 369 | </div> |
369 | 370 | <div class="modal-body"> |
370 | 371 | <?php |
372 | + if (\Yii::$app->get('eauth', false)) { | |
373 | + echo Html::tag( | |
374 | + 'p', | |
375 | + \Yii::t( | |
376 | + 'app', | |
377 | + 'Do you already have an account on one of these sites? Click the logo to log in with it here' | |
378 | + ) . ':', | |
379 | + [ | |
380 | + 'class' => 'lead', | |
381 | + ] | |
382 | + ); | |
383 | + echo Widget::widget([ 'action' => 'site/login' ]); | |
384 | + } | |
371 | 385 | $login = ActiveForm::begin( |
372 | 386 | [ |
373 | 387 | 'action' => [ '/site/login' ], | ... | ... |
frontend/views/site/index.php
... | ... | @@ -15,6 +15,7 @@ |
15 | 15 | * @var Product[] $topItems |
16 | 16 | * @var Product[] $newItems |
17 | 17 | * @var Product[] $saleItems |
18 | + * @var Product[] $historyItems | |
18 | 19 | * @var int $brandCount |
19 | 20 | * @var int $productCount |
20 | 21 | * @var Brand[] $brands |
... | ... | @@ -179,6 +180,36 @@ _________________________________________________________ --> |
179 | 180 | </div> |
180 | 181 | <?php |
181 | 182 | } |
183 | + if (!empty($historyItems)) { | |
184 | + ?> | |
185 | + <div class="heading text-center"> | |
186 | + <h2><?php echo \Yii::t('app', 'Недавно просматривали'); ?></h2> | |
187 | + </div> | |
188 | + <div class="product-carousel"> | |
189 | + <div class="homepage owl-carousel"> | |
190 | + <?php | |
191 | + $newItemsArrays = array_chunk($historyItems, 4); | |
192 | + foreach ($newItemsArrays as $newItemsArray) { | |
193 | + ?> | |
194 | + <div class="products"> | |
195 | + <?php | |
196 | + foreach ($newItemsArray as $product) { | |
197 | + echo $this->render( | |
198 | + '_slider_product', | |
199 | + [ | |
200 | + 'product' => $product, | |
201 | + ] | |
202 | + ); | |
203 | + } | |
204 | + ?> | |
205 | + </div> | |
206 | + <?php | |
207 | + } | |
208 | + ?> | |
209 | + </div> | |
210 | + </div> | |
211 | + <?php | |
212 | + } | |
182 | 213 | ?> |
183 | 214 | </div> |
184 | 215 | </section> | ... | ... |
frontend/views/site/login.php
... | ... | @@ -2,9 +2,11 @@ |
2 | 2 | |
3 | 3 | /* @var $this yii\web\View */ |
4 | 4 | /* @var $form yii\bootstrap\ActiveForm */ |
5 | - /* @var $loginForm \common\models\LoginForm */ | |
6 | - /* @var $signupForm \common\models\SignupForm */ | |
5 | + /* @var $loginForm LoginForm */ | |
6 | + /* @var $signupForm SignupForm */ | |
7 | 7 | |
8 | + use artbox\order\models\LoginForm; | |
9 | + use artbox\order\models\SignupForm; | |
8 | 10 | use yii\bootstrap\ActiveForm; |
9 | 11 | use yii\bootstrap\Html; |
10 | 12 | |
... | ... | @@ -73,8 +75,15 @@ |
73 | 75 | <p class="lead"><?php echo \Yii::t('app', 'Уже зарегистрированы?'); ?></p> |
74 | 76 | |
75 | 77 | <hr> |
76 | - | |
78 | + <p class="lead">Do you already have an account on one of these sites? Click the logo to log in with it here:</p> | |
79 | + <?php echo \nodge\eauth\Widget::widget([ 'action' => 'site/login' ]); ?> | |
77 | 80 | <?php |
81 | + if (Yii::$app->getSession() | |
82 | + ->hasFlash('error') | |
83 | + ) { | |
84 | + echo '<div class="alert alert-danger">' . Yii::$app->getSession() | |
85 | + ->getFlash('error') . '</div>'; | |
86 | + } | |
78 | 87 | $formLogin = ActiveForm::begin(); |
79 | 88 | echo $formLogin->field($loginForm, 'username') |
80 | 89 | ->textInput(); | ... | ... |