Создание аутентификации и регистрации на ArangoDB через Ajax + фронтенд правки
This commit is contained in:
parent
59faa344cb
commit
e0a6ae88e4
|
@ -20,7 +20,7 @@
|
||||||
"bower-asset/bootstrap": "*",
|
"bower-asset/bootstrap": "*",
|
||||||
"npm-asset/jquery": "^3.5",
|
"npm-asset/jquery": "^3.5",
|
||||||
"bower-asset/jquery": "^3.5",
|
"bower-asset/jquery": "^3.5",
|
||||||
"pbazsi/yii2-arangodb": "2.0",
|
"explosivebit/arangodb": "^2.0",
|
||||||
"triagens/arangodb": "^3.6"
|
"triagens/arangodb": "^3.6"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
|
@ -39,7 +39,10 @@
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"mirzaev\\skillparts\\": "mirzaev/skillparts/system"
|
"mirzaev\\skillparts\\": "mirzaev/skillparts/system"
|
||||||
}
|
},
|
||||||
|
"classmap": [
|
||||||
|
"vendor/explosivebit"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"autoload-dev": {
|
"autoload-dev": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
|
@ -86,14 +89,14 @@
|
||||||
{
|
{
|
||||||
"type": "package",
|
"type": "package",
|
||||||
"package": {
|
"package": {
|
||||||
"name": "pbazsi/yii2-arangodb",
|
"name": "explosivebit/arangodb",
|
||||||
"version": "2.0",
|
"version": "2.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type" : "git",
|
"type": "git",
|
||||||
"url" : "https://github.com/pBazsi/yii2-arangodb.git",
|
"url": "https://github.com/pBazsi/yii2-arangodb.git",
|
||||||
"reference" : "master"
|
"reference": "master"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -4,14 +4,14 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "5c6fa00f67028dbc18572600d2a1935d",
|
"content-hash": "d83ed7a25bd848237d6ae45b945471f6",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "bower-asset/bootstrap",
|
"name": "bower-asset/bootstrap",
|
||||||
"version": "v3.4.1",
|
"version": "v3.4.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git@github.com:twbs/bootstrap.git",
|
"url": "https://github.com/twbs/bootstrap.git",
|
||||||
"reference": "68b0d231a13201eb14acd3dc84e51543d16e5f7e"
|
"reference": "68b0d231a13201eb14acd3dc84e51543d16e5f7e"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
|
@ -302,6 +302,16 @@
|
||||||
],
|
],
|
||||||
"time": "2020-11-14T15:56:27+00:00"
|
"time": "2020-11-14T15:56:27+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "explosivebit/arangodb",
|
||||||
|
"version": "2.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/pBazsi/yii2-arangodb.git",
|
||||||
|
"reference": "master"
|
||||||
|
},
|
||||||
|
"type": "library"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "ezyang/htmlpurifier",
|
"name": "ezyang/htmlpurifier",
|
||||||
"version": "v4.13.0",
|
"version": "v4.13.0",
|
||||||
|
@ -364,16 +374,6 @@
|
||||||
"MIT"
|
"MIT"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "pBazsi/yii2-arangodb",
|
|
||||||
"version": "2.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/pBazsi/yii2-arangodb.git",
|
|
||||||
"reference": "master"
|
|
||||||
},
|
|
||||||
"type": "library"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "swiftmailer/swiftmailer",
|
"name": "swiftmailer/swiftmailer",
|
||||||
"version": "v6.2.4",
|
"version": "v6.2.4",
|
||||||
|
@ -1835,21 +1835,21 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "codeception/verify",
|
"name": "codeception/verify",
|
||||||
"version": "2.1.0",
|
"version": "2.1.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/Codeception/Verify.git",
|
"url": "https://github.com/Codeception/Verify.git",
|
||||||
"reference": "11fa56c223ae7188174c4ba50c68454d83b254e9"
|
"reference": "1cdac1867c33801ae8e4833015153766ef403c92"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/Codeception/Verify/zipball/11fa56c223ae7188174c4ba50c68454d83b254e9",
|
"url": "https://api.github.com/repos/Codeception/Verify/zipball/1cdac1867c33801ae8e4833015153766ef403c92",
|
||||||
"reference": "11fa56c223ae7188174c4ba50c68454d83b254e9",
|
"reference": "1cdac1867c33801ae8e4833015153766ef403c92",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"ext-dom": "*",
|
"ext-dom": "*",
|
||||||
"php": "^7.3",
|
"php": "^7.3 || ^8.0",
|
||||||
"phpunit/phpunit": "^9.3"
|
"phpunit/phpunit": "^9.3"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
|
@ -1876,7 +1876,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "BDD assertion library for PHPUnit",
|
"description": "BDD assertion library for PHPUnit",
|
||||||
"time": "2020-09-03T04:43:01+00:00"
|
"time": "2020-12-18T16:18:31+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "doctrine/instantiator",
|
"name": "doctrine/instantiator",
|
||||||
|
@ -1945,16 +1945,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "fakerphp/faker",
|
"name": "fakerphp/faker",
|
||||||
"version": "v1.12.1",
|
"version": "v1.13.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/FakerPHP/Faker.git",
|
"url": "https://github.com/FakerPHP/Faker.git",
|
||||||
"reference": "841e8bdde345cc1ea9f98e776959e7531cadea0e"
|
"reference": "ab3f5364d01f2c2c16113442fb987d26e4004913"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/FakerPHP/Faker/zipball/841e8bdde345cc1ea9f98e776959e7531cadea0e",
|
"url": "https://api.github.com/repos/FakerPHP/Faker/zipball/ab3f5364d01f2c2c16113442fb987d26e4004913",
|
||||||
"reference": "841e8bdde345cc1ea9f98e776959e7531cadea0e",
|
"reference": "ab3f5364d01f2c2c16113442fb987d26e4004913",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1989,11 +1989,7 @@
|
||||||
"faker",
|
"faker",
|
||||||
"fixtures"
|
"fixtures"
|
||||||
],
|
],
|
||||||
"support": {
|
"time": "2020-12-18T16:50:48+00:00"
|
||||||
"issues": "https://github.com/FakerPHP/Faker/issues",
|
|
||||||
"source": "https://github.com/FakerPHP/Faker/tree/v1.12.1"
|
|
||||||
},
|
|
||||||
"time": "2020-12-11T10:39:41+00:00"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "guzzlehttp/psr7",
|
"name": "guzzlehttp/psr7",
|
||||||
|
@ -2295,16 +2291,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phar-io/version",
|
"name": "phar-io/version",
|
||||||
"version": "3.0.3",
|
"version": "3.0.4",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/phar-io/version.git",
|
"url": "https://github.com/phar-io/version.git",
|
||||||
"reference": "726c026815142e4f8677b7cb7f2249c9ffb7ecae"
|
"reference": "e4782611070e50613683d2b9a57730e9a3ba5451"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/phar-io/version/zipball/726c026815142e4f8677b7cb7f2249c9ffb7ecae",
|
"url": "https://api.github.com/repos/phar-io/version/zipball/e4782611070e50613683d2b9a57730e9a3ba5451",
|
||||||
"reference": "726c026815142e4f8677b7cb7f2249c9ffb7ecae",
|
"reference": "e4782611070e50613683d2b9a57730e9a3ba5451",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -2338,7 +2334,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "Library for handling version information and constraints",
|
"description": "Library for handling version information and constraints",
|
||||||
"time": "2020-11-30T09:21:21+00:00"
|
"time": "2020-12-13T23:18:30+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "php-webdriver/webdriver",
|
"name": "php-webdriver/webdriver",
|
||||||
|
@ -4142,16 +4138,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/browser-kit",
|
"name": "symfony/browser-kit",
|
||||||
"version": "v5.2.0",
|
"version": "v5.2.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/browser-kit.git",
|
"url": "https://github.com/symfony/browser-kit.git",
|
||||||
"reference": "4fc769a12282a12bc47f883f04f01ff3777e369b"
|
"reference": "87d6f0a7436b03a57d4cf9a6a9cd0c83a355c49a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/browser-kit/zipball/4fc769a12282a12bc47f883f04f01ff3777e369b",
|
"url": "https://api.github.com/repos/symfony/browser-kit/zipball/87d6f0a7436b03a57d4cf9a6a9cd0c83a355c49a",
|
||||||
"reference": "4fc769a12282a12bc47f883f04f01ff3777e369b",
|
"reference": "87d6f0a7436b03a57d4cf9a6a9cd0c83a355c49a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -4192,9 +4188,6 @@
|
||||||
],
|
],
|
||||||
"description": "Symfony BrowserKit Component",
|
"description": "Symfony BrowserKit Component",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
|
||||||
"source": "https://github.com/symfony/browser-kit/tree/v5.2.0"
|
|
||||||
},
|
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"url": "https://symfony.com/sponsor",
|
"url": "https://symfony.com/sponsor",
|
||||||
|
@ -4209,20 +4202,20 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2020-11-14T11:04:29+00:00"
|
"time": "2020-12-18T08:03:05+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/console",
|
"name": "symfony/console",
|
||||||
"version": "v5.2.0",
|
"version": "v5.2.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/console.git",
|
"url": "https://github.com/symfony/console.git",
|
||||||
"reference": "3e0564fb08d44a98bd5f1960204c958e57bd586b"
|
"reference": "47c02526c532fb381374dab26df05e7313978976"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/console/zipball/3e0564fb08d44a98bd5f1960204c958e57bd586b",
|
"url": "https://api.github.com/repos/symfony/console/zipball/47c02526c532fb381374dab26df05e7313978976",
|
||||||
"reference": "3e0564fb08d44a98bd5f1960204c958e57bd586b",
|
"reference": "47c02526c532fb381374dab26df05e7313978976",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -4303,20 +4296,20 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2020-11-28T11:24:18+00:00"
|
"time": "2020-12-18T08:03:05+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/css-selector",
|
"name": "symfony/css-selector",
|
||||||
"version": "v5.2.0",
|
"version": "v5.2.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/css-selector.git",
|
"url": "https://github.com/symfony/css-selector.git",
|
||||||
"reference": "b8d8eb06b0942e84a69e7acebc3e9c1e6e6e7256"
|
"reference": "f789e7ead4c79e04ca9a6d6162fc629c89bd8054"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/css-selector/zipball/b8d8eb06b0942e84a69e7acebc3e9c1e6e6e7256",
|
"url": "https://api.github.com/repos/symfony/css-selector/zipball/f789e7ead4c79e04ca9a6d6162fc629c89bd8054",
|
||||||
"reference": "b8d8eb06b0942e84a69e7acebc3e9c1e6e6e7256",
|
"reference": "f789e7ead4c79e04ca9a6d6162fc629c89bd8054",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -4365,7 +4358,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2020-10-28T21:31:18+00:00"
|
"time": "2020-12-08T17:02:38+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/deprecation-contracts",
|
"name": "symfony/deprecation-contracts",
|
||||||
|
@ -4433,16 +4426,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/dom-crawler",
|
"name": "symfony/dom-crawler",
|
||||||
"version": "v5.2.0",
|
"version": "v5.2.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/dom-crawler.git",
|
"url": "https://github.com/symfony/dom-crawler.git",
|
||||||
"reference": "0969122fe144dd8ab2e8c98c7e03eedc621b368c"
|
"reference": "ee7cf316fb0de786cfe5ae32ee79502b290c81ea"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/0969122fe144dd8ab2e8c98c7e03eedc621b368c",
|
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/ee7cf316fb0de786cfe5ae32ee79502b290c81ea",
|
||||||
"reference": "0969122fe144dd8ab2e8c98c7e03eedc621b368c",
|
"reference": "ee7cf316fb0de786cfe5ae32ee79502b290c81ea",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -4486,9 +4479,6 @@
|
||||||
],
|
],
|
||||||
"description": "Symfony DomCrawler Component",
|
"description": "Symfony DomCrawler Component",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
|
||||||
"source": "https://github.com/symfony/dom-crawler/tree/v5.2.0"
|
|
||||||
},
|
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"url": "https://symfony.com/sponsor",
|
"url": "https://symfony.com/sponsor",
|
||||||
|
@ -4503,20 +4493,20 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2020-10-24T12:01:57+00:00"
|
"time": "2020-12-18T08:02:46+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/event-dispatcher",
|
"name": "symfony/event-dispatcher",
|
||||||
"version": "v5.2.0",
|
"version": "v5.2.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/event-dispatcher.git",
|
"url": "https://github.com/symfony/event-dispatcher.git",
|
||||||
"reference": "aa13a09811e6d2ad43f8fb336bebdb7691d85d3c"
|
"reference": "1c93f7a1dff592c252574c79a8635a8a80856042"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/aa13a09811e6d2ad43f8fb336bebdb7691d85d3c",
|
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1c93f7a1dff592c252574c79a8635a8a80856042",
|
||||||
"reference": "aa13a09811e6d2ad43f8fb336bebdb7691d85d3c",
|
"reference": "1c93f7a1dff592c252574c79a8635a8a80856042",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -4585,7 +4575,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2020-11-01T16:14:45+00:00"
|
"time": "2020-12-18T08:03:05+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/event-dispatcher-contracts",
|
"name": "symfony/event-dispatcher-contracts",
|
||||||
|
@ -4665,16 +4655,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/finder",
|
"name": "symfony/finder",
|
||||||
"version": "v5.2.0",
|
"version": "v5.2.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/finder.git",
|
"url": "https://github.com/symfony/finder.git",
|
||||||
"reference": "fd8305521692f27eae3263895d1ef1571c71a78d"
|
"reference": "0b9231a5922fd7287ba5b411893c0ecd2733e5ba"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/finder/zipball/fd8305521692f27eae3263895d1ef1571c71a78d",
|
"url": "https://api.github.com/repos/symfony/finder/zipball/0b9231a5922fd7287ba5b411893c0ecd2733e5ba",
|
||||||
"reference": "fd8305521692f27eae3263895d1ef1571c71a78d",
|
"reference": "0b9231a5922fd7287ba5b411893c0ecd2733e5ba",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -4719,7 +4709,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2020-11-18T09:42:36+00:00"
|
"time": "2020-12-08T17:02:38+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-ctype",
|
"name": "symfony/polyfill-ctype",
|
||||||
|
@ -5033,16 +5023,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/process",
|
"name": "symfony/process",
|
||||||
"version": "v5.2.0",
|
"version": "v5.2.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/process.git",
|
"url": "https://github.com/symfony/process.git",
|
||||||
"reference": "240e74140d4d956265048f3025c0aecbbc302d54"
|
"reference": "bd8815b8b6705298beaa384f04fabd459c10bedd"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/process/zipball/240e74140d4d956265048f3025c0aecbbc302d54",
|
"url": "https://api.github.com/repos/symfony/process/zipball/bd8815b8b6705298beaa384f04fabd459c10bedd",
|
||||||
"reference": "240e74140d4d956265048f3025c0aecbbc302d54",
|
"reference": "bd8815b8b6705298beaa384f04fabd459c10bedd",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -5088,7 +5078,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2020-11-02T15:47:15+00:00"
|
"time": "2020-12-08T17:03:37+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/service-contracts",
|
"name": "symfony/service-contracts",
|
||||||
|
@ -5168,16 +5158,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/string",
|
"name": "symfony/string",
|
||||||
"version": "v5.2.0",
|
"version": "v5.2.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/string.git",
|
"url": "https://github.com/symfony/string.git",
|
||||||
"reference": "40e975edadd4e32cd16f3753b3bad65d9ac48242"
|
"reference": "5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/string/zipball/40e975edadd4e32cd16f3753b3bad65d9ac48242",
|
"url": "https://api.github.com/repos/symfony/string/zipball/5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed",
|
||||||
"reference": "40e975edadd4e32cd16f3753b3bad65d9ac48242",
|
"reference": "5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -5244,20 +5234,20 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2020-10-24T12:08:07+00:00"
|
"time": "2020-12-05T07:33:16+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/yaml",
|
"name": "symfony/yaml",
|
||||||
"version": "v5.2.0",
|
"version": "v5.2.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/yaml.git",
|
"url": "https://github.com/symfony/yaml.git",
|
||||||
"reference": "bb73619b2ae5121bbbcd9f191dfd53ded17ae598"
|
"reference": "290ea5e03b8cf9b42c783163123f54441fb06939"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/bb73619b2ae5121bbbcd9f191dfd53ded17ae598",
|
"url": "https://api.github.com/repos/symfony/yaml/zipball/290ea5e03b8cf9b42c783163123f54441fb06939",
|
||||||
"reference": "bb73619b2ae5121bbbcd9f191dfd53ded17ae598",
|
"reference": "290ea5e03b8cf9b42c783163123f54441fb06939",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -5316,7 +5306,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2020-11-28T10:57:20+00:00"
|
"time": "2020-12-08T17:02:38+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "theseer/tokenizer",
|
"name": "theseer/tokenizer",
|
||||||
|
|
|
@ -31,12 +31,14 @@ class AppAsset extends AssetBundle
|
||||||
'css/footer.css'
|
'css/footer.css'
|
||||||
];
|
];
|
||||||
public $js = [
|
public $js = [
|
||||||
|
'https://kit.fontawesome.com/d7e922c226.js',
|
||||||
'https://code.jquery.com/jquery-3.5.1.min.js',
|
'https://code.jquery.com/jquery-3.5.1.min.js',
|
||||||
'js/bootstrap/popper.min.js',
|
'js/bootstrap/popper.min.js',
|
||||||
'js/bootstrap/bootstrap.min.js',
|
'js/bootstrap/bootstrap.min.js',
|
||||||
'https://cdn.jsdelivr.net/bxslider/4.1.1/jquery.bxslider.min.js',
|
'https://cdn.jsdelivr.net/bxslider/4.1.1/jquery.bxslider.min.js',
|
||||||
|
'js/account.js',
|
||||||
'js/ticker.js',
|
'js/ticker.js',
|
||||||
'https://kit.fontawesome.com/d7e922c226.js'
|
'js/reinitialization.js'
|
||||||
];
|
];
|
||||||
public $depends = [
|
public $depends = [
|
||||||
'yii\web\YiiAsset',
|
'yii\web\YiiAsset',
|
||||||
|
|
|
@ -1,17 +1,16 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
$params = require __DIR__ . '/params.php';
|
|
||||||
$db = require __DIR__ . '/db.php';
|
|
||||||
|
|
||||||
$config = [
|
$config = [
|
||||||
'id' => 'basic-console',
|
'id' => 'basic-console',
|
||||||
'basePath' => dirname(__DIR__),
|
'basePath' => dirname(__DIR__),
|
||||||
'bootstrap' => ['log'],
|
'bootstrap' => ['log'],
|
||||||
'controllerNamespace' => 'app\commands',
|
'controllerNamespace' => 'app\commands',
|
||||||
'aliases' => [
|
'aliases' => [
|
||||||
'@bower' => '@vendor/bower-asset',
|
'@vendor' => dirname(__DIR__) . '../../../../vendor',
|
||||||
'@npm' => '@vendor/npm-asset',
|
'@bower' => '@vendor/bower-asset',
|
||||||
'@tests' => '@app/tests',
|
'@npm' => '@vendor/npm-asset',
|
||||||
|
'@explosivebit' => '@vendor/explosivebit',
|
||||||
|
'@tests' => '@app/tests',
|
||||||
],
|
],
|
||||||
'components' => [
|
'components' => [
|
||||||
'cache' => [
|
'cache' => [
|
||||||
|
@ -25,16 +24,15 @@ $config = [
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
'db' => $db,
|
'arangodb' => require __DIR__ . '/db.php'
|
||||||
],
|
],
|
||||||
'params' => $params,
|
'params' => require __DIR__ . '/params.php',
|
||||||
/*
|
|
||||||
'controllerMap' => [
|
'controllerMap' => [
|
||||||
'fixture' => [ // Fixture generation command line.
|
'arangodb-migrate' => 'explosivebit\arangodb\console\controllers\MigrateController',
|
||||||
|
'fixture' => [
|
||||||
'class' => 'yii\faker\FixtureController',
|
'class' => 'yii\faker\FixtureController',
|
||||||
],
|
],
|
||||||
],
|
]
|
||||||
*/
|
|
||||||
];
|
];
|
||||||
|
|
||||||
if (YII_ENV_DEV) {
|
if (YII_ENV_DEV) {
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
return [
|
use ArangoDBClient\ConnectionOptions;
|
||||||
'class' => 'yii\db\Connection',
|
|
||||||
'dsn' => 'mysql:host=;dbname=',
|
|
||||||
'username' => '',
|
|
||||||
'password' => '',
|
|
||||||
'charset' => 'utf8',
|
|
||||||
|
|
||||||
// Schema cache options (for production environment)
|
return [
|
||||||
//'enableSchemaCache' => true,
|
'class' => '\explosivebit\arangodb\Connection',
|
||||||
//'schemaCacheDuration' => 60,
|
'connectionOptions' => [
|
||||||
//'schemaCache' => 'cache',
|
ConnectionOptions::OPTION_DATABASE => '',
|
||||||
|
ConnectionOptions::OPTION_ENDPOINT => 'tcp://127.0.0.1:8529',
|
||||||
|
ConnectionOptions::OPTION_AUTH_TYPE => 'Basic',
|
||||||
|
ConnectionOptions::OPTION_AUTH_USER => '',
|
||||||
|
ConnectionOptions::OPTION_AUTH_PASSWD => '',
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
<?php
|
<?php
|
||||||
$params = require __DIR__ . '/params.php';
|
|
||||||
$db = require __DIR__ . '/test_db.php';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Application configuration shared by all test types
|
* Application configuration shared by all test types
|
||||||
|
@ -14,7 +12,7 @@ return [
|
||||||
],
|
],
|
||||||
'language' => 'en-US',
|
'language' => 'en-US',
|
||||||
'components' => [
|
'components' => [
|
||||||
'db' => $db,
|
'db' => require __DIR__ . '/test_db.php',
|
||||||
'mailer' => [
|
'mailer' => [
|
||||||
'useFileTransport' => true,
|
'useFileTransport' => true,
|
||||||
],
|
],
|
||||||
|
@ -25,7 +23,7 @@ return [
|
||||||
'showScriptName' => true,
|
'showScriptName' => true,
|
||||||
],
|
],
|
||||||
'user' => [
|
'user' => [
|
||||||
'identityClass' => 'app\models\User',
|
'identityClass' => 'app\models\Account',
|
||||||
],
|
],
|
||||||
'request' => [
|
'request' => [
|
||||||
'cookieValidationKey' => 'test',
|
'cookieValidationKey' => 'test',
|
||||||
|
@ -38,5 +36,5 @@ return [
|
||||||
*/
|
*/
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
'params' => $params,
|
'params' => require __DIR__ . '/params.php',
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,31 +1,34 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use ArangoDBClient\ConnectionOptions;
|
|
||||||
|
|
||||||
$params = require __DIR__ . '/params.php';
|
|
||||||
$db = require __DIR__ . '/db.php';
|
|
||||||
|
|
||||||
$config = [
|
$config = [
|
||||||
'id' => 'basic',
|
'id' => 'basic',
|
||||||
'basePath' => dirname(__DIR__),
|
'basePath' => dirname(__DIR__),
|
||||||
'bootstrap' => ['log'],
|
'bootstrap' => ['log'],
|
||||||
'aliases' => [
|
'aliases' => [
|
||||||
'@vendor' => '../../../../vendor',
|
'@vendor' => dirname(__DIR__) . '../../../../vendor',
|
||||||
'@bower' => '@vendor/bower-asset',
|
'@bower' => '@vendor/bower-asset',
|
||||||
'@npm' => '@vendor/npm-asset',
|
'@npm' => '@vendor/npm-asset',
|
||||||
|
'@explosivebit' => '@vendor/explosivebit',
|
||||||
],
|
],
|
||||||
'components' => [
|
'components' => [
|
||||||
'request' => [
|
'request' => [
|
||||||
// !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
|
// !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
|
||||||
'cookieValidationKey' => '',
|
'cookieValidationKey' => '',
|
||||||
|
'baseUrl' => ''
|
||||||
|
],
|
||||||
|
'cache' => [
|
||||||
|
'class' => 'yii\caching\FileCache',
|
||||||
],
|
],
|
||||||
// 'cache' => [
|
|
||||||
// 'class' => 'yii\caching\FileCache',
|
|
||||||
// ],
|
|
||||||
'user' => [
|
'user' => [
|
||||||
'identityClass' => 'app\models\User',
|
'identityClass' => 'app\models\Account',
|
||||||
'enableAutoLogin' => true,
|
'enableAutoLogin' => true,
|
||||||
],
|
],
|
||||||
|
// 'session' => [
|
||||||
|
// 'class' => 'yii\web\Session',
|
||||||
|
// 'cookieParams' => ['lifetime' => 3600 * 24 * 30 * 12],
|
||||||
|
// 'timeout' => 3600 * 24 * 30 * 12,
|
||||||
|
// 'useCookies' => true,
|
||||||
|
// ],
|
||||||
'errorHandler' => [
|
'errorHandler' => [
|
||||||
'errorAction' => 'site/error',
|
'errorAction' => 'site/error',
|
||||||
],
|
],
|
||||||
|
@ -45,32 +48,29 @@ $config = [
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
'db' => $db,
|
'arangodb' => require __DIR__ . '/db.php',
|
||||||
'arangodb' => [
|
|
||||||
'class' => '\explosivebit\arangodb\Connection',
|
|
||||||
'connectionOptions' => [
|
|
||||||
ConnectionOptions::OPTION_DATABASE => '',
|
|
||||||
ConnectionOptions::OPTION_ENDPOINT => '',
|
|
||||||
ConnectionOptions::OPTION_AUTH_TYPE => 'Basic',
|
|
||||||
ConnectionOptions::OPTION_AUTH_USER => '',
|
|
||||||
ConnectionOptions::OPTION_AUTH_PASSWD => '',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'urlManager' => [
|
'urlManager' => [
|
||||||
'enablePrettyUrl' => true,
|
'enablePrettyUrl' => true,
|
||||||
'showScriptName' => false,
|
'showScriptName' => false,
|
||||||
'rules' => [],
|
'rules' => [
|
||||||
|
['class' => 'yii\rest\UrlRule', 'controller' => 'site'],
|
||||||
|
'<action>' => 'site/<action>'
|
||||||
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
],
|
],
|
||||||
'params' => $params,
|
'params' => require __DIR__ . '/params.php',
|
||||||
];
|
];
|
||||||
|
|
||||||
if (YII_ENV_DEV) {
|
if (YII_ENV_DEV) {
|
||||||
// configuration adjustments for 'dev' environment
|
|
||||||
$config['bootstrap'][] = 'debug';
|
$config['bootstrap'][] = 'debug';
|
||||||
$config['modules']['debug'] = [
|
$config['modules']['debug'] = [
|
||||||
'class' => 'yii\debug\Module',
|
'class' => 'yii\debug\Module',
|
||||||
|
'panels' => [
|
||||||
|
'ArangoDB' => [
|
||||||
|
'class' => 'explosivebit\arangodb\panels\arangodb\ArangoDbPanel'
|
||||||
|
]
|
||||||
|
],
|
||||||
// uncomment the following to add your IP if you are not connecting from localhost.
|
// uncomment the following to add your IP if you are not connecting from localhost.
|
||||||
//'allowedIPs' => ['127.0.0.1', '::1'],
|
//'allowedIPs' => ['127.0.0.1', '::1'],
|
||||||
];
|
];
|
||||||
|
|
|
@ -7,11 +7,14 @@ use yii\filters\AccessControl;
|
||||||
use yii\web\Controller;
|
use yii\web\Controller;
|
||||||
use yii\web\Response;
|
use yii\web\Response;
|
||||||
use yii\filters\VerbFilter;
|
use yii\filters\VerbFilter;
|
||||||
use app\models\LoginForm;
|
use app\models\AuthenticationForm;
|
||||||
|
use app\models\RegistrationForm;
|
||||||
use app\models\ContactForm;
|
use app\models\ContactForm;
|
||||||
|
use app\models\Account;
|
||||||
|
|
||||||
class SiteController extends Controller
|
class SiteController extends Controller
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
|
@ -19,7 +22,7 @@ class SiteController extends Controller
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'access' => [
|
'access' => [
|
||||||
'class' => AccessControl::className(),
|
'class' => AccessControl::class,
|
||||||
'only' => ['logout'],
|
'only' => ['logout'],
|
||||||
'rules' => [
|
'rules' => [
|
||||||
[
|
[
|
||||||
|
@ -30,7 +33,7 @@ class SiteController extends Controller
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
'verbs' => [
|
'verbs' => [
|
||||||
'class' => VerbFilter::className(),
|
'class' => VerbFilter::class,
|
||||||
'actions' => [
|
'actions' => [
|
||||||
'logout' => ['post'],
|
'logout' => ['post'],
|
||||||
],
|
],
|
||||||
|
@ -64,26 +67,94 @@ class SiteController extends Controller
|
||||||
return $this->render('index');
|
return $this->render('index');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Identification action.
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function actionIdentification()
|
||||||
|
{
|
||||||
|
if (Yii::$app->request->isAjax) {
|
||||||
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
||||||
|
|
||||||
|
if (Yii::$app->user->isGuest) {
|
||||||
|
return [
|
||||||
|
'menu' => '<a onclick="authentication()">Вход</a>',
|
||||||
|
'_csrf' => Yii::$app->request->getCsrfToken()
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
$mail = Yii::$app->user->identity->mail;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'menu' => <<<HTML
|
||||||
|
<p class="m-0">
|
||||||
|
<a class="text-dark" href="/cart"><i class="fas fa-shopping-cart mr-4"></i></a>
|
||||||
|
<a class="text-dark" href="/orders"><i class="fas fa-list mr-4"></i></a>
|
||||||
|
<a class="text-dark" onclick="deauthentication()">Выход ($mail)</a>
|
||||||
|
</p>
|
||||||
|
HTML,
|
||||||
|
'_csrf' => Yii::$app->request->getCsrfToken()
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Login action.
|
* Login action.
|
||||||
*
|
*
|
||||||
* @return Response|string
|
* @return Response|string
|
||||||
*/
|
*/
|
||||||
public function actionLogin()
|
public function actionAuthentication()
|
||||||
{
|
{
|
||||||
if (!Yii::$app->user->isGuest) {
|
$model = new AuthenticationForm(Yii::$app->request->post()['AuthenticationForm'] ?? Yii::$app->request->get()['AuthenticationForm']);
|
||||||
return $this->goHome();
|
|
||||||
|
if (Yii::$app->request->isAjax) {
|
||||||
|
// AJAX-POST-запрос
|
||||||
|
|
||||||
|
if (!Yii::$app->user->isGuest) {
|
||||||
|
// Аккаунт уже авторизован
|
||||||
|
Yii::$app->response->statusCode = 403;
|
||||||
|
return [
|
||||||
|
'form' => $this->renderPartial('index'),
|
||||||
|
'_csrf' => Yii::$app->request->getCsrfToken()
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
||||||
|
|
||||||
|
if (isset($model->mail, $model->pswd)) {
|
||||||
|
if ($model->load(Yii::$app->request->post()) && $model->authentication()) {
|
||||||
|
return [
|
||||||
|
'menu' => <<<HTML
|
||||||
|
<p class="m-0">
|
||||||
|
<a class="text-dark" href="/cart"><i class="fas fa-shopping-cart mr-4"></i></a>
|
||||||
|
<a class="text-dark" href="/orders"><i class="fas fa-list mr-4"></i></a>
|
||||||
|
<a class="text-dark" onclick="deauthentication()">Выход ($model->mail)</a>
|
||||||
|
</p>
|
||||||
|
HTML,
|
||||||
|
'form' => $this->renderPartial('index'),
|
||||||
|
'_csrf' => Yii::$app->request->getCsrfToken()
|
||||||
|
];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return [
|
||||||
|
'menu' => '<a onclick="authentication()">Вход</a>',
|
||||||
|
'form' => $this->renderPartial('authentication', compact('model')),
|
||||||
|
'_csrf' => Yii::$app->request->getCsrfToken()
|
||||||
|
];
|
||||||
|
}
|
||||||
|
} else if (Yii::$app->request->isPost) {
|
||||||
|
// POST-запрос
|
||||||
|
} else {
|
||||||
|
// GET-запрос и прочие
|
||||||
|
|
||||||
|
if (!Yii::$app->user->isGuest) {
|
||||||
|
// Аккаунт уже авторизован
|
||||||
|
Yii::$app->response->redirect('/');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$model = new LoginForm();
|
return $this->render('authentication', compact('model'));
|
||||||
if ($model->load(Yii::$app->request->post()) && $model->login()) {
|
|
||||||
return $this->goBack();
|
|
||||||
}
|
|
||||||
|
|
||||||
$model->password = '';
|
|
||||||
return $this->render('login', [
|
|
||||||
'model' => $model,
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -91,11 +162,101 @@ class SiteController extends Controller
|
||||||
*
|
*
|
||||||
* @return Response
|
* @return Response
|
||||||
*/
|
*/
|
||||||
public function actionLogout()
|
public function actionDeauthentication()
|
||||||
{
|
{
|
||||||
Yii::$app->user->logout();
|
if (Yii::$app->request->isAjax) {
|
||||||
|
// AJAX-POST-запрос
|
||||||
|
|
||||||
return $this->goHome();
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
||||||
|
Yii::$app->user->logout();
|
||||||
|
|
||||||
|
return [
|
||||||
|
'menu' => '<a onclick="authentication()">Вход</a>',
|
||||||
|
'form' => $this->renderPartial('index'),
|
||||||
|
'_csrf' => Yii::$app->request->getCsrfToken()
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
Yii::$app->response->redirect('/');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Login action.
|
||||||
|
*
|
||||||
|
* @return Response|string
|
||||||
|
*/
|
||||||
|
public function actionRegistration()
|
||||||
|
{
|
||||||
|
$model = new RegistrationForm(Yii::$app->request->post()['RegistrationForm'] ?? Yii::$app->request->get()['RegistrationForm']);
|
||||||
|
|
||||||
|
if (Yii::$app->request->isAjax) {
|
||||||
|
// AJAX-POST-запрос
|
||||||
|
|
||||||
|
if (!Yii::$app->user->isGuest) {
|
||||||
|
// Аккаунт уже авторизован
|
||||||
|
Yii::$app->response->statusCode = 302;
|
||||||
|
return [
|
||||||
|
'form' => $this->renderPartial('index'),
|
||||||
|
'_csrf' => Yii::$app->request->getCsrfToken()
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
||||||
|
|
||||||
|
if (isset($model->mail, $model->pswd)) {
|
||||||
|
// Аккаунт передал необходимые параметры
|
||||||
|
|
||||||
|
// Инициализация нового аккаунта
|
||||||
|
$account = new Account();
|
||||||
|
$account->mail = $model->mail;
|
||||||
|
$account->pswd = Yii::$app->security->generatePasswordHash($model->pswd);
|
||||||
|
|
||||||
|
if ($model->load(Yii::$app->request->post()) && $model->validate() && $account->save()) {
|
||||||
|
// Данные прошли проверку и аккаунт был создан
|
||||||
|
|
||||||
|
return [
|
||||||
|
'menu' => <<<HTML
|
||||||
|
<p class="m-0">
|
||||||
|
<a class="text-dark" href="/cart"><i class="fas fa-shopping-cart mr-4"></i></a>
|
||||||
|
<a class="text-dark" href="/orders"><i class="fas fa-list mr-4"></i></a>
|
||||||
|
<a class="text-dark" onclick="deauthentication()">Выход ($account->mail)</a>
|
||||||
|
</p>
|
||||||
|
HTML,
|
||||||
|
'form' => $this->renderPartial('index'),
|
||||||
|
'_csrf' => Yii::$app->request->getCsrfToken()
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
// Данные не прошли проверку
|
||||||
|
|
||||||
|
Yii::$app->response->statusCode = 400;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'form' => $this->renderPartial('registration', compact('model')),
|
||||||
|
'_csrf' => Yii::$app->request->getCsrfToken()
|
||||||
|
];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Аккаунт не передал необходимые параметры
|
||||||
|
|
||||||
|
return [
|
||||||
|
'menu' => '<a onclick="authentication()">Вход</a>',
|
||||||
|
'form' => $this->renderPartial('registration', compact('model')),
|
||||||
|
'_csrf' => Yii::$app->request->getCsrfToken()
|
||||||
|
];
|
||||||
|
}
|
||||||
|
} else if (Yii::$app->request->isPost) {
|
||||||
|
// POST-запрос
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
// GET-запрос и прочие
|
||||||
|
|
||||||
|
if (!Yii::$app->user->isGuest) {
|
||||||
|
// Аккаунт уже авторизован
|
||||||
|
Yii::$app->response->redirect('/');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->render('registration', compact('model'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use explosivebit\arangodb\Migration;
|
||||||
|
|
||||||
|
class m201219_074926_create_account_collection extends Migration
|
||||||
|
{
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
$this->createCollection('account');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
// $this->delete('accounts', 'mail');
|
||||||
|
// $this->delete('accounts', 'name');
|
||||||
|
// $this->delete('accounts', 'pswd');
|
||||||
|
|
||||||
|
$this->dropCollection('account');
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,115 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace app\models;
|
||||||
|
|
||||||
|
use Yii;
|
||||||
|
use yii\web\IdentityInterface;
|
||||||
|
use explosivebit\arangodb\ActiveRecord;
|
||||||
|
|
||||||
|
class Account extends ActiveRecord implements IdentityInterface
|
||||||
|
{
|
||||||
|
public $_mail;
|
||||||
|
public $_pswd;
|
||||||
|
public $_name;
|
||||||
|
public $_simc;
|
||||||
|
public $_sity;
|
||||||
|
public $_comp;
|
||||||
|
public $_taxn;
|
||||||
|
public $_auth;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string the name of the index associated with this ActiveRecord class.
|
||||||
|
*/
|
||||||
|
public static function collectionName()
|
||||||
|
{
|
||||||
|
return 'account';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array list of attribute names.
|
||||||
|
*/
|
||||||
|
public function attributes()
|
||||||
|
{
|
||||||
|
return ['mail', 'pswd', 'auth', 'name' => 'sex', 'simc', 'sity', 'comp', 'taxn', 'auth'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return int|string current user ID
|
||||||
|
*/
|
||||||
|
public function getId()
|
||||||
|
{
|
||||||
|
return $this->mail;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string current user auth key
|
||||||
|
*/
|
||||||
|
public function getAuthKey()
|
||||||
|
{
|
||||||
|
return $this->auth;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds an identity by the given ID.
|
||||||
|
*
|
||||||
|
* @param string|int $id the ID to be looked for
|
||||||
|
* @return IdentityInterface|null the identity object that matches the given ID.
|
||||||
|
*/
|
||||||
|
public static function findIdentity($mail)
|
||||||
|
{
|
||||||
|
return static::findOne(['mail' => $mail]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds an identity by the given token.
|
||||||
|
*
|
||||||
|
* @param string $token the token to be looked for
|
||||||
|
* @return IdentityInterface|null the identity object that matches the given token.
|
||||||
|
*/
|
||||||
|
public static function findIdentityByAccessToken($pass, $type = null)
|
||||||
|
{
|
||||||
|
return static::findOne(['pass' => $pass]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds user by mail
|
||||||
|
*
|
||||||
|
* @param string $mail
|
||||||
|
* @return static|null
|
||||||
|
*/
|
||||||
|
public static function findByMail($mail)
|
||||||
|
{
|
||||||
|
return static::findOne(['mail' => $mail]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates password
|
||||||
|
*
|
||||||
|
* @param string $pswd password to validate
|
||||||
|
* @return bool if password provided is valid for current user
|
||||||
|
*/
|
||||||
|
public function validatePassword($pswd)
|
||||||
|
{
|
||||||
|
return Yii::$app->security->validatePassword($pswd, $this->pswd);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $auth
|
||||||
|
* @return bool if auth key is valid for current user
|
||||||
|
*/
|
||||||
|
public function validateAuthKey($auth)
|
||||||
|
{
|
||||||
|
return $this->getAuthKey() === $auth;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function beforeSave($insert)
|
||||||
|
{
|
||||||
|
if (parent::beforeSave($insert)) {
|
||||||
|
if ($this->isNewRecord) {
|
||||||
|
$this->auth = Yii::$app->security->generateRandomString();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,91 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace app\models;
|
||||||
|
|
||||||
|
use Yii;
|
||||||
|
use yii\base\Model;
|
||||||
|
use app\models\Account;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* LoginForm is the model behind the login form.
|
||||||
|
*
|
||||||
|
* @property-read Account|null $account This property is read-only.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class AuthenticationForm extends Model
|
||||||
|
{
|
||||||
|
public $mail;
|
||||||
|
public $pswd;
|
||||||
|
public $auto = true;
|
||||||
|
|
||||||
|
private $account = false;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array the validation rules.
|
||||||
|
*/
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
// accountname and password are both required
|
||||||
|
[['mail', 'pswd'], 'required'],
|
||||||
|
// rememberMe must be a boolean value
|
||||||
|
['auto', 'boolean'],
|
||||||
|
// pswd is validated by validatePassword()
|
||||||
|
['pswd', 'validatePassword'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function attributeLabels()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'mail' => 'Почта',
|
||||||
|
'pswd' => 'Пароль',
|
||||||
|
'auto' => 'Запомнить'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates the password.
|
||||||
|
* This method serves as the inline validation for password.
|
||||||
|
*
|
||||||
|
* @param string $attribute the attribute currently being validated
|
||||||
|
* @param array $params the additional name-value pairs given in the rule
|
||||||
|
*/
|
||||||
|
public function validatePassword($attribute, $params)
|
||||||
|
{
|
||||||
|
if (!$this->hasErrors()) {
|
||||||
|
$account = $this->getAccount();
|
||||||
|
|
||||||
|
if (!$account || !$account->validatePassword($this->pswd)) {
|
||||||
|
$this->addError($attribute, 'Не удалось идентифицировать');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Logs in a account using the provided accountname and password.
|
||||||
|
* @return bool whether the account is logged in successfully
|
||||||
|
*/
|
||||||
|
public function authentication()
|
||||||
|
{
|
||||||
|
if ($this->validate()) {
|
||||||
|
return Yii::$app->user->login($this->getAccount(), $this->auto ? 3600*24*30 : 0);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds account by [[accountname]]
|
||||||
|
*
|
||||||
|
* @return Account|null
|
||||||
|
*/
|
||||||
|
public function getAccount()
|
||||||
|
{
|
||||||
|
if ($this->account === false) {
|
||||||
|
$this->account = Account::findByMail($this->mail);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->account;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,81 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace app\models;
|
|
||||||
|
|
||||||
use Yii;
|
|
||||||
use yii\base\Model;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* LoginForm is the model behind the login form.
|
|
||||||
*
|
|
||||||
* @property-read User|null $user This property is read-only.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
class LoginForm extends Model
|
|
||||||
{
|
|
||||||
public $username;
|
|
||||||
public $password;
|
|
||||||
public $rememberMe = true;
|
|
||||||
|
|
||||||
private $_user = false;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array the validation rules.
|
|
||||||
*/
|
|
||||||
public function rules()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
// username and password are both required
|
|
||||||
[['username', 'password'], 'required'],
|
|
||||||
// rememberMe must be a boolean value
|
|
||||||
['rememberMe', 'boolean'],
|
|
||||||
// password is validated by validatePassword()
|
|
||||||
['password', 'validatePassword'],
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Validates the password.
|
|
||||||
* This method serves as the inline validation for password.
|
|
||||||
*
|
|
||||||
* @param string $attribute the attribute currently being validated
|
|
||||||
* @param array $params the additional name-value pairs given in the rule
|
|
||||||
*/
|
|
||||||
public function validatePassword($attribute, $params)
|
|
||||||
{
|
|
||||||
if (!$this->hasErrors()) {
|
|
||||||
$user = $this->getUser();
|
|
||||||
|
|
||||||
if (!$user || !$user->validatePassword($this->password)) {
|
|
||||||
$this->addError($attribute, 'Incorrect username or password.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Logs in a user using the provided username and password.
|
|
||||||
* @return bool whether the user is logged in successfully
|
|
||||||
*/
|
|
||||||
public function login()
|
|
||||||
{
|
|
||||||
if ($this->validate()) {
|
|
||||||
return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600*24*30 : 0);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Finds user by [[username]]
|
|
||||||
*
|
|
||||||
* @return User|null
|
|
||||||
*/
|
|
||||||
public function getUser()
|
|
||||||
{
|
|
||||||
if ($this->_user === false) {
|
|
||||||
$this->_user = User::findByUsername($this->username);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->_user;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace app\models;
|
||||||
|
|
||||||
|
use yii\base\Model;
|
||||||
|
use app\models\Account;
|
||||||
|
|
||||||
|
class RegistrationForm extends Model
|
||||||
|
{
|
||||||
|
public $mail;
|
||||||
|
public $pswd;
|
||||||
|
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
[['mail', 'pswd'], 'required', 'message' => 'Заполните поле'],
|
||||||
|
['mail', 'unique', 'targetClass' => Account::class, 'message' => 'Почта уже привязана к другому аккаунту'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function attributeLabels()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'mail' => 'Почта',
|
||||||
|
'pswd' => 'Пароль',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
|
@ -17,7 +17,7 @@ AppAsset::register($this);
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<?php $this->registerCsrfMetaTags() ?>
|
<?php $this->registerCsrfMetaTags() ?>
|
||||||
<title><?= Html::encode($this->title) ?></title>
|
<title><?= Html::encode($this->title ?? 'SkillParts') ?></title>
|
||||||
<?php $this->head() ?>
|
<?php $this->head() ?>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@ -28,13 +28,11 @@ AppAsset::register($this);
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row mt-3 mt-sm-0 pt-3">
|
<div class="row mt-3 mt-sm-0 pt-3">
|
||||||
<div class="col-3 col-sm-4 col-md-2 d-flex flex-column justify-content-end logotype">
|
<div class="col-3 col-sm-4 col-md-2 d-flex flex-column justify-content-end logotype">
|
||||||
<img class="img-fluid" src="/img/logos/skillparts.png" alt="SkillParts">
|
<a href="/"><img class="img-fluid" src="/img/logos/skillparts.png" alt="SkillParts"></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="col ml-auto text-right d-flex flex-column justify-content-end">
|
<div class="col ml-auto text-right d-flex flex-column justify-content-end">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<nav id="nav" class="col"></nav>
|
||||||
<p class="m-0"><i class="fas fa-shopping-cart mr-4"></i><i class="fas fa-list mr-4"></i><a>Личный кабинет</a></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -72,7 +70,7 @@ AppAsset::register($this);
|
||||||
<input id="catalog_search_panel_button_3" class="btn btn-sm5 text-white button_clean" type="radio" name="catalog_search_panel_buttons" value="catalog_search_panel_button_3">
|
<input id="catalog_search_panel_button_3" class="btn btn-sm5 text-white button_clean" type="radio" name="catalog_search_panel_buttons" value="catalog_search_panel_button_3">
|
||||||
<label class="mb-0 px-3 px-md-4 py-1" for="catalog_search_panel_button_3">Третья кнопка</label> -->
|
<label class="mb-0 px-3 px-md-4 py-1" for="catalog_search_panel_button_3">Третья кнопка</label> -->
|
||||||
<form class="d-flex catalog_search">
|
<form class="d-flex catalog_search">
|
||||||
<input type="text" class="form-control col-8 col-lg-10 catalog_search_line" id="productNumber" placeholder="Номер запчасти, например: 45223503481">
|
<input type="text" class="form-control col-8 col-lg-10 catalog_search_line" id="productNumber" placeholder="Введите номер запчасти, например: 45223503481">
|
||||||
<button type="submit" class="col btn button_clean catalog_search_button">ПОИСК</button>
|
<button type="submit" class="col btn button_clean catalog_search_button">ПОИСК</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -100,9 +98,6 @@ AppAsset::register($this);
|
||||||
<small class="row mb-1"><a>Поставщикам</a></small>
|
<small class="row mb-1"><a>Поставщикам</a></small>
|
||||||
<small class="row mb-1"><a>Партнерская сеть</a></small>
|
<small class="row mb-1"><a>Партнерская сеть</a></small>
|
||||||
</div>
|
</div>
|
||||||
<!-- <p class="pull-left">© My Company <?= date('Y') ?></p>
|
|
||||||
|
|
||||||
<p class="pull-right"><?= Yii::powered() ?></p> -->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -8,35 +8,39 @@ use yii\helpers\Html;
|
||||||
use yii\bootstrap\ActiveForm;
|
use yii\bootstrap\ActiveForm;
|
||||||
|
|
||||||
$this->title = 'Login';
|
$this->title = 'Login';
|
||||||
$this->params['breadcrumbs'][] = $this->title;
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div class="site-login">
|
<div class="site-login">
|
||||||
<h1><?= Html::encode($this->title) ?></h1>
|
<h1><?= Html::encode($this->title) ?></h1>
|
||||||
|
|
||||||
<p>Please fill out the following fields to login:</p>
|
<p>Please fill out the following fields to login:</p>
|
||||||
|
|
||||||
<?php $form = ActiveForm::begin([
|
<?php $form = ActiveForm::begin([
|
||||||
'id' => 'login-form',
|
'id' => 'form_authentication',
|
||||||
'layout' => 'horizontal',
|
'layout' => 'horizontal',
|
||||||
'fieldConfig' => [
|
'fieldConfig' => [
|
||||||
'template' => "{label}\n<div class=\"col-lg-3\">{input}</div>\n<div class=\"col-lg-8\">{error}</div>",
|
'template' => "{label}\n<div class=\"col-lg-3\">{input}</div>\n<div class=\"col-lg-8\">{error}</div>",
|
||||||
'labelOptions' => ['class' => 'col-lg-1 control-label'],
|
'labelOptions' => ['class' => 'col-lg-1 control-label'],
|
||||||
],
|
],
|
||||||
|
'action' => false,
|
||||||
|
'options' => [
|
||||||
|
'onsubmit' => 'authentication(this); return false;'
|
||||||
|
]
|
||||||
]); ?>
|
]); ?>
|
||||||
|
|
||||||
<?= $form->field($model, 'username')->textInput(['autofocus' => true]) ?>
|
<?= $form->field($model, 'mail')->textInput(['autofocus' => true]) ?>
|
||||||
|
|
||||||
<?= $form->field($model, 'password')->passwordInput() ?>
|
<?= $form->field($model, 'pswd')->passwordInput() ?>
|
||||||
|
|
||||||
<?= $form->field($model, 'rememberMe')->checkbox([
|
<?= $form->field($model, 'auto')->checkbox([
|
||||||
'template' => "<div class=\"col-lg-offset-1 col-lg-3\">{input} {label}</div>\n<div class=\"col-lg-8\">{error}</div>",
|
'template' => "<div class=\"col-lg-offset-1 col-lg-3\">{input} {label}</div>\n<div class=\"col-lg-8\">{error}</div>",
|
||||||
]) ?>
|
]) ?>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="col-lg-offset-1 col-lg-11">
|
<div class="col-lg-offset-1 col-lg-11">
|
||||||
<?= Html::submitButton('Login', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
|
<?= Html::submitButton('Login', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<?php ActiveForm::end(); ?>
|
<?php ActiveForm::end(); ?>
|
||||||
|
|
||||||
|
@ -44,4 +48,4 @@ $this->params['breadcrumbs'][] = $this->title;
|
||||||
You may login with <strong>admin/admin</strong> or <strong>demo/demo</strong>.<br>
|
You may login with <strong>admin/admin</strong> or <strong>demo/demo</strong>.<br>
|
||||||
To modify the username/password, please check out the code <code>app\models\User::$users</code>.
|
To modify the username/password, please check out the code <code>app\models\User::$users</code>.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -8,7 +8,7 @@ $this->title = 'SkillParts';
|
||||||
<div class="info_panel mb-4">
|
<div class="info_panel mb-4">
|
||||||
<div class="container h-100 d-flex flex-column justify-content-center">
|
<div class="container h-100 d-flex flex-column justify-content-center">
|
||||||
<p class="col-lg-8 mb-4 gilroy">Проблема с подбором запчастей?</p>
|
<p class="col-lg-8 mb-4 gilroy">Проблема с подбором запчастей?</p>
|
||||||
<button class="text-white btn button_clean button_call">Связаться с менеджером</button>
|
<a class="text-white btn button_clean button_call" href="/call">Связаться с менеджером</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="h-100 d-flex flex-column justify-content-end">
|
<div class="h-100 d-flex flex-column justify-content-end">
|
||||||
<img class="img-fluid" src="/img/photos/963K_cutted.webp" alt="Связаться с менеджером">
|
<img class="img-fluid" src="/img/photos/963K_cutted.webp" alt="Связаться с менеджером">
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\bootstrap\ActiveForm;
|
||||||
|
?>
|
||||||
|
|
||||||
|
<?php $form = ActiveForm::begin([
|
||||||
|
'id' => 'form_registration',
|
||||||
|
'action' => false,
|
||||||
|
'options' => [
|
||||||
|
'onsubmit' => 'registration(this); return false;'
|
||||||
|
]
|
||||||
|
]) ?>
|
||||||
|
<?= $form->field($model, 'mail') ?>
|
||||||
|
<?= $form->field($model, 'pswd')->passwordInput() ?>
|
||||||
|
<div class="form-group">
|
||||||
|
<div>
|
||||||
|
<?= Html::submitButton('Регистрация', ['class' => 'btn btn-success']) ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php ActiveForm::end() ?>
|
|
@ -18,15 +18,15 @@ ssl_certificate_key '%sprogdir%/userdata/config/cert_files/server.key'
|
||||||
# ssl_trusted_certificate '';
|
# ssl_trusted_certificate '';
|
||||||
|
|
||||||
# Force HTTPS
|
# Force HTTPS
|
||||||
# add_header Strict-Transport-Security 'max-age=2592000' always;
|
add_header Strict-Transport-Security 'max-age=2592000' always;
|
||||||
# if ($scheme ~* ^(?!https).*$) {
|
if ($scheme ~* ^(?!https).*$) {
|
||||||
# return 301 https://$host$request_uri;
|
return 301 https://$host$request_uri;
|
||||||
# }
|
}
|
||||||
|
|
||||||
# Force www.site.com => site.com
|
# Force www.site.com => site.com
|
||||||
# if ($host ~* ^www\.(.+)$) {
|
if ($host ~* ^www\.(.+)$) {
|
||||||
# return 301 $scheme://$1$request_uri;
|
return 301 $scheme://$1$request_uri;
|
||||||
# }
|
}
|
||||||
|
|
||||||
# Disable access to backup/config/command/log files
|
# Disable access to backup/config/command/log files
|
||||||
# if ($uri ~* ^.+\.(?:bak|co?nf|in[ci]|log|orig|sh|sql|tar|sql|t?gz|cmd|bat)$) {
|
# if ($uri ~* ^.+\.(?:bak|co?nf|in[ci]|log|orig|sh|sql|tar|sql|t?gz|cmd|bat)$) {
|
||||||
|
@ -70,38 +70,6 @@ location / {
|
||||||
include '%sprogdir%/userdata/config/nginx_fastcgi_params.txt';
|
include '%sprogdir%/userdata/config/nginx_fastcgi_params.txt';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Service configuration (do not edit!)
|
|
||||||
# ----------------------------
|
|
||||||
location /openserver/ {
|
|
||||||
root '%sprogdir%/modules/system/html';
|
|
||||||
autoindex off;
|
|
||||||
index index.php index.html index.htm;
|
|
||||||
|
|
||||||
%allow%allow all;
|
|
||||||
allow 127.0.0.0/8;
|
|
||||||
allow ::1/128;
|
|
||||||
allow %ips%;
|
|
||||||
deny all;
|
|
||||||
|
|
||||||
location ~* ^/openserver/.+\.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv|svgz?|ttf|ttc|otf|eot|woff2?)$ {
|
|
||||||
expires 1d;
|
|
||||||
access_log off;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /openserver/server-status {
|
|
||||||
stub_status on;
|
|
||||||
}
|
|
||||||
|
|
||||||
location ~ ^/openserver/.*\.php$ {
|
|
||||||
try_files $fastcgi_script_name =404;
|
|
||||||
fastcgi_index index.php;
|
|
||||||
fastcgi_pass backend;
|
|
||||||
include '%sprogdir%/userdata/config/nginx_fastcgi_params.txt';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
# End service configuration
|
|
||||||
# ----------------------------
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# ----------------------------
|
# ----------------------------
|
||||||
|
|
|
@ -8,5 +8,5 @@
|
||||||
|
|
||||||
.bx-wrapper .bx-viewport {
|
.bx-wrapper .bx-viewport {
|
||||||
width: 100vw !important;
|
width: 100vw !important;
|
||||||
height: 4rem !important;
|
height: 2rem !important;
|
||||||
}
|
}
|
|
@ -0,0 +1,113 @@
|
||||||
|
function identification() {
|
||||||
|
$.ajax({
|
||||||
|
url: '/identification',
|
||||||
|
type: 'post',
|
||||||
|
dataType: 'json',
|
||||||
|
data: { '_csrf': yii.getCsrfToken() },
|
||||||
|
success: function (data) {
|
||||||
|
// Обновление документа
|
||||||
|
document.getElementById('nav').innerHTML = data.menu;
|
||||||
|
$('meta[name=csrf-token]').prop("content", data._csrf);
|
||||||
|
|
||||||
|
// Реинициализация
|
||||||
|
reinitialization();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
function authentication(form) {
|
||||||
|
if (form == undefined) {
|
||||||
|
form = { '_csrf': yii.getCsrfToken() };
|
||||||
|
} else {
|
||||||
|
form = $(form).serialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: '/authentication',
|
||||||
|
type: 'post',
|
||||||
|
dataType: 'json',
|
||||||
|
data: form,
|
||||||
|
success: function (data, status) {
|
||||||
|
// Обновление документа
|
||||||
|
document.getElementById('nav').innerHTML = data.menu;
|
||||||
|
document.getElementsByTagName('main')[0].innerHTML = data.form;
|
||||||
|
$('meta[name=csrf-token]').prop("content", data._csrf);
|
||||||
|
|
||||||
|
// Перенаправление
|
||||||
|
history.pushState({}, document.title, '/');
|
||||||
|
|
||||||
|
// Реинициализация
|
||||||
|
reinitialization();
|
||||||
|
},
|
||||||
|
error: function (data, status) {
|
||||||
|
// Обновление документа
|
||||||
|
document.getElementsByTagName('main')[0].innerHTML = data.responseJSON.form;
|
||||||
|
$('meta[name=csrf-token]').prop("content", data.responseJSON._csrf);
|
||||||
|
|
||||||
|
if (statis === 403) {
|
||||||
|
// Перенаправление
|
||||||
|
history.pushState({}, document.title, '/');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Реинициализация
|
||||||
|
reinitialization();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
function deauthentication() {
|
||||||
|
$.ajax({
|
||||||
|
url: '/deauthentication',
|
||||||
|
type: 'post',
|
||||||
|
dataType: 'json',
|
||||||
|
data: { '_csrf': yii.getCsrfToken() },
|
||||||
|
success: function (data) {
|
||||||
|
// Обновление документа
|
||||||
|
document.getElementById('nav').innerHTML = data.menu;
|
||||||
|
document.getElementsByTagName('main')[0].innerHTML = data.form;
|
||||||
|
$('meta[name=csrf-token]').prop("content", data._csrf);
|
||||||
|
|
||||||
|
// Перенаправление
|
||||||
|
history.pushState({}, document.title, '/');
|
||||||
|
|
||||||
|
// Реинициализация
|
||||||
|
reinitialization();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
function registration(form) {
|
||||||
|
$.ajax({
|
||||||
|
url: '/registration',
|
||||||
|
type: 'post',
|
||||||
|
dataType: 'json',
|
||||||
|
data: $(form).serialize(),
|
||||||
|
success: function (data) {
|
||||||
|
// Обновление документа
|
||||||
|
document.getElementById('nav').innerHTML = data.menu;
|
||||||
|
document.getElementsByTagName('main')[0].innerHTML = data.form;
|
||||||
|
$('meta[name=csrf-token]').prop("content", data._csrf);
|
||||||
|
|
||||||
|
// Перенаправление
|
||||||
|
history.pushState({}, document.title, '/');
|
||||||
|
|
||||||
|
// Реинициализация
|
||||||
|
reinitialization();
|
||||||
|
},
|
||||||
|
error: function (data) {
|
||||||
|
// Обновление документа
|
||||||
|
document.getElementsByTagName('main')[0].innerHTML = data.responseJSON.form;
|
||||||
|
$('meta[name=csrf-token]').prop("content", data.responseJSON._csrf);
|
||||||
|
|
||||||
|
if (statis === 403) {
|
||||||
|
// Перенаправление
|
||||||
|
history.pushState({}, document.title, '/');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Реинициализация
|
||||||
|
reinitialization();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', identification(), true);
|
|
@ -0,0 +1,5 @@
|
||||||
|
function reinitialization() {
|
||||||
|
// Функции которые должны быть запущены при инициализации документа
|
||||||
|
|
||||||
|
tickerInit('all');
|
||||||
|
}
|
|
@ -1,8 +1,15 @@
|
||||||
$('.ticker').bxSlider({
|
function tickerInit(ticker) {
|
||||||
minSlides: 1,
|
ticker = $('.ticker').bxSlider({
|
||||||
maxSlides: 18,
|
minSlides: 1,
|
||||||
slideWidth: 189,
|
maxSlides: 100,
|
||||||
slideMargin: 0,
|
slideMargin: 0,
|
||||||
ticker: true,
|
ticker: true,
|
||||||
speed: 50000
|
speed: 80000
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function tickerReinit(ticker) {
|
||||||
|
ticker.reloadSlider();
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', tickerInit(), true);
|
Reference in New Issue