diff --git a/README.md b/README.md
index 86d5cadc7..c2bb3e9c8 100644
--- a/README.md
+++ b/README.md
@@ -3,6 +3,11 @@
NFQ Akademija
============
+# Medžiaga
+
+Bus remiamasi: https://github.com/aurelijusb/kickstart/pull/140
+Namų darbai: https://github.com/aurelijusb/kickstart/pull/162
+
# Intro
Sveiki! Tai yra Jūsų startinis projekto "template".
diff --git a/composer.json b/composer.json
index 5e4c82c5e..9ffabb5c5 100644
--- a/composer.json
+++ b/composer.json
@@ -5,19 +5,24 @@
"php": "^7.1.3",
"ext-ctype": "*",
"ext-iconv": "*",
+ "easycorp/easyadmin-bundle": "^2.3",
"symfony/asset": "4.3.*",
"symfony/console": "4.3.*",
"symfony/dotenv": "4.3.*",
"symfony/flex": "^1.3.1",
+ "symfony/form": "4.3.*",
"symfony/framework-bundle": "4.3.*",
"symfony/orm-pack": "^1.0",
+ "symfony/security-bundle": "4.3.*",
"symfony/twig-pack": "^1.0",
+ "symfony/validator": "4.3.*",
"symfony/webpack-encore-bundle": "^1.7",
"symfony/yaml": "4.3.*"
},
"require-dev": {
"squizlabs/php_codesniffer": "^3.5",
- "symfony/maker-bundle": "^1.13"
+ "symfony/maker-bundle": "^1.13",
+ "symfony/profiler-pack": "^1.0"
},
"config": {
"preferred-install": {
diff --git a/composer.lock b/composer.lock
index 99073b588..021c0ea7a 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "1ef246e2c00d457122ed5e9043e91bac",
+ "content-hash": "42b6934e59303ba4988e8da6d8cd28e1",
"packages": [
{
"name": "doctrine/annotations",
@@ -1208,6 +1208,90 @@
],
"time": "2018-06-14T14:45:07+00:00"
},
+ {
+ "name": "easycorp/easyadmin-bundle",
+ "version": "v2.3.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/EasyCorp/EasyAdminBundle.git",
+ "reference": "cf48c275e2b235898f225fb53e613d9228144ace"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/EasyCorp/EasyAdminBundle/zipball/cf48c275e2b235898f225fb53e613d9228144ace",
+ "reference": "cf48c275e2b235898f225fb53e613d9228144ace",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/common": "^2.8",
+ "doctrine/doctrine-bundle": "^1.8|^2.0",
+ "doctrine/orm": "^2.6.3",
+ "doctrine/persistence": "^1.0",
+ "pagerfanta/pagerfanta": "^1.0.1|^2.0",
+ "php": "^7.1.3",
+ "symfony/asset": "^4.2|^5.0",
+ "symfony/cache": "^4.2|^5.0",
+ "symfony/config": "^4.2|^5.0",
+ "symfony/dependency-injection": "^4.2|^5.0",
+ "symfony/doctrine-bridge": "^4.2|^5.0",
+ "symfony/event-dispatcher": "^4.2|^5.0",
+ "symfony/expression-language": "^4.2|^5.0",
+ "symfony/finder": "^4.2|^5.0",
+ "symfony/form": "^4.2|^5.0",
+ "symfony/framework-bundle": "^4.2|^5.0",
+ "symfony/http-foundation": "^4.2|^5.0",
+ "symfony/http-kernel": "^4.2|^5.0",
+ "symfony/polyfill-mbstring": "^1.7",
+ "symfony/property-access": "^4.2|^5.0",
+ "symfony/security-bundle": "^4.2|^5.0",
+ "symfony/translation": "^4.2|^5.0",
+ "symfony/twig-bridge": "^4.2|^5.0",
+ "symfony/twig-bundle": "^4.2|^5.0",
+ "symfony/validator": "^4.2|^5.0",
+ "twig/twig": "^2.11.3|^3.0"
+ },
+ "require-dev": {
+ "doctrine/data-fixtures": "^1.3",
+ "doctrine/doctrine-fixtures-bundle": "^3.0",
+ "psr/log": "~1.0",
+ "symfony/browser-kit": "^4.2|^5.0",
+ "symfony/console": "^4.2|^5.0",
+ "symfony/css-selector": "^4.2|^5.0",
+ "symfony/dom-crawler": "^4.2|^5.0",
+ "symfony/phpunit-bridge": "^4.3.5|^5.0",
+ "symfony/var-dumper": "^4.2|^5.0",
+ "symfony/yaml": "^4.2|^5.0"
+ },
+ "type": "symfony-bundle",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "EasyCorp\\Bundle\\EasyAdminBundle\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Project Contributors",
+ "homepage": "https://github.com/EasyCorp/EasyAdminBundle/blob/master/CONTRIBUTORS.md"
+ }
+ ],
+ "description": "Admin generator for Symfony applications",
+ "homepage": "https://github.com/EasyCorp/EasyAdminBundle",
+ "keywords": [
+ "admin",
+ "backend",
+ "generator"
+ ],
+ "time": "2019-10-23T15:47:36+00:00"
+ },
{
"name": "jdorn/sql-formatter",
"version": "v1.2.17",
@@ -1379,6 +1463,75 @@
],
"time": "2019-08-10T08:37:15+00:00"
},
+ {
+ "name": "pagerfanta/pagerfanta",
+ "version": "v2.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/whiteoctober/Pagerfanta.git",
+ "reference": "a53ff01d521648d9dbca19b93ac6bc75a59b0972"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/whiteoctober/Pagerfanta/zipball/a53ff01d521648d9dbca19b93ac6bc75a59b0972",
+ "reference": "a53ff01d521648d9dbca19b93ac6bc75a59b0972",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0"
+ },
+ "require-dev": {
+ "doctrine/orm": "~2.3",
+ "doctrine/phpcr-odm": "1.*",
+ "jackalope/jackalope-doctrine-dbal": "1.*",
+ "jmikola/geojson": "~1.0",
+ "mandango/mandango": "~1.0@dev",
+ "mandango/mondator": "~1.0@dev",
+ "phpunit/phpunit": "^6.5",
+ "propel/propel": "~2.0@dev",
+ "propel/propel1": "~1.6",
+ "ruflin/elastica": "~1.3",
+ "solarium/solarium": "~3.1"
+ },
+ "suggest": {
+ "doctrine/mongodb-odm": "To use the DoctrineODMMongoDBAdapter.",
+ "doctrine/orm": "To use the DoctrineORMAdapter.",
+ "doctrine/phpcr-odm": "To use the DoctrineODMPhpcrAdapter. >= 1.1.0",
+ "mandango/mandango": "To use the MandangoAdapter.",
+ "propel/propel": "To use the Propel2Adapter",
+ "propel/propel1": "To use the PropelAdapter",
+ "solarium/solarium": "To use the SolariumAdapter."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Pagerfanta\\": "src/Pagerfanta/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Pablo Díez",
+ "email": "pablodip@gmail.com"
+ }
+ ],
+ "description": "Pagination for PHP",
+ "keywords": [
+ "page",
+ "pagination",
+ "paginator",
+ "paging"
+ ],
+ "time": "2019-07-17T20:56:16+00:00"
+ },
{
"name": "psr/cache",
"version": "1.0.1",
@@ -2256,6 +2409,57 @@
],
"time": "2019-09-17T09:54:03+00:00"
},
+ {
+ "name": "symfony/expression-language",
+ "version": "v4.3.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/expression-language.git",
+ "reference": "d81f0eb914f534e8b17a9db8c2408d1f0cf55fd2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/expression-language/zipball/d81f0eb914f534e8b17a9db8c2408d1f0cf55fd2",
+ "reference": "d81f0eb914f534e8b17a9db8c2408d1f0cf55fd2",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3",
+ "symfony/cache": "~3.4|~4.0",
+ "symfony/service-contracts": "^1.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\ExpressionLanguage\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony ExpressionLanguage Component",
+ "homepage": "https://symfony.com",
+ "time": "2019-10-29T01:54:26+00:00"
+ },
{
"name": "symfony/filesystem",
"version": "v4.3.5",
@@ -2404,6 +2608,90 @@
"description": "Composer plugin for Symfony",
"time": "2019-09-19T14:55:57+00:00"
},
+ {
+ "name": "symfony/form",
+ "version": "v4.3.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/form.git",
+ "reference": "1134c093d6fd339ea1b8823c50940607b58349f2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/form/zipball/1134c093d6fd339ea1b8823c50940607b58349f2",
+ "reference": "1134c093d6fd339ea1b8823c50940607b58349f2",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3",
+ "symfony/event-dispatcher": "^4.3",
+ "symfony/intl": "^4.3",
+ "symfony/options-resolver": "~4.3",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/property-access": "~3.4|~4.0",
+ "symfony/service-contracts": "~1.1"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
+ "symfony/console": "<4.3",
+ "symfony/dependency-injection": "<3.4",
+ "symfony/doctrine-bridge": "<3.4",
+ "symfony/framework-bundle": "<3.4",
+ "symfony/http-kernel": "<4.3",
+ "symfony/intl": "<4.3",
+ "symfony/translation": "<4.2",
+ "symfony/twig-bridge": "<3.4.5|<4.0.5,>=4.0"
+ },
+ "require-dev": {
+ "doctrine/collections": "~1.0",
+ "symfony/config": "~3.4|~4.0",
+ "symfony/console": "^4.3",
+ "symfony/dependency-injection": "~3.4|~4.0",
+ "symfony/http-foundation": "~3.4|~4.0",
+ "symfony/http-kernel": "~4.3",
+ "symfony/security-csrf": "~3.4|~4.0",
+ "symfony/translation": "~4.2",
+ "symfony/validator": "^3.4.31|^4.3.4",
+ "symfony/var-dumper": "^4.3"
+ },
+ "suggest": {
+ "symfony/security-csrf": "For protecting forms against CSRF attacks.",
+ "symfony/twig-bridge": "For templating with Twig.",
+ "symfony/validator": "For form validation."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Form\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Form Component",
+ "homepage": "https://symfony.com",
+ "time": "2019-10-28T17:07:32+00:00"
+ },
{
"name": "symfony/framework-bundle",
"version": "v4.3.5",
@@ -2675,27 +2963,22 @@
"time": "2019-10-07T15:06:41+00:00"
},
{
- "name": "symfony/mime",
- "version": "v4.3.5",
+ "name": "symfony/inflector",
+ "version": "v4.3.8",
"source": {
"type": "git",
- "url": "https://github.com/symfony/mime.git",
- "reference": "32f71570547b91879fdbd9cf50317d556ae86916"
+ "url": "https://github.com/symfony/inflector.git",
+ "reference": "f97c69c132c08e31d291689d2d77bb0878094acb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/32f71570547b91879fdbd9cf50317d556ae86916",
- "reference": "32f71570547b91879fdbd9cf50317d556ae86916",
+ "url": "https://api.github.com/repos/symfony/inflector/zipball/f97c69c132c08e31d291689d2d77bb0878094acb",
+ "reference": "f97c69c132c08e31d291689d2d77bb0878094acb",
"shasum": ""
},
"require": {
"php": "^7.1.3",
- "symfony/polyfill-intl-idn": "^1.10",
- "symfony/polyfill-mbstring": "^1.0"
- },
- "require-dev": {
- "egulias/email-validator": "^2.1.10",
- "symfony/dependency-injection": "~3.4|^4.1"
+ "symfony/polyfill-ctype": "~1.8"
},
"type": "library",
"extra": {
@@ -2705,7 +2988,7 @@
},
"autoload": {
"psr-4": {
- "Symfony\\Component\\Mime\\": ""
+ "Symfony\\Component\\Inflector\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -2717,84 +3000,65 @@
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "A library to manipulate MIME messages",
+ "description": "Symfony Inflector Component",
"homepage": "https://symfony.com",
"keywords": [
- "mime",
- "mime-type"
+ "inflection",
+ "pluralize",
+ "singularize",
+ "string",
+ "symfony",
+ "words"
],
- "time": "2019-09-19T17:00:15+00:00"
+ "time": "2019-11-05T19:58:22+00:00"
},
{
- "name": "symfony/orm-pack",
- "version": "v1.0.7",
+ "name": "symfony/intl",
+ "version": "v4.3.8",
"source": {
"type": "git",
- "url": "https://github.com/symfony/orm-pack.git",
- "reference": "c57f5e05232ca40626eb9fa52a32bc8565e9231c"
+ "url": "https://github.com/symfony/intl.git",
+ "reference": "818771ff6acef04cdce05023ddfc39b7078014bf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/orm-pack/zipball/c57f5e05232ca40626eb9fa52a32bc8565e9231c",
- "reference": "c57f5e05232ca40626eb9fa52a32bc8565e9231c",
+ "url": "https://api.github.com/repos/symfony/intl/zipball/818771ff6acef04cdce05023ddfc39b7078014bf",
+ "reference": "818771ff6acef04cdce05023ddfc39b7078014bf",
"shasum": ""
},
"require": {
- "doctrine/doctrine-bundle": "^1.6.10|^2.0",
- "doctrine/doctrine-migrations-bundle": "^1.3|^2.0",
- "doctrine/orm": "^2.5.11",
- "php": "^7.0"
- },
- "type": "symfony-pack",
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "A pack for the Doctrine ORM",
- "time": "2019-10-18T05:41:09+00:00"
- },
- {
- "name": "symfony/polyfill-intl-idn",
- "version": "v1.12.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "6af626ae6fa37d396dc90a399c0ff08e5cfc45b2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6af626ae6fa37d396dc90a399c0ff08e5cfc45b2",
- "reference": "6af626ae6fa37d396dc90a399c0ff08e5cfc45b2",
- "shasum": ""
+ "php": "^7.1.3",
+ "symfony/polyfill-intl-icu": "~1.0"
},
- "require": {
- "php": ">=5.3.3",
- "symfony/polyfill-mbstring": "^1.3",
- "symfony/polyfill-php72": "^1.9"
+ "require-dev": {
+ "symfony/filesystem": "~3.4|~4.0"
},
"suggest": {
- "ext-intl": "For best performance"
+ "ext-intl": "to use the component with locales other than \"en\""
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.12-dev"
+ "dev-master": "4.3-dev"
}
},
"autoload": {
"psr-4": {
- "Symfony\\Polyfill\\Intl\\Idn\\": ""
+ "Symfony\\Component\\Intl\\": ""
},
- "files": [
- "bootstrap.php"
+ "classmap": [
+ "Resources/stubs"
+ ],
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -2803,19 +3067,288 @@
],
"authors": [
{
- "name": "Laurent Bassin",
- "email": "laurent@bassin.info"
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ },
+ {
+ "name": "Eriksen Costa",
+ "email": "eriksen.costa@infranology.com.br"
+ },
+ {
+ "name": "Igor Wiedler",
+ "email": "igor@wiedler.ch"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
+ "description": "A PHP replacement layer for the C intl extension that includes additional data from the ICU library.",
"homepage": "https://symfony.com",
"keywords": [
- "compatibility",
- "idn",
+ "i18n",
+ "icu",
+ "internationalization",
+ "intl",
+ "l10n",
+ "localization"
+ ],
+ "time": "2019-10-04T21:18:34+00:00"
+ },
+ {
+ "name": "symfony/mime",
+ "version": "v4.3.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mime.git",
+ "reference": "32f71570547b91879fdbd9cf50317d556ae86916"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/32f71570547b91879fdbd9cf50317d556ae86916",
+ "reference": "32f71570547b91879fdbd9cf50317d556ae86916",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3",
+ "symfony/polyfill-intl-idn": "^1.10",
+ "symfony/polyfill-mbstring": "^1.0"
+ },
+ "require-dev": {
+ "egulias/email-validator": "^2.1.10",
+ "symfony/dependency-injection": "~3.4|^4.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Mime\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "A library to manipulate MIME messages",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "mime",
+ "mime-type"
+ ],
+ "time": "2019-09-19T17:00:15+00:00"
+ },
+ {
+ "name": "symfony/options-resolver",
+ "version": "v4.3.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/options-resolver.git",
+ "reference": "f46c7fc8e207bd8a2188f54f8738f232533765a4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/f46c7fc8e207bd8a2188f54f8738f232533765a4",
+ "reference": "f46c7fc8e207bd8a2188f54f8738f232533765a4",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\OptionsResolver\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony OptionsResolver Component",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "config",
+ "configuration",
+ "options"
+ ],
+ "time": "2019-10-28T20:59:01+00:00"
+ },
+ {
+ "name": "symfony/orm-pack",
+ "version": "v1.0.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/orm-pack.git",
+ "reference": "c57f5e05232ca40626eb9fa52a32bc8565e9231c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/orm-pack/zipball/c57f5e05232ca40626eb9fa52a32bc8565e9231c",
+ "reference": "c57f5e05232ca40626eb9fa52a32bc8565e9231c",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/doctrine-bundle": "^1.6.10|^2.0",
+ "doctrine/doctrine-migrations-bundle": "^1.3|^2.0",
+ "doctrine/orm": "^2.5.11",
+ "php": "^7.0"
+ },
+ "type": "symfony-pack",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A pack for the Doctrine ORM",
+ "time": "2019-10-18T05:41:09+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-icu",
+ "version": "v1.12.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-icu.git",
+ "reference": "66810b9d6eb4af54d543867909d65ab9af654d7e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/66810b9d6eb4af54d543867909d65ab9af654d7e",
+ "reference": "66810b9d6eb4af54d543867909d65ab9af654d7e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "symfony/intl": "~2.3|~3.0|~4.0|~5.0"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.12-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's ICU-related data and classes",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "icu",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "time": "2019-08-06T08:03:45+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-idn",
+ "version": "v1.12.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-idn.git",
+ "reference": "6af626ae6fa37d396dc90a399c0ff08e5cfc45b2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6af626ae6fa37d396dc90a399c0ff08e5cfc45b2",
+ "reference": "6af626ae6fa37d396dc90a399c0ff08e5cfc45b2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "symfony/polyfill-mbstring": "^1.3",
+ "symfony/polyfill-php72": "^1.9"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.12-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Idn\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Laurent Bassin",
+ "email": "laurent@bassin.info"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "idn",
"intl",
"polyfill",
"portable",
@@ -2996,34 +3529,101 @@
"time": "2019-08-06T08:03:45+00:00"
},
{
- "name": "symfony/routing",
- "version": "v4.3.5",
+ "name": "symfony/property-access",
+ "version": "v4.3.8",
"source": {
"type": "git",
- "url": "https://github.com/symfony/routing.git",
- "reference": "3b174ef04fe66696524efad1e5f7a6c663d822ea"
+ "url": "https://github.com/symfony/property-access.git",
+ "reference": "bb0c302375ffeef60c31e72a4539611b7f787565"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/3b174ef04fe66696524efad1e5f7a6c663d822ea",
- "reference": "3b174ef04fe66696524efad1e5f7a6c663d822ea",
+ "url": "https://api.github.com/repos/symfony/property-access/zipball/bb0c302375ffeef60c31e72a4539611b7f787565",
+ "reference": "bb0c302375ffeef60c31e72a4539611b7f787565",
"shasum": ""
},
"require": {
- "php": "^7.1.3"
- },
- "conflict": {
- "symfony/config": "<4.2",
- "symfony/dependency-injection": "<3.4",
- "symfony/yaml": "<3.4"
+ "php": "^7.1.3",
+ "symfony/inflector": "~3.4|~4.0"
},
"require-dev": {
- "doctrine/annotations": "~1.2",
- "psr/log": "~1.0",
- "symfony/config": "~4.2",
- "symfony/dependency-injection": "~3.4|~4.0",
- "symfony/expression-language": "~3.4|~4.0",
- "symfony/http-foundation": "~3.4|~4.0",
+ "symfony/cache": "~3.4|~4.0"
+ },
+ "suggest": {
+ "psr/cache-implementation": "To cache access methods."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\PropertyAccess\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony PropertyAccess Component",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "access",
+ "array",
+ "extraction",
+ "index",
+ "injection",
+ "object",
+ "property",
+ "property path",
+ "reflection"
+ ],
+ "time": "2019-08-26T08:26:39+00:00"
+ },
+ {
+ "name": "symfony/routing",
+ "version": "v4.3.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/routing.git",
+ "reference": "3b174ef04fe66696524efad1e5f7a6c663d822ea"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/3b174ef04fe66696524efad1e5f7a6c663d822ea",
+ "reference": "3b174ef04fe66696524efad1e5f7a6c663d822ea",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3"
+ },
+ "conflict": {
+ "symfony/config": "<4.2",
+ "symfony/dependency-injection": "<3.4",
+ "symfony/yaml": "<3.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "~1.2",
+ "psr/log": "~1.0",
+ "symfony/config": "~4.2",
+ "symfony/dependency-injection": "~3.4|~4.0",
+ "symfony/expression-language": "~3.4|~4.0",
+ "symfony/http-foundation": "~3.4|~4.0",
"symfony/yaml": "~3.4|~4.0"
},
"suggest": {
@@ -3071,6 +3671,340 @@
],
"time": "2019-10-04T20:57:10+00:00"
},
+ {
+ "name": "symfony/security-bundle",
+ "version": "v4.3.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/security-bundle.git",
+ "reference": "9f247c672e08385c67e3ca7cfc1484072bcc6517"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/security-bundle/zipball/9f247c672e08385c67e3ca7cfc1484072bcc6517",
+ "reference": "9f247c672e08385c67e3ca7cfc1484072bcc6517",
+ "shasum": ""
+ },
+ "require": {
+ "ext-xml": "*",
+ "php": "^7.1.3",
+ "symfony/config": "^4.2",
+ "symfony/dependency-injection": "^4.2",
+ "symfony/http-kernel": "^4.3",
+ "symfony/security-core": "~4.3",
+ "symfony/security-csrf": "~4.2",
+ "symfony/security-guard": "~4.2",
+ "symfony/security-http": "^4.3.8"
+ },
+ "conflict": {
+ "symfony/browser-kit": "<4.2",
+ "symfony/console": "<3.4",
+ "symfony/framework-bundle": "<4.3.4",
+ "symfony/twig-bundle": "<4.2",
+ "symfony/var-dumper": "<3.4"
+ },
+ "require-dev": {
+ "doctrine/doctrine-bundle": "~1.5",
+ "symfony/asset": "~3.4|~4.0",
+ "symfony/browser-kit": "~4.2",
+ "symfony/console": "~3.4|~4.0",
+ "symfony/css-selector": "~3.4|~4.0",
+ "symfony/dom-crawler": "~3.4|~4.0",
+ "symfony/expression-language": "~3.4|~4.0",
+ "symfony/form": "~3.4|~4.0",
+ "symfony/framework-bundle": "^4.3.4",
+ "symfony/http-foundation": "~3.4|~4.0",
+ "symfony/process": "~3.4|~4.0",
+ "symfony/translation": "~3.4|~4.0",
+ "symfony/twig-bridge": "~3.4|~4.0",
+ "symfony/twig-bundle": "~4.2",
+ "symfony/validator": "~3.4|~4.0",
+ "symfony/var-dumper": "~3.4|~4.0",
+ "symfony/yaml": "~3.4|~4.0",
+ "twig/twig": "~1.41|~2.10"
+ },
+ "type": "symfony-bundle",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bundle\\SecurityBundle\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony SecurityBundle",
+ "homepage": "https://symfony.com",
+ "time": "2019-11-12T13:12:56+00:00"
+ },
+ {
+ "name": "symfony/security-core",
+ "version": "v4.3.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/security-core.git",
+ "reference": "8c46ea77fe0738f2495eacc08fa34e1e19ff0b0d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/security-core/zipball/8c46ea77fe0738f2495eacc08fa34e1e19ff0b0d",
+ "reference": "8c46ea77fe0738f2495eacc08fa34e1e19ff0b0d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3",
+ "symfony/event-dispatcher-contracts": "^1.1",
+ "symfony/service-contracts": "^1.1"
+ },
+ "conflict": {
+ "symfony/event-dispatcher": "<4.3",
+ "symfony/security-guard": "<4.3"
+ },
+ "require-dev": {
+ "psr/container": "^1.0",
+ "psr/log": "~1.0",
+ "symfony/event-dispatcher": "^4.3",
+ "symfony/expression-language": "~3.4|~4.0",
+ "symfony/http-foundation": "~3.4|~4.0",
+ "symfony/ldap": "~3.4|~4.0",
+ "symfony/validator": "^3.4.31|^4.3.4"
+ },
+ "suggest": {
+ "psr/container-implementation": "To instantiate the Security class",
+ "symfony/event-dispatcher": "",
+ "symfony/expression-language": "For using the expression voter",
+ "symfony/http-foundation": "",
+ "symfony/ldap": "For using LDAP integration",
+ "symfony/validator": "For using the user password constraint"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Security\\Core\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Security Component - Core Library",
+ "homepage": "https://symfony.com",
+ "time": "2019-10-28T17:07:32+00:00"
+ },
+ {
+ "name": "symfony/security-csrf",
+ "version": "v4.3.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/security-csrf.git",
+ "reference": "0760ec651ea8ff81e22097780337e43f3a795769"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/security-csrf/zipball/0760ec651ea8ff81e22097780337e43f3a795769",
+ "reference": "0760ec651ea8ff81e22097780337e43f3a795769",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3",
+ "symfony/security-core": "~3.4|~4.0"
+ },
+ "conflict": {
+ "symfony/http-foundation": "<3.4"
+ },
+ "require-dev": {
+ "symfony/http-foundation": "~3.4|~4.0"
+ },
+ "suggest": {
+ "symfony/http-foundation": "For using the class SessionTokenStorage."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Security\\Csrf\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Security Component - CSRF Library",
+ "homepage": "https://symfony.com",
+ "time": "2019-09-24T15:54:14+00:00"
+ },
+ {
+ "name": "symfony/security-guard",
+ "version": "v4.3.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/security-guard.git",
+ "reference": "62cc82a384f2c1c75c58189fcf713032f6fef1e9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/security-guard/zipball/62cc82a384f2c1c75c58189fcf713032f6fef1e9",
+ "reference": "62cc82a384f2c1c75c58189fcf713032f6fef1e9",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3",
+ "symfony/security-core": "~3.4.22|^4.2.3",
+ "symfony/security-http": "^4.3"
+ },
+ "require-dev": {
+ "psr/log": "~1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Security\\Guard\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Security Component - Guard",
+ "homepage": "https://symfony.com",
+ "time": "2019-10-28T17:07:32+00:00"
+ },
+ {
+ "name": "symfony/security-http",
+ "version": "v4.3.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/security-http.git",
+ "reference": "290b23a46a932746c4cf3c313d59d99f82af2a87"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/security-http/zipball/290b23a46a932746c4cf3c313d59d99f82af2a87",
+ "reference": "290b23a46a932746c4cf3c313d59d99f82af2a87",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3",
+ "symfony/http-foundation": "~3.4|~4.0",
+ "symfony/http-kernel": "^4.3",
+ "symfony/property-access": "~3.4|~4.0",
+ "symfony/security-core": "^4.3"
+ },
+ "conflict": {
+ "symfony/security-csrf": "<3.4.11|~4.0,<4.0.11"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/routing": "~3.4|~4.0",
+ "symfony/security-csrf": "^3.4.11|^4.0.11"
+ },
+ "suggest": {
+ "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs",
+ "symfony/security-csrf": "For using tokens to protect authentication/logout attempts"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Security\\Http\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Security Component - HTTP Integration",
+ "homepage": "https://symfony.com",
+ "time": "2019-11-12T13:12:56+00:00"
+ },
{
"name": "symfony/service-contracts",
"version": "v1.1.7",
@@ -3095,13 +4029,71 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1-dev"
+ "dev-master": "1.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Service\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to writing services",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "time": "2019-09-17T11:12:18+00:00"
+ },
+ {
+ "name": "symfony/stopwatch",
+ "version": "v4.3.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/stopwatch.git",
+ "reference": "1e4ff456bd625be5032fac9be4294e60442e9b71"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/1e4ff456bd625be5032fac9be4294e60442e9b71",
+ "reference": "1e4ff456bd625be5032fac9be4294e60442e9b71",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3",
+ "symfony/service-contracts": "^1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.3-dev"
}
},
"autoload": {
"psr-4": {
- "Symfony\\Contracts\\Service\\": ""
- }
+ "Symfony\\Component\\Stopwatch\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -3109,43 +4101,61 @@
],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Generic abstractions related to writing services",
+ "description": "Symfony Stopwatch Component",
"homepage": "https://symfony.com",
- "keywords": [
- "abstractions",
- "contracts",
- "decoupling",
- "interfaces",
- "interoperability",
- "standards"
- ],
- "time": "2019-09-17T11:12:18+00:00"
+ "time": "2019-08-07T11:52:19+00:00"
},
{
- "name": "symfony/stopwatch",
- "version": "v4.3.5",
+ "name": "symfony/translation",
+ "version": "v4.3.8",
"source": {
"type": "git",
- "url": "https://github.com/symfony/stopwatch.git",
- "reference": "1e4ff456bd625be5032fac9be4294e60442e9b71"
+ "url": "https://github.com/symfony/translation.git",
+ "reference": "bbce239b35b0cd47bd75848b23e969f17dd970e7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/stopwatch/zipball/1e4ff456bd625be5032fac9be4294e60442e9b71",
- "reference": "1e4ff456bd625be5032fac9be4294e60442e9b71",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/bbce239b35b0cd47bd75848b23e969f17dd970e7",
+ "reference": "bbce239b35b0cd47bd75848b23e969f17dd970e7",
"shasum": ""
},
"require": {
"php": "^7.1.3",
- "symfony/service-contracts": "^1.0"
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/translation-contracts": "^1.1.6"
+ },
+ "conflict": {
+ "symfony/config": "<3.4",
+ "symfony/dependency-injection": "<3.4",
+ "symfony/yaml": "<3.4"
+ },
+ "provide": {
+ "symfony/translation-implementation": "1.0"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/config": "~3.4|~4.0",
+ "symfony/console": "~3.4|~4.0",
+ "symfony/dependency-injection": "~3.4|~4.0",
+ "symfony/finder": "~2.8|~3.0|~4.0",
+ "symfony/http-kernel": "~3.4|~4.0",
+ "symfony/intl": "~3.4|~4.0",
+ "symfony/service-contracts": "^1.1.2",
+ "symfony/var-dumper": "~3.4|~4.0",
+ "symfony/yaml": "~3.4|~4.0"
+ },
+ "suggest": {
+ "psr/log-implementation": "To use logging capability in translator",
+ "symfony/config": "",
+ "symfony/yaml": ""
},
"type": "library",
"extra": {
@@ -3155,7 +4165,7 @@
},
"autoload": {
"psr-4": {
- "Symfony\\Component\\Stopwatch\\": ""
+ "Symfony\\Component\\Translation\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -3175,9 +4185,9 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony Stopwatch Component",
+ "description": "Symfony Translation Component",
"homepage": "https://symfony.com",
- "time": "2019-08-07T11:52:19+00:00"
+ "time": "2019-11-06T23:21:49+00:00"
},
{
"name": "symfony/translation-contracts",
@@ -3442,6 +4452,99 @@
"description": "A Twig pack for Symfony projects",
"time": "2019-10-17T05:44:22+00:00"
},
+ {
+ "name": "symfony/validator",
+ "version": "v4.3.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/validator.git",
+ "reference": "8062841487a1a7d95f4c7cc359e674079daf4c48"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/validator/zipball/8062841487a1a7d95f4c7cc359e674079daf4c48",
+ "reference": "8062841487a1a7d95f4c7cc359e674079daf4c48",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/translation-contracts": "^1.1"
+ },
+ "conflict": {
+ "doctrine/lexer": "<1.0.2",
+ "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
+ "symfony/dependency-injection": "<3.4",
+ "symfony/http-kernel": "<3.4",
+ "symfony/intl": "<4.3",
+ "symfony/translation": "<4.2",
+ "symfony/yaml": "<3.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "~1.7",
+ "doctrine/cache": "~1.0",
+ "egulias/email-validator": "^2.1.10",
+ "symfony/cache": "~3.4|~4.0",
+ "symfony/config": "~3.4|~4.0",
+ "symfony/dependency-injection": "~3.4|~4.0",
+ "symfony/expression-language": "~3.4|~4.0",
+ "symfony/http-client": "^4.3",
+ "symfony/http-foundation": "~4.1",
+ "symfony/http-kernel": "~3.4|~4.0",
+ "symfony/intl": "^4.3",
+ "symfony/property-access": "~3.4|~4.0",
+ "symfony/property-info": "~3.4|~4.0",
+ "symfony/translation": "~4.2",
+ "symfony/var-dumper": "~3.4|~4.0",
+ "symfony/yaml": "~3.4|~4.0"
+ },
+ "suggest": {
+ "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.",
+ "doctrine/cache": "For using the default cached annotation reader and metadata cache.",
+ "egulias/email-validator": "Strict (RFC compliant) email validation",
+ "psr/cache-implementation": "For using the metadata cache.",
+ "symfony/config": "",
+ "symfony/expression-language": "For using the Expression validator",
+ "symfony/http-foundation": "",
+ "symfony/intl": "",
+ "symfony/property-access": "For accessing properties within comparison constraints",
+ "symfony/property-info": "To automatically add NotNull and Type constraints",
+ "symfony/translation": "For translating validation errors.",
+ "symfony/yaml": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Validator\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Validator Component",
+ "homepage": "https://symfony.com",
+ "time": "2019-11-08T08:31:27+00:00"
+ },
{
"name": "symfony/var-exporter",
"version": "v4.3.5",
@@ -4019,6 +5122,176 @@
"scaffolding"
],
"time": "2019-10-18T01:41:52+00:00"
+ },
+ {
+ "name": "symfony/profiler-pack",
+ "version": "v1.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/profiler-pack.git",
+ "reference": "99c4370632c2a59bb0444852f92140074ef02209"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/profiler-pack/zipball/99c4370632c2a59bb0444852f92140074ef02209",
+ "reference": "99c4370632c2a59bb0444852f92140074ef02209",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0",
+ "symfony/stopwatch": "*",
+ "symfony/twig-bundle": "*",
+ "symfony/web-profiler-bundle": "*"
+ },
+ "type": "symfony-pack",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A pack for the Symfony web profiler",
+ "time": "2018-12-10T12:11:44+00:00"
+ },
+ {
+ "name": "symfony/var-dumper",
+ "version": "v4.3.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/var-dumper.git",
+ "reference": "ea4940845535c85ff5c505e13b3205b0076d07bf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ea4940845535c85ff5c505e13b3205b0076d07bf",
+ "reference": "ea4940845535c85ff5c505e13b3205b0076d07bf",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php72": "~1.5"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
+ "symfony/console": "<3.4"
+ },
+ "require-dev": {
+ "ext-iconv": "*",
+ "symfony/console": "~3.4|~4.0",
+ "symfony/process": "~3.4|~4.0",
+ "twig/twig": "~1.34|~2.4"
+ },
+ "suggest": {
+ "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
+ "ext-intl": "To show region name in time zone dump",
+ "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
+ },
+ "bin": [
+ "Resources/bin/var-dump-server"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.3-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "Resources/functions/dump.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\VarDumper\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony mechanism for exploring and dumping PHP variables",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "debug",
+ "dump"
+ ],
+ "time": "2019-10-13T12:02:04+00:00"
+ },
+ {
+ "name": "symfony/web-profiler-bundle",
+ "version": "v4.3.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/web-profiler-bundle.git",
+ "reference": "6ce12ffe97d9e26091b0e7340a9d661fba64655e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/6ce12ffe97d9e26091b0e7340a9d661fba64655e",
+ "reference": "6ce12ffe97d9e26091b0e7340a9d661fba64655e",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1.3",
+ "symfony/config": "^4.2",
+ "symfony/http-kernel": "^4.3",
+ "symfony/routing": "~3.4|~4.0",
+ "symfony/twig-bundle": "~4.2",
+ "symfony/var-dumper": "~3.4|~4.0",
+ "twig/twig": "^1.41|^2.10"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<3.4",
+ "symfony/form": "<4.3",
+ "symfony/messenger": "<4.2",
+ "symfony/var-dumper": "<3.4"
+ },
+ "require-dev": {
+ "symfony/console": "~3.4|~4.0",
+ "symfony/dependency-injection": "~3.4|~4.0",
+ "symfony/stopwatch": "~3.4|~4.0"
+ },
+ "type": "symfony-bundle",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bundle\\WebProfilerBundle\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony WebProfilerBundle",
+ "homepage": "https://symfony.com",
+ "time": "2019-10-23T17:52:52+00:00"
}
],
"aliases": [],
diff --git a/config/bundles.php b/config/bundles.php
index 7b4814201..5a16e526f 100644
--- a/config/bundles.php
+++ b/config/bundles.php
@@ -9,4 +9,7 @@
Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true],
Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true],
Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true],
+ Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true],
+ Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
+ EasyCorp\Bundle\EasyAdminBundle\EasyAdminBundle::class => ['all' => true],
];
diff --git a/config/packages/dev/web_profiler.yaml b/config/packages/dev/web_profiler.yaml
new file mode 100644
index 000000000..e92166a7f
--- /dev/null
+++ b/config/packages/dev/web_profiler.yaml
@@ -0,0 +1,6 @@
+web_profiler:
+ toolbar: true
+ intercept_redirects: false
+
+framework:
+ profiler: { only_exceptions: false }
diff --git a/config/packages/easy_admin.yaml b/config/packages/easy_admin.yaml
new file mode 100644
index 000000000..92c039863
--- /dev/null
+++ b/config/packages/easy_admin.yaml
@@ -0,0 +1,24 @@
+easy_admin:
+ entities:
+ # List the entity class name you want to manage
+# - App\Entity\Product
+# - App\Entity\Category
+ User:
+ class: App\Entity\User
+ list: # <-- 'form' is applied to both 'new' and 'edit' views
+ fields:
+ - 'username'
+ - { property: 'roles', template: 'admin/user/roles-type-read.html.twig' }
+ - { property: 'homepage', type: 'url' }
+ - { property: 'linkedin', type: 'url' }
+ - { property: 'password', template: 'admin/user/password-read.html.twig' }
+ form:
+ fields:
+ - { property: 'email', type: 'email' }
+ - { property: 'roles', type: 'collection' }
+ - { property: 'plainPassword', type: 'password' }
+ - { property: 'homepage', type: 'url' }
+ - { property: 'linkedin', type: 'url' }
+
+ user:
+ name_property_path: "email"
\ No newline at end of file
diff --git a/config/packages/security.yaml b/config/packages/security.yaml
new file mode 100644
index 000000000..2986628c4
--- /dev/null
+++ b/config/packages/security.yaml
@@ -0,0 +1,37 @@
+security:
+ encoders:
+ App\Entity\User:
+ algorithm: argon2i
+
+ # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
+ providers:
+ # used to reload user from session & other features (e.g. switch_user)
+ app_user_provider:
+ entity:
+ class: App\Entity\User
+ property: email
+ firewalls:
+ dev:
+ pattern: ^/(_(profiler|wdt)|css|images|js)/
+ security: false
+ main:
+ anonymous: true
+ guard:
+ authenticators:
+ - App\Security\AppCustomAuthenticator
+ logout:
+ path: app_logout
+ # where to redirect after logout
+ # target: app_any_route
+
+ # activate different ways to authenticate
+ # https://symfony.com/doc/current/security.html#firewalls-authentication
+
+ # https://symfony.com/doc/current/security/impersonating_user.html
+ # switch_user: true
+
+ # Easy way to control access for large sections of your site
+ # Note: Only the *first* access control that matches will be used
+ access_control:
+ - { path: ^/admin, roles: ROLE_ADMIN }
+ # - { path: ^/profile, roles: ROLE_USER }
diff --git a/config/packages/test/validator.yaml b/config/packages/test/validator.yaml
new file mode 100644
index 000000000..1e5ab7880
--- /dev/null
+++ b/config/packages/test/validator.yaml
@@ -0,0 +1,3 @@
+framework:
+ validation:
+ not_compromised_password: false
diff --git a/config/packages/test/web_profiler.yaml b/config/packages/test/web_profiler.yaml
new file mode 100644
index 000000000..03752de21
--- /dev/null
+++ b/config/packages/test/web_profiler.yaml
@@ -0,0 +1,6 @@
+web_profiler:
+ toolbar: false
+ intercept_redirects: false
+
+framework:
+ profiler: { collect: false }
diff --git a/config/packages/translation.yaml b/config/packages/translation.yaml
new file mode 100644
index 000000000..05a2b3d82
--- /dev/null
+++ b/config/packages/translation.yaml
@@ -0,0 +1,6 @@
+framework:
+ default_locale: en
+ translator:
+ default_path: '%kernel.project_dir%/translations'
+ fallbacks:
+ - en
diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml
index d1582a23d..724f2be69 100644
--- a/config/packages/twig.yaml
+++ b/config/packages/twig.yaml
@@ -2,3 +2,4 @@ twig:
default_path: '%kernel.project_dir%/templates'
debug: '%kernel.debug%'
strict_variables: '%kernel.debug%'
+ form_themes: ['bootstrap_4_horizontal_layout.html.twig']
diff --git a/config/packages/validator.yaml b/config/packages/validator.yaml
new file mode 100644
index 000000000..350786a13
--- /dev/null
+++ b/config/packages/validator.yaml
@@ -0,0 +1,8 @@
+framework:
+ validation:
+ email_validation_mode: html5
+
+ # Enables validator auto-mapping support.
+ # For instance, basic validation constraints will be inferred from Doctrine's metadata.
+ #auto_mapping:
+ # App\Entity\: []
diff --git a/config/routes/dev/web_profiler.yaml b/config/routes/dev/web_profiler.yaml
new file mode 100644
index 000000000..c82beff2f
--- /dev/null
+++ b/config/routes/dev/web_profiler.yaml
@@ -0,0 +1,7 @@
+web_profiler_wdt:
+ resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml'
+ prefix: /_wdt
+
+web_profiler_profiler:
+ resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml'
+ prefix: /_profiler
diff --git a/config/routes/easy_admin.yaml b/config/routes/easy_admin.yaml
new file mode 100644
index 000000000..c62135cdd
--- /dev/null
+++ b/config/routes/easy_admin.yaml
@@ -0,0 +1,4 @@
+easy_admin_bundle:
+ resource: '@EasyAdminBundle/Controller/EasyAdminController.php'
+ prefix: /admin
+ type: annotation
diff --git a/config/services.yaml b/config/services.yaml
index 5c4b41757..e399a9940 100644
--- a/config/services.yaml
+++ b/config/services.yaml
@@ -25,3 +25,9 @@ services:
# add more service definitions when explicit configuration is needed
# please note that last definitions always *replace* previous ones
+
+ my.easy_admin.pre_edit.subscrubier:
+ class: App\EventSubscriber\EasyAdminSubscriber
+ autowire: true
+ tags:
+ - { name: kernel.event_subscriber }
\ No newline at end of file
diff --git a/src/Command/PromoteUserCommand.php b/src/Command/PromoteUserCommand.php
new file mode 100644
index 000000000..404ccfbad
--- /dev/null
+++ b/src/Command/PromoteUserCommand.php
@@ -0,0 +1,89 @@
+entityManager = $entityManager;
+ $this->adminRole = $adminRole;
+
+ parent::__construct();
+ }
+
+ protected function configure()
+ {
+ $this
+ ->setDescription('Make user admin')
+ ->addArgument('email', InputArgument::REQUIRED, 'E-mail address of existing user');
+ }
+
+ /**
+ * @throws \Doctrine\ORM\NonUniqueResultException
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ // Parsing input
+ $io = new SymfonyStyle($input, $output);
+ $email = $input->getArgument('email');
+
+ // Getting user
+ $this->info("Searching for user", $email, $io);
+ $user = $this->entityManager->getRepository(User::class)->findByEmail($email);
+ if (!$user) {
+ $io->error("Cannot find user by e-mail: " . $email);
+ return;
+ }
+
+ if (in_array($this->adminRole, $user->getRoles())) {
+ $this->printUserRoles($user, $io);
+ $io->success('Admin role already exists');
+ return;
+ }
+
+ // Adding admin role
+ $this->info("Adding role: ", $this->adminRole, $io);
+ $roles = $user->getRoles();
+ $roles[] = $this->adminRole;
+ $user->setRoles(array_unique($roles));
+
+ // Storing user
+ $this->entityManager->persist($user);
+ $this->entityManager->flush();
+
+ $this->printUserRoles($user, $output);
+ $io->success('Admin role successfully added');
+ }
+
+ private function info($message, $value, OutputInterface $io)
+ {
+ $io->writeln(sprintf('
{{ 'user.logged_in_as'|trans(domain = 'EasyAdminBundle') }}
++ {% if app.user|default(false) == false %} + {{ 'user.anonymous'|trans(domain = 'EasyAdminBundle') }} + {% else %} + {{ _user_name }} + {% endif %} +
+