From 48fcfb9919aa5696db4effad02a5b2be7aabdb82 Mon Sep 17 00:00:00 2001 From: afornerot Date: Tue, 12 Jan 2021 12:03:02 +0100 Subject: [PATCH] cadolesAD --- dicos/91_ninegate.xml | 24 +- src/ninegate-1.0/composer.json | 4 +- src/ninegate-1.0/composer.lock | 1631 ++++++++++++----- .../scripts/ninegate-postservice-00.sh | 2 - .../CoreBundle/Command/SynchroCommand.php | 59 +- .../src/Cadoles/CoreBundle/Entity/Group.php | 29 + .../CoreBundle/Entity/Registration.php | 44 +- .../src/Cadoles/CoreBundle/Entity/User.php | 46 +- .../CoreBundle/EventListener/syncGroup.php | 1 + .../CoreBundle/EventListener/syncUser.php | 12 +- .../src/Cadoles/CoreBundle/Form/GroupType.php | 9 + .../CoreBundle/Resources/config/services.yml | 2 + .../Resources/views/Group/edit.html.twig | 1 + .../CoreBundle/Service/ldapService.php | 119 +- tmpl/ninegate-template.yml | 9 + 15 files changed, 1411 insertions(+), 581 deletions(-) diff --git a/dicos/91_ninegate.xml b/dicos/91_ninegate.xml index 63ef8fc3..6dbfe655 100644 --- a/dicos/91_ninegate.xml +++ b/dicos/91_ninegate.xml @@ -86,17 +86,20 @@ oui user_groups + non + non scribe oui - oui + oui (uid=*) oui (objectClass=posixGroup) + LDAP niveau01 @@ -433,7 +436,9 @@ ninegate_ssosynchrogroup ninegate_ssoreqgroup - + ninegate_ssosynchroitem + ninegate_ssoreqitem + ninegate_syncldap ninegate_ldaptemplate ninegate_scribegroup @@ -444,6 +449,7 @@ ninegate_openldapsubbranchgroup ninegate_openldapsubbranchuser + ninegate_ldaptype ninegate_pwdadmin ninegate_organization ninegate_niveau01branche @@ -528,11 +534,14 @@ ninegate_ssosynchrogroup ninegate_ssoreqgroup + ninegate_ssosynchroitem + ninegate_ssoreqitem non + ninegate_ldaptype ninegate_pwdadmin ninegate_niveau01name ninegate_niveau01siren @@ -595,6 +604,13 @@ ninegate_ssoreqgroup + + + non + + ninegate_ssoreqitem + + cadolesldap_pwdadmin @@ -1518,6 +1534,10 @@ ['scribe', 'open', 'CadolesLDAP'] + + ['LDAP', 'AD'] + + ['tls', 'ssl', 'null'] diff --git a/src/ninegate-1.0/composer.json b/src/ninegate-1.0/composer.json index 3ec222a9..da463a36 100644 --- a/src/ninegate-1.0/composer.json +++ b/src/ninegate-1.0/composer.json @@ -33,7 +33,7 @@ "sensio/framework-extra-bundle": "^5.0.0", "symfony/assetic-bundle": "^2.8", "symfony/ldap": "^3.4", - "symfony/monolog-bundle": "^3.1.0", + "symfony/monolog-bundle": "3.4.*", "symfony/orm-pack": "^1.0", "symfony/polyfill-apcu": "^1.0", "symfony/swiftmailer-bundle": "^2.6.4", @@ -66,7 +66,7 @@ }, "config": { "platform": { - "php": "7.0.30" + "php": "7.2" }, "sort-packages": true }, diff --git a/src/ninegate-1.0/composer.lock b/src/ninegate-1.0/composer.lock index b0ce950f..c71e720f 100644 --- a/src/ninegate-1.0/composer.lock +++ b/src/ninegate-1.0/composer.lock @@ -4,8 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "e008822a96a469e24963e22d66f34c98", - "content-hash": "589f314a10ca56596cf580254885bd7c", + "content-hash": "83a9e2bee30ea6c8c4a1e3622b0f12dc", "packages": [ { "name": "cboden/ratchet", @@ -58,91 +57,35 @@ "sockets", "websocket" ], - "time": "2017-12-12 00:49:31" - }, - { - "name": "composer/ca-bundle", - "version": "1.2.4", - "source": { - "type": "git", - "url": "https://github.com/composer/ca-bundle.git", - "reference": "10bb96592168a0f8e8f6dcde3532d9fa50b0b527" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/10bb96592168a0f8e8f6dcde3532d9fa50b0b527", - "reference": "10bb96592168a0f8e8f6dcde3532d9fa50b0b527", - "shasum": "" - }, - "require": { - "ext-openssl": "*", - "ext-pcre": "*", - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8", - "psr/log": "^1.0", - "symfony/process": "^2.5 || ^3.0 || ^4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\CaBundle\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", - "keywords": [ - "cabundle", - "cacert", - "certificate", - "ssl", - "tls" - ], - "time": "2019-08-30 08:44:50" + "time": "2017-12-12T00:49:31+00:00" }, { "name": "debril/feed-io", - "version": "v3.1.5", + "version": "v4.4.1", "source": { "type": "git", "url": "https://github.com/alexdebril/feed-io.git", - "reference": "a8ae664c948f0ca926150cc4597f343af797b4b0" + "reference": "bba403f15f65f274713c61e765dd8bad79c96a0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/alexdebril/feed-io/zipball/a8ae664c948f0ca926150cc4597f343af797b4b0", - "reference": "a8ae664c948f0ca926150cc4597f343af797b4b0", + "url": "https://api.github.com/repos/alexdebril/feed-io/zipball/bba403f15f65f274713c61e765dd8bad79c96a0a", + "reference": "bba403f15f65f274713c61e765dd8bad79c96a0a", "shasum": "" }, "require": { "guzzlehttp/guzzle": "~6.2", - "php": ">=5.6.0", - "psr/log": "~1.0" + "php": ">=7.1", + "psr/log": "~1.0", + "symfony/console": "~3.4|~4.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^2.4", "monolog/monolog": "1.*", - "phpunit/phpunit": "~5.6.0" + "phpunit/phpunit": "~7.5.0" }, "suggest": { - "monolog/monolog": "Allows to handle logs", - "symfony/console": "Allows to use the command line interface" + "monolog/monolog": "Allows to handle logs" }, "bin": [ "bin/feedio" @@ -174,39 +117,39 @@ "news", "rss" ], - "time": "2019-04-12 11:48:51" + "time": "2019-11-13T10:31:19+00:00" }, { "name": "debril/rss-atom-bundle", - "version": "v4.1.1", + "version": "v4.3.0", "target-dir": "Debril/RssAtomBundle", "source": { "type": "git", "url": "https://github.com/alexdebril/rss-atom-bundle.git", - "reference": "49bcc3e5f2baef47374bf07c7535dc4aca6573ef" + "reference": "5c0ef9b1f6a9ca058904c2adadb94cd306df9278" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/alexdebril/rss-atom-bundle/zipball/49bcc3e5f2baef47374bf07c7535dc4aca6573ef", - "reference": "49bcc3e5f2baef47374bf07c7535dc4aca6573ef", + "url": "https://api.github.com/repos/alexdebril/rss-atom-bundle/zipball/5c0ef9b1f6a9ca058904c2adadb94cd306df9278", + "reference": "5c0ef9b1f6a9ca058904c2adadb94cd306df9278", "shasum": "" }, "require": { "debril/feed-io": "~3.0|~4.0", - "php": ">=5.6", + "php": ">=7.1", "symfony/config": "~3.4|~4.0", "symfony/dependency-injection": "~3.4|~4.0", - "symfony/framework-bundle": "~3.4|~4.0", "symfony/http-foundation": "~3.4|~4.0", "symfony/http-kernel": "~3.4|~4.0" }, "require-dev": { "doctrine/common": "~2.3", "doctrine/doctrine-bundle": "~1.2", - "phpunit/phpunit": "~5.5", + "phpunit/phpunit": "~7.0", "symfony/browser-kit": ">3.0", "symfony/finder": ">3.0", - "symfony/validator": ">3.0" + "symfony/validator": ">3.0", + "symfony/yaml": "^4.0" }, "suggest": { "doctrine/doctrine-bundle": "allow to provide feeds' content from database" @@ -230,34 +173,34 @@ "jsonfeed", "rss" ], - "time": "2018-01-12 23:30:55" + "time": "2019-08-09T13:22:15+00:00" }, { "name": "doctrine/annotations", - "version": "v1.4.0", + "version": "v1.8.0", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "54cacc9b81758b14e3ce750f205a393d52339e97" + "reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/54cacc9b81758b14e3ce750f205a393d52339e97", - "reference": "54cacc9b81758b14e3ce750f205a393d52339e97", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/904dca4eb10715b92569fbcd79e201d5c349b6bc", + "reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc", "shasum": "" }, "require": { "doctrine/lexer": "1.*", - "php": "^5.6 || ^7.0" + "php": "^7.1" }, "require-dev": { "doctrine/cache": "1.*", - "phpunit/phpunit": "^5.7" + "phpunit/phpunit": "^7.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "1.7.x-dev" } }, "autoload": { @@ -270,6 +213,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -278,10 +225,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -298,37 +241,42 @@ "docblock", "parser" ], - "time": "2017-02-24 16:22:25" + "time": "2019-10-01T18:55:10+00:00" }, { "name": "doctrine/cache", - "version": "v1.6.2", + "version": "1.9.1", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b" + "reference": "89a5c76c39c292f7798f964ab3c836c3f8192a55" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/eb152c5100571c7a45470ff2a35095ab3f3b900b", - "reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b", + "url": "https://api.github.com/repos/doctrine/cache/zipball/89a5c76c39c292f7798f964ab3c836c3f8192a55", + "reference": "89a5c76c39c292f7798f964ab3c836c3f8192a55", "shasum": "" }, "require": { - "php": "~5.5|~7.0" + "php": "~7.1" }, "conflict": { "doctrine/common": ">2.2,<2.4" }, "require-dev": { - "phpunit/phpunit": "~4.8|~5.0", - "predis/predis": "~1.0", - "satooshi/php-coveralls": "~0.6" + "alcaeus/mongo-php-adapter": "^1.1", + "doctrine/coding-standard": "^6.0", + "mongodb/mongodb": "^1.1", + "phpunit/phpunit": "^7.0", + "predis/predis": "~1.0" + }, + "suggest": { + "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6.x-dev" + "dev-master": "1.9.x-dev" } }, "autoload": { @@ -341,6 +289,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -349,10 +301,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -362,44 +310,54 @@ "email": "schmittjoh@gmail.com" } ], - "description": "Caching library offering an object-oriented API for many cache backends", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", + "homepage": "https://www.doctrine-project.org/projects/cache.html", "keywords": [ + "abstraction", + "apcu", "cache", - "caching" + "caching", + "couchdb", + "memcached", + "php", + "redis", + "riak", + "xcache" ], - "time": "2017-07-22 12:49:21" + "time": "2019-11-15T14:31:57+00:00" }, { "name": "doctrine/collections", - "version": "v1.4.0", + "version": "1.6.4", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba" + "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/1a4fb7e902202c33cce8c55989b945612943c2ba", - "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba", + "url": "https://api.github.com/repos/doctrine/collections/zipball/6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7", + "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.1.3" }, "require-dev": { - "doctrine/coding-standard": "~0.1@dev", - "phpunit/phpunit": "^5.7" + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan-shim": "^0.9.2", + "phpunit/phpunit": "^7.0", + "vimeo/psalm": "^3.2.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "1.6.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\Common\\Collections\\": "lib/" + "psr-4": { + "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" } }, "notification-url": "https://packagist.org/downloads/", @@ -407,6 +365,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -415,10 +377,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -428,44 +386,53 @@ "email": "schmittjoh@gmail.com" } ], - "description": "Collections Abstraction library", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", + "homepage": "https://www.doctrine-project.org/projects/collections.html", "keywords": [ "array", "collections", - "iterator" + "iterators", + "php" ], - "time": "2017-01-03 10:49:41" + "time": "2019-11-13T13:07:11+00:00" }, { "name": "doctrine/common", - "version": "v2.7.3", + "version": "v2.11.0", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9" + "reference": "b8ca1dcf6b0dc8a2af7a09baac8d0c48345df4ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/4acb8f89626baafede6ee5475bc5844096eba8a9", - "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9", + "url": "https://api.github.com/repos/doctrine/common/zipball/b8ca1dcf6b0dc8a2af7a09baac8d0c48345df4ff", + "reference": "b8ca1dcf6b0dc8a2af7a09baac8d0c48345df4ff", "shasum": "" }, "require": { - "doctrine/annotations": "1.*", - "doctrine/cache": "1.*", - "doctrine/collections": "1.*", - "doctrine/inflector": "1.*", - "doctrine/lexer": "1.*", - "php": "~5.6|~7.0" + "doctrine/annotations": "^1.0", + "doctrine/cache": "^1.0", + "doctrine/collections": "^1.0", + "doctrine/event-manager": "^1.0", + "doctrine/inflector": "^1.0", + "doctrine/lexer": "^1.0", + "doctrine/persistence": "^1.1", + "doctrine/reflection": "^1.0", + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^5.4.6" + "doctrine/coding-standard": "^1.0", + "phpstan/phpstan": "^0.11", + "phpstan/phpstan-phpunit": "^0.11", + "phpunit/phpunit": "^7.0", + "squizlabs/php_codesniffer": "^3.0", + "symfony/phpunit-bridge": "^4.0.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7.x-dev" + "dev-master": "2.11.x-dev" } }, "autoload": { @@ -478,6 +445,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -486,10 +457,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -497,46 +464,52 @@ { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" } ], - "description": "Common Library for Doctrine projects", - "homepage": "http://www.doctrine-project.org", + "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, persistence interfaces, proxies, event system and much more.", + "homepage": "https://www.doctrine-project.org/projects/common.html", "keywords": [ - "annotations", - "collections", - "eventmanager", - "persistence", - "spl" + "common", + "doctrine", + "php" ], - "time": "2017-07-22 08:35:12" + "time": "2019-09-10T10:10:14+00:00" }, { "name": "doctrine/data-fixtures", - "version": "v1.2.2", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/doctrine/data-fixtures.git", - "reference": "17fa5bfe6ff52e35cb3d9ec37c934a2f4bd1fa2e" + "reference": "608a35a3b5bcc4214d116603095f8b0c51091592" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/17fa5bfe6ff52e35cb3d9ec37c934a2f4bd1fa2e", - "reference": "17fa5bfe6ff52e35cb3d9ec37c934a2f4bd1fa2e", + "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/608a35a3b5bcc4214d116603095f8b0c51091592", + "reference": "608a35a3b5bcc4214d116603095f8b0c51091592", "shasum": "" }, "require": { - "doctrine/common": "~2.2", - "php": "^5.6 || ^7.0" + "doctrine/common": "^2.11", + "php": "^7.2" }, "conflict": { - "doctrine/orm": "< 2.4" + "doctrine/phpcr-odm": "<1.3.0" }, "require-dev": { + "alcaeus/mongo-php-adapter": "^1.1", + "doctrine/coding-standard": "^6.0", "doctrine/dbal": "^2.5.4", + "doctrine/mongodb-odm": "^1.3.0", "doctrine/orm": "^2.5.4", - "phpunit/phpunit": "^5.4.6" + "phpunit/phpunit": "^7.0" }, "suggest": { + "alcaeus/mongo-php-adapter": "For using MongoDB ODM with PHP 7", "doctrine/mongodb-odm": "For loading MongoDB ODM fixtures", "doctrine/orm": "For loading ORM fixtures", "doctrine/phpcr-odm": "For loading PHPCR ODM fixtures" @@ -544,12 +517,12 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "1.4.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\Common\\DataFixtures": "lib/" + "psr-4": { + "Doctrine\\Common\\DataFixtures\\": "lib/Doctrine/Common/DataFixtures" } }, "notification-url": "https://packagist.org/downloads/", @@ -567,29 +540,34 @@ "keywords": [ "database" ], - "time": "2016-09-20 10:07:57" + "time": "2019-10-30T20:03:18+00:00" }, { "name": "doctrine/dbal", - "version": "v2.5.13", + "version": "v2.10.0", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "729340d8d1eec8f01bff708e12e449a3415af873" + "reference": "0c9a646775ef549eb0a213a4f9bd4381d9b4d934" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/729340d8d1eec8f01bff708e12e449a3415af873", - "reference": "729340d8d1eec8f01bff708e12e449a3415af873", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/0c9a646775ef549eb0a213a4f9bd4381d9b4d934", + "reference": "0c9a646775ef549eb0a213a4f9bd4381d9b4d934", "shasum": "" }, "require": { - "doctrine/common": ">=2.4,<2.8-dev", - "php": ">=5.3.2" + "doctrine/cache": "^1.0", + "doctrine/event-manager": "^1.0", + "ext-pdo": "*", + "php": "^7.2" }, "require-dev": { - "phpunit/phpunit": "4.*", - "symfony/console": "2.*||^3.0" + "doctrine/coding-standard": "^6.0", + "jetbrains/phpstorm-stubs": "^2019.1", + "phpstan/phpstan": "^0.11.3", + "phpunit/phpunit": "^8.4.1", + "symfony/console": "^2.0.5|^3.0|^4.0|^5.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -600,12 +578,13 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.5.x-dev" + "dev-master": "2.10.x-dev", + "dev-develop": "3.0.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\DBAL\\": "lib/" + "psr-4": { + "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" } }, "notification-url": "https://packagist.org/downloads/", @@ -613,6 +592,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -621,62 +604,78 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" } ], - "description": "Database Abstraction Layer", - "homepage": "http://www.doctrine-project.org", + "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", + "homepage": "https://www.doctrine-project.org/projects/dbal.html", "keywords": [ + "abstraction", "database", + "db2", "dbal", - "persistence", - "queryobject" + "mariadb", + "mssql", + "mysql", + "oci8", + "oracle", + "pdo", + "pgsql", + "postgresql", + "queryobject", + "sasql", + "sql", + "sqlanywhere", + "sqlite", + "sqlserver", + "sqlsrv" ], - "time": "2017-07-22 20:44:48" + "time": "2019-11-03T16:50:43+00:00" }, { "name": "doctrine/doctrine-bundle", - "version": "1.10.3", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "907dafe1ba73c4c3b0f0ae8cfc1b9958c002e58c" + "reference": "a374f3bc54fe7c23ddb722ef6b9ddd2d9dcb9115" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/907dafe1ba73c4c3b0f0ae8cfc1b9958c002e58c", - "reference": "907dafe1ba73c4c3b0f0ae8cfc1b9958c002e58c", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/a374f3bc54fe7c23ddb722ef6b9ddd2d9dcb9115", + "reference": "a374f3bc54fe7c23ddb722ef6b9ddd2d9dcb9115", "shasum": "" }, "require": { "doctrine/dbal": "^2.5.12", "doctrine/doctrine-cache-bundle": "~1.2", "jdorn/sql-formatter": "^1.2.16", - "php": "^5.5.9|^7.0", - "symfony/console": "~2.7|~3.0|~4.0", - "symfony/dependency-injection": "~2.7|~3.0|~4.0", - "symfony/doctrine-bridge": "~2.7|~3.0|~4.0", - "symfony/framework-bundle": "^2.7.22|~3.0|~4.0" + "php": "^7.1", + "symfony/config": "^3.4.30|^4.3.3", + "symfony/console": "^3.4.30|^4.3.3", + "symfony/dependency-injection": "^3.4.30|^4.3.3", + "symfony/doctrine-bridge": "^3.4.30|^4.3.3", + "symfony/framework-bundle": "^3.4.30|^4.3.3" }, "conflict": { - "symfony/http-foundation": "<2.6" + "doctrine/orm": "<2.6", + "twig/twig": "<1.34|>=2.0,<2.4" }, "require-dev": { - "doctrine/orm": "~2.4", + "doctrine/coding-standard": "^6.0", + "doctrine/orm": "^2.6", "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^4.8.36|^5.7|^6.4", - "symfony/phpunit-bridge": "~2.7|~3.0|~4.0", - "symfony/property-info": "~2.8|~3.0|~4.0", - "symfony/validator": "~2.7|~3.0|~4.0", - "symfony/web-profiler-bundle": "~2.7|~3.0|~4.0", - "symfony/yaml": "~2.7|~3.0|~4.0", - "twig/twig": "~1.26|~2.0" + "phpunit/phpunit": "^7.5", + "symfony/cache": "^3.4.30|^4.3.3", + "symfony/phpunit-bridge": "^4.2", + "symfony/property-info": "^3.4.30|^4.3.3", + "symfony/twig-bridge": "^3.4|^4.1", + "symfony/validator": "^3.4.30|^4.3.3", + "symfony/web-profiler-bundle": "^3.4.30|^4.3.3", + "symfony/yaml": "^3.4.30|^4.3.3", + "twig/twig": "^1.34|^2.12" }, "suggest": { "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", @@ -685,7 +684,7 @@ "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "1.9.x-dev" + "dev-master": "1.12.x-dev" } }, "autoload": { @@ -699,20 +698,20 @@ ], "authors": [ { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, { - "name": "Doctrine Project", - "homepage": "http://www.doctrine-project.org/" + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" }, { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Doctrine Project", + "homepage": "http://www.doctrine-project.org/" } ], "description": "Symfony DoctrineBundle", @@ -723,7 +722,7 @@ "orm", "persistence" ], - "time": "2019-04-04 08:03:53" + "time": "2019-11-19T11:42:20+00:00" }, { "name": "doctrine/doctrine-cache-bundle", @@ -814,7 +813,7 @@ "cache", "caching" ], - "time": "2018-11-09 06:25:35" + "time": "2018-11-09T06:25:35+00:00" }, { "name": "doctrine/doctrine-fixtures-bundle", @@ -871,7 +870,7 @@ "Fixture", "persistence" ], - "time": "2017-10-30 19:26:42" + "time": "2017-10-30T19:26:42+00:00" }, { "name": "doctrine/doctrine-migrations-bundle", @@ -932,24 +931,100 @@ "migrations", "schema" ], - "time": "2018-12-03 11:55:33" + "time": "2018-12-03T11:55:33+00:00" }, { - "name": "doctrine/inflector", - "version": "v1.2.0", + "name": "doctrine/event-manager", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "e11d84c6e018beedd929cff5220969a3c6d1d462" + "url": "https://github.com/doctrine/event-manager.git", + "reference": "629572819973f13486371cb611386eb17851e85c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/e11d84c6e018beedd929cff5220969a3c6d1d462", - "reference": "e11d84c6e018beedd929cff5220969a3c6d1d462", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/629572819973f13486371cb611386eb17851e85c", + "reference": "629572819973f13486371cb611386eb17851e85c", "shasum": "" }, "require": { - "php": "^7.0" + "php": "^7.1" + }, + "conflict": { + "doctrine/common": "<2.9@dev" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", + "keywords": [ + "event", + "event dispatcher", + "event manager", + "event system", + "events" + ], + "time": "2019-11-10T09:48:07+00:00" + }, + { + "name": "doctrine/inflector", + "version": "1.3.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/ec3a55242203ffa6a4b27c58176da97ff0a7aec1", + "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1", + "shasum": "" + }, + "require": { + "php": "^7.1" }, "require-dev": { "phpunit/phpunit": "^6.2" @@ -957,7 +1032,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { @@ -970,6 +1045,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -978,10 +1057,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -999,36 +1074,38 @@ "singularize", "string" ], - "time": "2017-07-22 12:18:28" + "time": "2019-10-30T19:59:35+00:00" }, { "name": "doctrine/instantiator", - "version": "1.0.5", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", "shasum": "" }, "require": { - "php": ">=5.3,<8.0-DEV" + "php": "^7.1" }, "require-dev": { - "athletic/athletic": "~0.1.8", + "doctrine/coding-standard": "^6.0", "ext-pdo": "*", "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0" + "phpbench/phpbench": "^0.13", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-shim": "^0.11", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { @@ -1048,37 +1125,39 @@ } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", "keywords": [ "constructor", "instantiate" ], - "time": "2015-06-14 21:17:01" + "time": "2019-10-21T16:45:58+00:00" }, { "name": "doctrine/lexer", - "version": "1.0.2", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8" + "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/1febd6c3ef84253d7c815bed85fc622ad207a9f8", - "reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", + "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": "^7.2" }, "require-dev": { - "phpunit/phpunit": "^4.5" + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11.8", + "phpunit/phpunit": "^8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { @@ -1091,14 +1170,14 @@ "MIT" ], "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, { "name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com" }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, { "name": "Johannes Schmitt", "email": "schmittjoh@gmail.com" @@ -1113,41 +1192,40 @@ "parser", "php" ], - "time": "2019-06-08 11:03:04" + "time": "2019-10-30T14:39:59+00:00" }, { "name": "doctrine/migrations", - "version": "v1.5.0", + "version": "v1.8.1", "source": { "type": "git", "url": "https://github.com/doctrine/migrations.git", - "reference": "c81147c0f2938a6566594455367e095150547f72" + "reference": "215438c0eef3e5f9b7da7d09c6b90756071b43e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/migrations/zipball/c81147c0f2938a6566594455367e095150547f72", - "reference": "c81147c0f2938a6566594455367e095150547f72", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/215438c0eef3e5f9b7da7d09c6b90756071b43e6", + "reference": "215438c0eef3e5f9b7da7d09c6b90756071b43e6", "shasum": "" }, "require": { - "doctrine/dbal": "~2.2", + "doctrine/dbal": "~2.6", "ocramius/proxy-manager": "^1.0|^2.0", - "php": "^5.5|^7.0", - "symfony/console": "~2.3|~3.0", - "symfony/yaml": "~2.3|~3.0" + "php": "^7.1", + "symfony/console": "~3.3|^4.0" }, "require-dev": { - "doctrine/coding-standard": "dev-master", - "doctrine/orm": "2.*", + "doctrine/coding-standard": "^1.0", + "doctrine/orm": "~2.5", "jdorn/sql-formatter": "~1.1", - "johnkary/phpunit-speedtrap": "~1.0@dev", "mikey179/vfsstream": "^1.6", - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "~4.7", - "satooshi/php-coveralls": "^1.0" + "phpunit/phpunit": "~7.0", + "squizlabs/php_codesniffer": "^3.0", + "symfony/yaml": "~3.3|^4.0" }, "suggest": { - "jdorn/sql-formatter": "Allows to generate formatted SQL with the diff command." + "jdorn/sql-formatter": "Allows to generate formatted SQL with the diff command.", + "symfony/yaml": "Allows the use of yaml for migration configuration files." }, "bin": [ "bin/doctrine-migrations" @@ -1155,17 +1233,18 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "v1.6.x-dev" + "dev-master": "v1.8.x-dev" } }, "autoload": { "psr-4": { - "Doctrine\\DBAL\\Migrations\\": "lib/Doctrine/DBAL/Migrations" + "Doctrine\\DBAL\\Migrations\\": "lib/Doctrine/DBAL/Migrations", + "Doctrine\\Migrations\\": "lib/Doctrine/Migrations" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "LGPL-2.1" + "MIT" ], "authors": [ { @@ -1182,57 +1261,214 @@ } ], "description": "Database Schema migrations using Doctrine DBAL", - "homepage": "http://www.doctrine-project.org", + "homepage": "https://www.doctrine-project.org/projects/migrations.html", "keywords": [ "database", "migrations" ], - "time": "2016-12-25 22:54:00" + "time": "2018-06-06T21:00:30+00:00" }, { "name": "doctrine/orm", - "version": "v2.5.14", + "version": "v2.7.0", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "810a7baf81462a5ddf10e8baa8cb94b6eec02754" + "reference": "4d763ca4c925f647b248b9fa01b5f47aa3685d62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/810a7baf81462a5ddf10e8baa8cb94b6eec02754", - "reference": "810a7baf81462a5ddf10e8baa8cb94b6eec02754", + "url": "https://api.github.com/repos/doctrine/orm/zipball/4d763ca4c925f647b248b9fa01b5f47aa3685d62", + "reference": "4d763ca4c925f647b248b9fa01b5f47aa3685d62", "shasum": "" }, "require": { - "doctrine/cache": "~1.4", - "doctrine/collections": "~1.2", - "doctrine/common": ">=2.5-dev,<2.9-dev", - "doctrine/dbal": ">=2.5-dev,<2.7-dev", - "doctrine/instantiator": "^1.0.1", + "doctrine/annotations": "^1.8", + "doctrine/cache": "^1.9.1", + "doctrine/collections": "^1.5", + "doctrine/common": "^2.11", + "doctrine/dbal": "^2.9.3", + "doctrine/event-manager": "^1.1", + "doctrine/instantiator": "^1.3", + "doctrine/persistence": "^1.2", "ext-pdo": "*", - "php": ">=5.4", - "symfony/console": "~2.5|~3.0|~4.0" + "php": "^7.1", + "symfony/console": "^3.0|^4.0|^5.0" }, "require-dev": { - "phpunit/phpunit": "~4.0", - "symfony/yaml": "~2.3|~3.0|~4.0" + "doctrine/coding-standard": "^5.0", + "phpunit/phpunit": "^7.5", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" }, "bin": [ - "bin/doctrine", - "bin/doctrine.php" + "bin/doctrine" ], "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6.x-dev" + "dev-master": "2.7.x-dev" } }, "autoload": { - "psr-0": { - "Doctrine\\ORM\\": "lib/" + "psr-4": { + "Doctrine\\ORM\\": "lib/Doctrine/ORM" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "Object-Relational-Mapper for PHP", + "homepage": "https://www.doctrine-project.org/projects/orm.html", + "keywords": [ + "database", + "orm" + ], + "time": "2019-11-19T08:38:05+00:00" + }, + { + "name": "doctrine/persistence", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/persistence.git", + "reference": "43526ae63312942e5316100bb3ed589ba1aba491" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/43526ae63312942e5316100bb3ed589ba1aba491", + "reference": "43526ae63312942e5316100bb3ed589ba1aba491", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.0", + "doctrine/cache": "^1.0", + "doctrine/collections": "^1.0", + "doctrine/event-manager": "^1.0", + "doctrine/reflection": "^1.0", + "php": "^7.1" + }, + "conflict": { + "doctrine/common": "<2.10@dev" + }, + "require-dev": { + "doctrine/coding-standard": "^5.0", + "phpstan/phpstan": "^0.8", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", + "homepage": "https://doctrine-project.org/projects/persistence.html", + "keywords": [ + "mapper", + "object", + "odm", + "orm", + "persistence" + ], + "time": "2019-04-23T12:39:21+00:00" + }, + { + "name": "doctrine/reflection", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/reflection.git", + "reference": "02538d3f95e88eb397a5f86274deb2c6175c2ab6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/reflection/zipball/02538d3f95e88eb397a5f86274deb2c6175c2ab6", + "reference": "02538d3f95e88eb397a5f86274deb2c6175c2ab6", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.0", + "ext-tokenizer": "*", + "php": "^7.1" + }, + "require-dev": { + "doctrine/coding-standard": "^4.0", + "doctrine/common": "^2.8", + "phpstan/phpstan": "^0.9.2", + "phpstan/phpstan-phpunit": "^0.9.4", + "phpunit/phpunit": "^7.0", + "squizlabs/php_codesniffer": "^3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" } }, "notification-url": "https://packagist.org/downloads/", @@ -1255,15 +1491,22 @@ { "name": "Jonathan Wage", "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" } ], - "description": "Object-Relational-Mapper for PHP", - "homepage": "http://www.doctrine-project.org", + "description": "Doctrine Reflection component", + "homepage": "https://www.doctrine-project.org/projects/reflection.html", "keywords": [ - "database", - "orm" + "reflection" ], - "time": "2017-12-17 02:57:51" + "time": "2018-06-14T14:45:07+00:00" }, { "name": "egeloen/ckeditor-bundle", @@ -1332,7 +1575,7 @@ "keywords": [ "CKEditor" ], - "time": "2017-08-18 08:19:45" + "time": "2017-08-18T08:19:45+00:00" }, { "name": "egeloen/json-builder", @@ -1385,7 +1628,7 @@ "builder", "json" ], - "time": "2017-02-27 20:18:54" + "time": "2017-02-27T20:18:54+00:00" }, { "name": "evenement/evenement", @@ -1428,7 +1671,7 @@ "event-dispatcher", "event-emitter" ], - "time": "2017-07-23 21:35:13" + "time": "2017-07-23T21:35:13+00:00" }, { "name": "fig/link-util", @@ -1482,59 +1725,7 @@ "psr-13", "rest" ], - "time": "2016-10-17 18:31:11" - }, - { - "name": "gos/pnctl-event-loop-emitter", - "version": "v0.1.7", - "source": { - "type": "git", - "url": "https://github.com/GeniusesOfSymfony/PNCTLEventLoopEmitter.git", - "reference": "93bb0f0e60e4e1f4025f77c8a4fd9ae0c3b45fb3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/GeniusesOfSymfony/PNCTLEventLoopEmitter/zipball/93bb0f0e60e4e1f4025f77c8a4fd9ae0c3b45fb3", - "reference": "93bb0f0e60e4e1f4025f77c8a4fd9ae0c3b45fb3", - "shasum": "" - }, - "require": { - "evenement/evenement": "~2.0|~3.0", - "php": ">=5.4", - "react/event-loop": "~0.4.0|^0.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Gos\\Component\\PnctlEventLoopEmitter\\": "src/" - }, - "files": [ - "src/functions.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Johann Saunier", - "email": "johann_27@hotmail.fr" - } - ], - "description": "Pnctl event emitter for event loop", - "homepage": "https://github.com/GeniusesOfSymfony/PnctlEventLoopEmitter", - "keywords": [ - "Pnctl", - "event loop", - "reactphp" - ], - "time": "2018-04-09 11:12:07" + "time": "2016-10-17T18:31:11+00:00" }, { "name": "gos/pubsub-router-bundle", @@ -1590,47 +1781,61 @@ "redis", "zmq" ], - "time": "2018-10-04 17:09:23" + "time": "2018-10-04T17:09:23+00:00" }, { "name": "gos/web-socket-bundle", - "version": "v1.8.13", + "version": "v1.10.1", "source": { "type": "git", "url": "https://github.com/GeniusesOfSymfony/WebSocketBundle.git", - "reference": "016f4b49a16731945fc3ee1e0781f53167e393cf" + "reference": "5515324c608d48ff51892602e4535157a5082cb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GeniusesOfSymfony/WebSocketBundle/zipball/016f4b49a16731945fc3ee1e0781f53167e393cf", - "reference": "016f4b49a16731945fc3ee1e0781f53167e393cf", + "url": "https://api.github.com/repos/GeniusesOfSymfony/WebSocketBundle/zipball/5515324c608d48ff51892602e4535157a5082cb0", + "reference": "5515324c608d48ff51892602e4535157a5082cb0", "shasum": "" }, "require": { "cboden/ratchet": "^0.4.1", - "gos/pnctl-event-loop-emitter": "^0.1", "gos/pubsub-router-bundle": "^0.3", "gos/websocket-client": "^0.1", "ocramius/proxy-manager": "^1.0|^2.1", - "php": ">=5.4", - "symfony/framework-bundle": "^2.3|^3.0|^4.0" + "php": ">=7.2", + "psr/log": "^1.0", + "react/event-loop": "^1.0", + "symfony/config": "^2.3|^3.0|^4.0", + "symfony/console": "^2.3|^3.0|^4.0", + "symfony/dependency-injection": "^2.3|^3.0|^4.0", + "symfony/event-dispatcher": "^2.3|^3.0|^4.0", + "symfony/http-foundation": "^2.3|^3.0|^4.0", + "symfony/http-kernel": "^2.3|^3.0|^4.0", + "symfony/security-core": "^2.3|^3.0|^4.0" + }, + "conflict": { + "twig/twig": "<1.34|>=2.0,<2.4" }, "require-dev": { - "phpunit/phpunit": "^4.8" + "phpunit/phpunit": "^8.1" }, "suggest": { - "doctrine/cache": "* to use doctrine/cache as a client driver", - "ext-amqp": "*", - "ext-libev": "*", - "ext-libevent": ">=0.0.5", - "ext-zmq": "*", - "symfony/cache": ">=3.1 to use symfony/cache as a client driver", - "symfony/proxy-manager-bridge": "~2.3" + "doctrine/cache": "^1.0 to use doctrine/cache as a client driver", + "ext-amqp": "* to use the amqp pusher", + "ext-zmq": "* to use the zmq pusher", + "gos/react-amqp": "^0.2 to use the amqp server push handler", + "predis/predis": "^1.0 to use Predis as a client driver", + "react/zmq": "^0.4 to use zmq server push handler", + "symfony/cache": "^3.1|^4.0 to use symfony/cache as a client driver", + "symfony/options-resolver": "^2.3|^3.0|^4.0 to use the pushers", + "symfony/serializer": "^2.3|^3.0|^4.0 to use the pushers", + "symfony/stopwatch": "^2.3|^3.0|^4.0 to use the data collectors", + "twig/twig": "^1.34|^2.4|^3.0 to use the Twig extension" }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "1.8.x-dev" + "dev-1.x": "1.x-dev" } }, "autoload": { @@ -1661,7 +1866,7 @@ "io", "websocket" ], - "time": "2018-07-29 14:31:46" + "time": "2019-11-22T15:55:38+00:00" }, { "name": "gos/websocket-client", @@ -1711,7 +1916,7 @@ "WAMP", "websocket" ], - "time": "2015-08-04 11:43:11" + "time": "2015-08-04T11:43:11+00:00" }, { "name": "gregwar/captcha", @@ -1764,7 +1969,7 @@ "captcha", "spam" ], - "time": "2018-08-17 22:57:28" + "time": "2018-08-17T22:57:28+00:00" }, { "name": "gregwar/captcha-bundle", @@ -1818,7 +2023,7 @@ "spam", "visual" ], - "time": "2018-11-20 10:41:34" + "time": "2018-11-20T10:41:34+00:00" }, { "name": "guzzlehttp/guzzle", @@ -1884,7 +2089,7 @@ "rest", "web service" ], - "time": "2019-10-23 15:58:00" + "time": "2019-10-23T15:58:00+00:00" }, { "name": "guzzlehttp/promises", @@ -1935,7 +2140,7 @@ "keywords": [ "promise" ], - "time": "2016-12-20 10:07:11" + "time": "2016-12-20T10:07:11+00:00" }, { "name": "guzzlehttp/psr7", @@ -2006,7 +2211,7 @@ "uri", "url" ], - "time": "2019-07-01 23:21:34" + "time": "2019-07-01T23:21:34+00:00" }, { "name": "incenteev/composer-parameter-handler", @@ -2057,7 +2262,7 @@ "keywords": [ "parameters management" ], - "time": "2018-02-13 18:05:56" + "time": "2018-02-13T18:05:56+00:00" }, { "name": "jasig/phpcas", @@ -2112,7 +2317,7 @@ "cas", "jasig" ], - "time": "2019-08-18 20:01:55" + "time": "2019-08-18T20:01:55+00:00" }, { "name": "jdorn/sql-formatter", @@ -2162,7 +2367,7 @@ "highlight", "sql" ], - "time": "2014-01-12 16:20:24" + "time": "2014-01-12T16:20:24+00:00" }, { "name": "kriswallsmith/assetic", @@ -2239,7 +2444,7 @@ "compression", "minification" ], - "time": "2016-11-11 18:43:20" + "time": "2016-11-11T18:43:20+00:00" }, { "name": "lightsaml/lightsaml", @@ -2301,7 +2506,7 @@ "lightSAML", "php" ], - "time": "2018-05-28 11:21:22" + "time": "2018-05-28T11:21:22+00:00" }, { "name": "lightsaml/sp-bundle", @@ -2350,7 +2555,7 @@ ], "description": "Light SAML2 SP Symfony Bundle", "homepage": "http://www.lightsaml.com/SP-Bundle/", - "time": "2019-11-13 19:05:47" + "time": "2019-11-13T19:05:47+00:00" }, { "name": "lightsaml/symfony-bridge", @@ -2405,7 +2610,7 @@ ], "description": "Light SAML Symfony bridge bundle", "homepage": "http://www.lightsaml.com", - "time": "2018-05-23 08:11:59" + "time": "2018-05-23T08:11:59+00:00" }, { "name": "mashape/unirest-php", @@ -2451,7 +2656,7 @@ "https", "rest" ], - "time": "2016-08-11 17:49:21" + "time": "2016-08-11T17:49:21+00:00" }, { "name": "monolog/monolog", @@ -2529,42 +2734,99 @@ "logging", "psr-3" ], - "time": "2019-11-13 10:00:05" + "time": "2019-11-13T10:00:05+00:00" }, { - "name": "ocramius/proxy-manager", - "version": "1.0.2", + "name": "ocramius/package-versions", + "version": "1.4.2", "source": { "type": "git", - "url": "https://github.com/Ocramius/ProxyManager.git", - "reference": "57e9272ec0e8deccf09421596e0e2252df440e11" + "url": "https://github.com/Ocramius/PackageVersions.git", + "reference": "44af6f3a2e2e04f2af46bcb302ad9600cba41c7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/57e9272ec0e8deccf09421596e0e2252df440e11", - "reference": "57e9272ec0e8deccf09421596e0e2252df440e11", + "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/44af6f3a2e2e04f2af46bcb302ad9600cba41c7d", + "reference": "44af6f3a2e2e04f2af46bcb302ad9600cba41c7d", "shasum": "" }, "require": { - "php": ">=5.3.3", - "zendframework/zend-code": ">2.2.5,<3.0" + "composer-plugin-api": "^1.0.0", + "php": "^7.1.0" }, "require-dev": { + "composer/composer": "^1.6.3", + "doctrine/coding-standard": "^5.0.1", + "ext-zip": "*", + "infection/infection": "^0.7.1", + "phpunit/phpunit": "^7.5.17" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "time": "2019-11-15T16:17:10+00:00" + }, + { + "name": "ocramius/proxy-manager", + "version": "2.2.3", + "source": { + "type": "git", + "url": "https://github.com/Ocramius/ProxyManager.git", + "reference": "4d154742e31c35137d5374c998e8f86b54db2e2f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/4d154742e31c35137d5374c998e8f86b54db2e2f", + "reference": "4d154742e31c35137d5374c998e8f86b54db2e2f", + "shasum": "" + }, + "require": { + "ocramius/package-versions": "^1.1.3", + "php": "^7.2.0", + "zendframework/zend-code": "^3.3.0" + }, + "require-dev": { + "couscous/couscous": "^1.6.1", "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "1.5.*" + "humbug/humbug": "1.0.0-RC.0@RC", + "nikic/php-parser": "^3.1.1", + "padraic/phpunit-accelerator": "dev-master@DEV", + "phpbench/phpbench": "^0.12.2", + "phpstan/phpstan": "dev-master#856eb10a81c1d27c701a83f167dc870fd8f4236a as 0.9.999", + "phpstan/phpstan-phpunit": "dev-master#5629c0a1f4a9c417cb1077cf6693ad9753895761", + "phpunit/phpunit": "^6.4.3", + "squizlabs/php_codesniffer": "^2.9.1" }, "suggest": { "ocramius/generated-hydrator": "To have very fast object to array to object conversion for ghost objects", "zendframework/zend-json": "To have the JsonRpc adapter (Remote Object feature)", "zendframework/zend-soap": "To have the Soap adapter (Remote Object feature)", - "zendframework/zend-stdlib": "To use the hydrator proxy", "zendframework/zend-xmlrpc": "To have the XmlRpc adapter (Remote Object feature)" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -2580,7 +2842,7 @@ { "name": "Marco Pivetta", "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "homepage": "http://ocramius.github.io/" } ], "description": "A library providing utilities to generate, instantiate and generally operate with Object Proxies", @@ -2592,7 +2854,7 @@ "proxy pattern", "service proxies" ], - "time": "2015-08-09 04:28:19" + "time": "2019-08-10T08:37:15+00:00" }, { "name": "oneup/uploader-bundle", @@ -2667,7 +2929,7 @@ "plupload", "upload" ], - "time": "2017-12-18 12:41:59" + "time": "2017-12-18T12:41:59+00:00" }, { "name": "paragonie/random_compat", @@ -2716,7 +2978,7 @@ "pseudorandom", "random" ], - "time": "2019-01-03 20:59:08" + "time": "2019-01-03T20:59:08+00:00" }, { "name": "psr/cache", @@ -2762,7 +3024,7 @@ "psr", "psr-6" ], - "time": "2016-08-06 20:24:11" + "time": "2016-08-06T20:24:11+00:00" }, { "name": "psr/container", @@ -2811,7 +3073,7 @@ "container-interop", "psr" ], - "time": "2017-02-14 16:28:37" + "time": "2017-02-14T16:28:37+00:00" }, { "name": "psr/http-message", @@ -2861,7 +3123,7 @@ "request", "response" ], - "time": "2016-08-06 14:39:51" + "time": "2016-08-06T14:39:51+00:00" }, { "name": "psr/link", @@ -2910,7 +3172,7 @@ "psr-13", "rest" ], - "time": "2016-10-28 16:06:13" + "time": "2016-10-28T16:06:13+00:00" }, { "name": "psr/log", @@ -2957,7 +3219,7 @@ "psr", "psr-3" ], - "time": "2019-11-01 11:05:21" + "time": "2019-11-01T11:05:21+00:00" }, { "name": "psr/simple-cache", @@ -3005,7 +3267,7 @@ "psr-16", "simple-cache" ], - "time": "2017-10-23 01:57:42" + "time": "2017-10-23T01:57:42+00:00" }, { "name": "ralouphie/getallheaders", @@ -3045,7 +3307,7 @@ } ], "description": "A polyfill for getallheaders.", - "time": "2019-03-08 08:55:37" + "time": "2019-03-08T08:55:37+00:00" }, { "name": "ramsey/uuid", @@ -3127,7 +3389,7 @@ "identifier", "uuid" ], - "time": "2018-07-19 23:38:55" + "time": "2018-07-19T23:38:55+00:00" }, { "name": "ratchet/rfc6455", @@ -3176,7 +3438,7 @@ "rfc6455", "websocket" ], - "time": "2019-03-10 17:10:42" + "time": "2019-03-10T17:10:42+00:00" }, { "name": "react/cache", @@ -3216,7 +3478,7 @@ "promise", "reactphp" ], - "time": "2019-07-11 13:45:28" + "time": "2019-07-11T13:45:28+00:00" }, { "name": "react/dns", @@ -3260,31 +3522,32 @@ "dns-resolver", "reactphp" ], - "time": "2019-08-15 09:06:31" + "time": "2019-08-15T09:06:31+00:00" }, { "name": "react/event-loop", - "version": "v0.5.3", + "version": "v1.1.0", "source": { "type": "git", "url": "https://github.com/reactphp/event-loop.git", - "reference": "228178a947de1f7cd9296d691878569628288c6f" + "reference": "a0ecac955c67b57c40fe4a1b88a7cca1b58c982d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/event-loop/zipball/228178a947de1f7cd9296d691878569628288c6f", - "reference": "228178a947de1f7cd9296d691878569628288c6f", + "url": "https://api.github.com/repos/reactphp/event-loop/zipball/a0ecac955c67b57c40fe4a1b88a7cca1b58c982d", + "reference": "a0ecac955c67b57c40fe4a1b88a7cca1b58c982d", "shasum": "" }, "require": { "php": ">=5.3.0" }, "require-dev": { - "phpunit/phpunit": "~4.8.35 || ^5.7 || ^6.4" + "phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35" }, "suggest": { "ext-event": "~1.0 for ExtEventLoop", - "ext-pcntl": "For signal handling support when using the StreamSelectLoop" + "ext-pcntl": "For signal handling support when using the StreamSelectLoop", + "ext-uv": "* for ExtUvLoop" }, "type": "library", "autoload": { @@ -3301,7 +3564,7 @@ "asynchronous", "event-loop" ], - "time": "2018-07-09 13:51:04" + "time": "2019-02-07T16:19:49+00:00" }, { "name": "react/promise", @@ -3347,7 +3610,7 @@ "promise", "promises" ], - "time": "2019-01-07 21:25:54" + "time": "2019-01-07T21:25:54+00:00" }, { "name": "react/promise-timer", @@ -3400,7 +3663,7 @@ "timeout", "timer" ], - "time": "2019-03-27 18:10:32" + "time": "2019-03-27T18:10:32+00:00" }, { "name": "react/socket", @@ -3447,7 +3710,7 @@ "reactphp", "stream" ], - "time": "2019-07-10 10:11:14" + "time": "2019-07-10T10:11:14+00:00" }, { "name": "react/stream", @@ -3493,7 +3756,7 @@ "stream", "writable" ], - "time": "2019-01-01 16:15:09" + "time": "2019-01-01T16:15:09+00:00" }, { "name": "robrichards/xmlseclibs", @@ -3531,7 +3794,7 @@ "xml", "xmldsig" ], - "time": "2019-11-05 11:44:22" + "time": "2019-11-05T11:44:22+00:00" }, { "name": "sensio/distribution-bundle", @@ -3583,45 +3846,47 @@ "configuration", "distribution" ], - "time": "2019-06-18 15:43:58" + "time": "2019-06-18T15:43:58+00:00" }, { "name": "sensio/framework-extra-bundle", - "version": "v5.2.4", + "version": "v5.4.1", "source": { "type": "git", "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", - "reference": "1fdf591c4b388e62dbb2579de89c1560b33f865d" + "reference": "585f4b3a1c54f24d1a8431c729fc8f5acca20c8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/1fdf591c4b388e62dbb2579de89c1560b33f865d", - "reference": "1fdf591c4b388e62dbb2579de89c1560b33f865d", + "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/585f4b3a1c54f24d1a8431c729fc8f5acca20c8a", + "reference": "585f4b3a1c54f24d1a8431c729fc8f5acca20c8a", "shasum": "" }, "require": { - "doctrine/common": "^2.2", - "symfony/config": "^3.3|^4.0", - "symfony/dependency-injection": "^3.3|^4.0", - "symfony/framework-bundle": "^3.4|^4.0", - "symfony/http-kernel": "^3.3|^4.0" + "doctrine/annotations": "^1.0", + "doctrine/persistence": "^1.0", + "php": ">=7.1.3", + "symfony/config": "^3.4|^4.3", + "symfony/dependency-injection": "^3.4|^4.3", + "symfony/framework-bundle": "^3.4|^4.3", + "symfony/http-kernel": "^3.4|^4.3" }, "require-dev": { "doctrine/doctrine-bundle": "^1.6", "doctrine/orm": "^2.5", - "symfony/browser-kit": "^3.3|^4.0", - "symfony/dom-crawler": "^3.3|^4.0", - "symfony/expression-language": "^3.3|^4.0", - "symfony/finder": "^3.3|^4.0", + "nyholm/psr7": "^1.1", + "symfony/browser-kit": "^3.4|^4.3", + "symfony/dom-crawler": "^3.4|^4.3", + "symfony/expression-language": "^3.4|^4.3", + "symfony/finder": "^3.4|^4.3", "symfony/monolog-bridge": "^3.0|^4.0", "symfony/monolog-bundle": "^3.2", "symfony/phpunit-bridge": "^3.4.19|^4.1.8", - "symfony/psr-http-message-bridge": "^0.3", - "symfony/security-bundle": "^3.3|^4.0", - "symfony/twig-bundle": "^3.3|^4.0", - "symfony/yaml": "^3.3|^4.0", - "twig/twig": "~1.12|~2.0", - "zendframework/zend-diactoros": "^1.3" + "symfony/psr-http-message-bridge": "^1.1", + "symfony/security-bundle": "^3.4|^4.3", + "symfony/twig-bundle": "^3.4|^4.3", + "symfony/yaml": "^3.4|^4.3", + "twig/twig": "~1.12|~2.0" }, "suggest": { "symfony/expression-language": "", @@ -3631,7 +3896,7 @@ "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "5.2.x-dev" + "dev-master": "5.4.x-dev" } }, "autoload": { @@ -3654,26 +3919,28 @@ "annotations", "controllers" ], - "time": "2018-12-11 16:59:23" + "time": "2019-07-08T08:31:25+00:00" }, { "name": "sensiolabs/security-checker", - "version": "v5.0.3", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/sensiolabs/security-checker.git", - "reference": "46be3f58adac13084497961e10eed9a7fb4d44d1" + "reference": "a576c01520d9761901f269c4934ba55448be4a54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/46be3f58adac13084497961e10eed9a7fb4d44d1", - "reference": "46be3f58adac13084497961e10eed9a7fb4d44d1", + "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/a576c01520d9761901f269c4934ba55448be4a54", + "reference": "a576c01520d9761901f269c4934ba55448be4a54", "shasum": "" }, "require": { - "composer/ca-bundle": "^1.0", - "php": ">=5.5.9", - "symfony/console": "~2.7|~3.0|~4.0" + "php": ">=7.1.3", + "symfony/console": "^2.8|^3.4|^4.2|^5.0", + "symfony/http-client": "^4.3|^5.0", + "symfony/mime": "^4.3|^5.0", + "symfony/polyfill-ctype": "^1.11" }, "bin": [ "security-checker" @@ -3681,7 +3948,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-master": "6.0-dev" } }, "autoload": { @@ -3700,7 +3967,7 @@ } ], "description": "A security checker for your composer.lock", - "time": "2018-12-19 17:14:59" + "time": "2019-11-01T13:20:14+00:00" }, { "name": "swiftmailer/swiftmailer", @@ -3754,7 +4021,7 @@ "mail", "mailer" ], - "time": "2018-07-31 09:26:32" + "time": "2018-07-31T09:26:32+00:00" }, { "name": "symfony/assetic-bundle", @@ -3824,34 +4091,216 @@ "compression", "minification" ], - "time": "2017-07-14 07:26:46" + "abandoned": "symfony/webpack-encore-pack", + "time": "2017-07-14T07:26:46+00:00" }, { - "name": "symfony/monolog-bundle", - "version": "v3.5.0", + "name": "symfony/http-client", + "version": "v4.3.8", "source": { "type": "git", - "url": "https://github.com/symfony/monolog-bundle.git", - "reference": "dd80460fcfe1fa2050a7103ad818e9d0686ce6fd" + "url": "https://github.com/symfony/http-client.git", + "reference": "ae3a9cd491f1aadb5583f34a6bda5cca34081ce8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/dd80460fcfe1fa2050a7103ad818e9d0686ce6fd", - "reference": "dd80460fcfe1fa2050a7103ad818e9d0686ce6fd", + "url": "https://api.github.com/repos/symfony/http-client/zipball/ae3a9cd491f1aadb5583f34a6bda5cca34081ce8", + "reference": "ae3a9cd491f1aadb5583f34a6bda5cca34081ce8", "shasum": "" }, "require": { - "monolog/monolog": "~1.22 || ~2.0", - "php": ">=5.6", - "symfony/config": "~3.4 || ~4.0 || ^5.0", - "symfony/dependency-injection": "~3.4.10 || ^4.0.10 || ^5.0", - "symfony/http-kernel": "~3.4 || ~4.0 || ^5.0", - "symfony/monolog-bridge": "~3.4 || ~4.0 || ^5.0" + "php": "^7.1.3", + "psr/log": "^1.0", + "symfony/http-client-contracts": "^1.1.7", + "symfony/polyfill-php73": "^1.11" + }, + "provide": { + "psr/http-client-implementation": "1.0", + "symfony/http-client-implementation": "1.1" }, "require-dev": { - "symfony/console": "~3.4 || ~4.0 || ^5.0", - "symfony/phpunit-bridge": "^3.4.19 || ^4.0 || ^5.0", - "symfony/yaml": "~3.4 || ~4.0 || ^5.0" + "nyholm/psr7": "^1.0", + "psr/http-client": "^1.0", + "symfony/http-kernel": "^4.3", + "symfony/process": "^4.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpClient\\": "" + }, + "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 HttpClient component", + "homepage": "https://symfony.com", + "time": "2019-11-08T08:23:45+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v1.1.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "088bae75cfa2ec5eb6d33dce17dbd8613150ce6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/088bae75cfa2ec5eb6d33dce17dbd8613150ce6e", + "reference": "088bae75cfa2ec5eb6d33dce17dbd8613150ce6e", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "suggest": { + "symfony/http-client-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + } + }, + "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 HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "time": "2019-11-07T12:44:51+00:00" + }, + { + "name": "symfony/mime", + "version": "v4.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "89da7b68b7149aab065c09b97f938753ab52831f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/89da7b68b7149aab065c09b97f938753ab52831f", + "reference": "89da7b68b7149aab065c09b97f938753ab52831f", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "conflict": { + "symfony/mailer": "<4.4" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10", + "symfony/dependency-injection": "^3.4|^4.1|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-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-11-13T07:39:40+00:00" + }, + { + "name": "symfony/monolog-bundle", + "version": "v3.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bundle.git", + "reference": "7fbecb371c1c614642c93c6b2cbcdf723ae8809d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/7fbecb371c1c614642c93c6b2cbcdf723ae8809d", + "reference": "7fbecb371c1c614642c93c6b2cbcdf723ae8809d", + "shasum": "" + }, + "require": { + "monolog/monolog": "~1.22", + "php": ">=5.6", + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4.10|^4.0.10", + "symfony/http-kernel": "~3.4|~4.0", + "symfony/monolog-bridge": "~3.4|~4.0" + }, + "require-dev": { + "symfony/console": "~3.4|~4.0", + "symfony/phpunit-bridge": "^3.4.19|^4.0", + "symfony/yaml": "~3.4|~4.0" }, "type": "symfony-bundle", "extra": { @@ -3872,13 +4321,13 @@ "MIT" ], "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, { "name": "Symfony Community", "homepage": "http://symfony.com/contributors" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" } ], "description": "Symfony MonologBundle", @@ -3887,7 +4336,7 @@ "log", "logging" ], - "time": "2019-11-13 13:11:14" + "time": "2019-06-20T12:18:19+00:00" }, { "name": "symfony/orm-pack", @@ -3915,7 +4364,7 @@ "MIT" ], "description": "A pack for the Doctrine ORM", - "time": "2019-10-18 05:41:09" + "time": "2019-10-18T05:41:09+00:00" }, { "name": "symfony/polyfill-apcu", @@ -3971,7 +4420,7 @@ "portable", "shim" ], - "time": "2019-08-06 08:03:45" + "time": "2019-08-06T08:03:45+00:00" }, { "name": "symfony/polyfill-ctype", @@ -4029,7 +4478,7 @@ "polyfill", "portable" ], - "time": "2019-08-06 08:03:45" + "time": "2019-08-06T08:03:45+00:00" }, { "name": "symfony/polyfill-intl-icu", @@ -4087,7 +4536,69 @@ "portable", "shim" ], - "time": "2019-08-06 08:03:45" + "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", + "shim" + ], + "time": "2019-08-06T08:03:45+00:00" }, { "name": "symfony/polyfill-mbstring", @@ -4146,7 +4657,7 @@ "portable", "shim" ], - "time": "2019-08-06 08:03:45" + "time": "2019-08-06T08:03:45+00:00" }, { "name": "symfony/polyfill-php56", @@ -4202,7 +4713,7 @@ "portable", "shim" ], - "time": "2019-08-06 08:03:45" + "time": "2019-08-06T08:03:45+00:00" }, { "name": "symfony/polyfill-php70", @@ -4261,7 +4772,120 @@ "portable", "shim" ], - "time": "2019-08-06 08:03:45" + "time": "2019-08-06T08:03:45+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.12.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "04ce3335667451138df4307d6a9b61565560199e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/04ce3335667451138df4307d6a9b61565560199e", + "reference": "04ce3335667451138df4307d6a9b61565560199e", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.12-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + }, + "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 backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2019-08-06T08:03:45+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.12.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/2ceb49eaccb9352bff54d22570276bb75ba4a188", + "reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.12-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "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 backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2019-08-06T08:03:45+00:00" }, { "name": "symfony/polyfill-util", @@ -4313,7 +4937,7 @@ "polyfill", "shim" ], - "time": "2019-08-06 08:03:45" + "time": "2019-08-06T08:03:45+00:00" }, { "name": "symfony/swiftmailer-bundle", @@ -4372,7 +4996,7 @@ ], "description": "Symfony SwiftmailerBundle", "homepage": "http://symfony.com", - "time": "2017-10-19 01:06:41" + "time": "2017-10-19T01:06:41+00:00" }, { "name": "symfony/symfony", @@ -4527,7 +5151,7 @@ "keywords": [ "framework" ], - "time": "2019-11-13 08:45:05" + "time": "2019-11-13T08:45:05+00:00" }, { "name": "tetranz/select2entity-bundle", @@ -4574,7 +5198,7 @@ "symfony", "typeahead" ], - "time": "2019-07-14 02:30:34" + "time": "2019-07-14T02:30:34+00:00" }, { "name": "thecsea/simple-caldav-client", @@ -4617,7 +5241,7 @@ "Simple", "client" ], - "time": "2019-04-25 19:55:16" + "time": "2019-04-25T19:55:16+00:00" }, { "name": "twig/twig", @@ -4684,30 +5308,31 @@ "keywords": [ "templating" ], - "time": "2019-11-11 16:52:09" + "time": "2019-11-11T16:52:09+00:00" }, { "name": "zendframework/zend-code", - "version": "2.6.3", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/zendframework/zend-code.git", - "reference": "95033f061b083e16cdee60530ec260d7d628b887" + "reference": "46feaeecea14161734b56c1ace74f28cb329f194" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-code/zipball/95033f061b083e16cdee60530ec260d7d628b887", - "reference": "95033f061b083e16cdee60530ec260d7d628b887", + "url": "https://api.github.com/repos/zendframework/zend-code/zipball/46feaeecea14161734b56c1ace74f28cb329f194", + "reference": "46feaeecea14161734b56c1ace74f28cb329f194", "shasum": "" }, "require": { - "php": "^5.5 || 7.0.0 - 7.0.4 || ^7.0.6", + "php": "^7.1", "zendframework/zend-eventmanager": "^2.6 || ^3.0" }, "require-dev": { - "doctrine/annotations": "~1.0", - "fabpot/php-cs-fixer": "1.7.*", - "phpunit/phpunit": "^4.8.21", + "doctrine/annotations": "^1.0", + "ext-phar": "*", + "phpunit/phpunit": "^7.5.16 || ^8.4", + "zendframework/zend-coding-standard": "^1.0", "zendframework/zend-stdlib": "^2.7 || ^3.0" }, "suggest": { @@ -4717,8 +5342,8 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev", - "dev-develop": "2.7-dev" + "dev-master": "3.4.x-dev", + "dev-develop": "3.5.x-dev" } }, "autoload": { @@ -4730,13 +5355,13 @@ "license": [ "BSD-3-Clause" ], - "description": "provides facilities to generate arbitrary code using an object oriented interface", - "homepage": "https://github.com/zendframework/zend-code", + "description": "Extensions to the PHP Reflection API, static code scanning, and code generation", "keywords": [ + "ZendFramework", "code", - "zf2" + "zf" ], - "time": "2016-04-20 17:26:42" + "time": "2019-10-05T23:18:22+00:00" }, { "name": "zendframework/zend-eventmanager", @@ -4790,7 +5415,7 @@ "events", "zf2" ], - "time": "2018-04-25 15:33:34" + "time": "2018-04-25T15:33:34+00:00" } ], "packages-dev": [ @@ -4844,7 +5469,7 @@ "parser", "php" ], - "time": "2019-11-08 13:50:10" + "time": "2019-11-08T13:50:10+00:00" }, { "name": "sensio/generator-bundle", @@ -4898,7 +5523,7 @@ } ], "description": "This bundle generates code for you", - "time": "2017-12-07 15:36:41" + "time": "2017-12-07T15:36:41+00:00" }, { "name": "symfony/maker-bundle", @@ -4966,7 +5591,7 @@ "scaffold", "scaffolding" ], - "time": "2019-11-07 00:56:03" + "time": "2019-11-07T00:56:03+00:00" }, { "name": "symfony/phpunit-bridge", @@ -5031,7 +5656,7 @@ ], "description": "Symfony PHPUnit Bridge", "homepage": "https://symfony.com", - "time": "2019-09-30 20:33:19" + "time": "2019-09-30T20:33:19+00:00" } ], "aliases": [], @@ -5044,6 +5669,6 @@ }, "platform-dev": [], "platform-overrides": { - "php": "7.0.30" + "php": "7.2" } } diff --git a/src/ninegate-1.0/scripts/ninegate-postservice-00.sh b/src/ninegate-1.0/scripts/ninegate-postservice-00.sh index 568f644d..cb2d40ba 100755 --- a/src/ninegate-1.0/scripts/ninegate-postservice-00.sh +++ b/src/ninegate-1.0/scripts/ninegate-postservice-00.sh @@ -1,7 +1,5 @@ #!/bin/bash -export HTTP_PROXY="192.168.57.160:8080" -export HTTPS_PROXY="192.168.57.160:8080" cd /var/www/html/ninegate diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/SynchroCommand.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/SynchroCommand.php index 55de0b47..1eab6d09 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/SynchroCommand.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Command/SynchroCommand.php @@ -68,6 +68,24 @@ class SynchroCommand extends Command $labelniveau02 = mb_strtoupper($this->container->getParameter('labelniveau02')); $masteridentity = $this->container->getParameter('masteridentity'); + $this->ldap_basedn = $this->container->getParameter('ldap_basedn'); + $this->ldap_baseuser = $this->container->getParameter('ldap_baseuser'); + $this->ldap_basegroup = $this->container->getParameter('ldap_basegroup'); + + $ldap_username = strtolower($this->container->getParameter('ldap_username')); + $ldap_firstname = strtolower($this->container->getParameter('ldap_firstname')); + $ldap_lastname = strtolower($this->container->getParameter('ldap_lastname')); + $ldap_email = strtolower($this->container->getParameter('ldap_email')); + $ldap_member = strtolower($this->container->getParameter('ldap_member')); + $scribe_group = strtolower($this->container->getParameter('scribe_group')); + + $ldap_template = $this->container->getParameter('ldap_template'); + $ldap_usersadmin = $this->container->getParameter('ldap_usersadmin'); + $scribe_master = strtolower($this->container->getParameter('scribe_master')); + $fieldstoread = array($ldap_username,$ldap_firstname,$ldap_lastname,$ldap_email); + $ldapusers = array(); + $ldapmails = array(); + $simulate = $input->getArgument('simulate'); if($simulate=="") $simulate="true"; @@ -95,25 +113,6 @@ class SynchroCommand extends Command $this->writeln('== SYNCHONISATION LDAP TO BUNDLE ===================='); $this->writeln('====================================================='); - - $this->ldap_basedn = $this->container->getParameter('ldap_basedn'); - $this->ldap_baseuser = $this->container->getParameter('ldap_baseuser'); - $this->ldap_basegroup = $this->container->getParameter('ldap_basegroup'); - - $ldap_username = strtolower($this->container->getParameter('ldap_username')); - $ldap_firstname = strtolower($this->container->getParameter('ldap_firstname')); - $ldap_lastname = strtolower($this->container->getParameter('ldap_lastname')); - $ldap_email = strtolower($this->container->getParameter('ldap_email')); - $ldap_member = strtolower($this->container->getParameter('ldap_member')); - $scribe_group = strtolower($this->container->getParameter('scribe_group')); - - $ldap_template = $this->container->getParameter('ldap_template'); - $ldap_usersadmin = $this->container->getParameter('ldap_usersadmin'); - $scribe_master = strtolower($this->container->getParameter('scribe_master')); - $fieldstoread = array($ldap_username,$ldap_firstname,$ldap_lastname,$ldap_email); - $ldapusers = array(); - $ldapmails = array(); - if($ldap_template=="scribe") { $this->writeln(''); $this->writeln('== PROFILS =========================================='); @@ -509,7 +508,7 @@ class SynchroCommand extends Command // Mise à jour si elle existe if(count($results) > 0) { $this->writeln(' - Modification dans annuaire >> '.$data->getLabel()); - if(!$simulate) $this->ldap->modifyNiveau01($data,$data->getLabel()); + if(!$simulate) $this->ldap->modifyNiveau01($data,$data->getLabel(),$results[0]["cn"]); } // Sinon création de la fiche else { @@ -536,7 +535,7 @@ class SynchroCommand extends Command // Mise à jour si elle existe if(count($results) > 0) { $this->writeln(' - Modification dans annuaire >> '.$data->getLabel()); - if(!$simulate) $this->ldap->modifyNiveau02($data,$data->getLabel()); + if(!$simulate) $this->ldap->modifyNiveau02($data,$data->getLabel(),$results[0]["cn"]); } // Sinon création de la fiche else { @@ -563,7 +562,7 @@ class SynchroCommand extends Command // Mise à jour si elle existe if(count($results) > 0) { $this->writeln(' - Modification dans annuaire >> '.$data->getLabel()); - if(!$simulate) $this->ldap->modifyGroup($data,$data->getLabel()); + if(!$simulate) $this->ldap->modifyGroup($data,$data->getLabel(),$results[0]["cn"]); } // Sinon création de la fiche else { @@ -583,9 +582,9 @@ class SynchroCommand extends Command ->getQuery() ->getResult(); foreach($datas as $data) { - $criteria = '(uid='.$data->getUsername().')'; + $criteria = '('.$ldap_username.'='.$data->getUsername().')'; $subbranch=$baseUser; - $results = $this->ldap->search($criteria, array('uid'), $subbranch); + $results = $this->ldap->search($criteria, array($ldap_username), $subbranch); // S'assurer que SIREN correspond au Niveau01 if($data->getNiveau01()->getSiren()!=$data->getSiren()) { @@ -775,15 +774,15 @@ class SynchroCommand extends Command $this->writeln('== USER ============================================='); $baseUser = $this->container->getParameter('ldap_baseuser'); - $criteria = '(uid=*)'; + $criteria = '('.$ldap_username.'=*)'; $subbranch=$baseUser; - $results = $this->ldap->search($criteria, array('uid'), $subbranch); + $results = $this->ldap->search($criteria, array($ldap_username), $subbranch); foreach($results as $result) { - $data = $this->em->getRepository('CadolesCoreBundle:User')->findBy(array('username' => $result["uid"])); - if($data) $this->writeln(' - Existe dans bundle >> '.$result["uid"]); + $data = $this->em->getRepository('CadolesCoreBundle:User')->findBy(array('username' => $result[$ldap_username])); + if($data) $this->writeln(' - Existe dans bundle >> '.$result[$ldap_username]); else { - $this->writeln(' - A supprimer dans annuaire >> '.$result["uid"]); - $dn='uid='.$result["uid"].','.$baseUser; + $this->writeln(' - A supprimer dans annuaire >> '.$result[$ldap_username]); + $dn=$ldap_username.'='.$result[$ldap_username].','.$baseUser; if(!$simulate) $this->ldap->deleteByDN($dn); } } diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Group.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Group.php index d6430c7d..b241701c 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Group.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Group.php @@ -43,6 +43,11 @@ class Group */ private $color; + /** + * @ORM\Column(type="string", length=250, nullable=true) + */ + private $email; + /** * @ORM\Column(type="boolean", options={"default" : false}) */ @@ -1056,4 +1061,28 @@ class Group { return $this->statistics; } + + /** + * Set email. + * + * @param string|null $email + * + * @return Group + */ + public function setEmail($email = null) + { + $this->email = $email; + + return $this; + } + + /** + * Get email. + * + * @return string|null + */ + public function getEmail() + { + return $this->email; + } } diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Registration.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Registration.php index fd347fa8..0fd438f7 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Registration.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/Registration.php @@ -57,6 +57,11 @@ class Registration implements UserInterface, \Serializable */ private $salt; + /** + * @ORM\Column(type="string", length=250, nullable=true) + */ + private $passwordad; + /** * @ORM\Column(type="string", length=60, unique=true) */ @@ -179,14 +184,21 @@ class Registration implements UserInterface, \Serializable public function setPassword($password) { - if($password!=$this->password&&$password!=""){ - $this->tempopassword=$password; - + if($password!=$this->password&&$password!=""){ + // Password encrypté format openldap mt_srand((double)microtime()*1000000); $this->salt = pack("CCCC", mt_rand(), mt_rand(), mt_rand(), mt_rand()); $hash = "{SSHA}" . base64_encode(pack("H*", sha1($password . $this->salt)) . $this->salt); - $this->password = $hash; + + // Password encrypté AD + $newPassword = "\"" . $password . "\""; + $len = strlen($newPassword); + $newPassw = ""; + for($i=0;$i<$len;$i++) { + $newPassw .= "{$newPassword{$i}}\000"; + } + $this->passwordad = $newPassw; } return $this; @@ -796,4 +808,28 @@ class Registration implements UserInterface, \Serializable { return $this->motivation; } + + /** + * Set passwordad. + * + * @param string|null $passwordad + * + * @return Registration + */ + public function setPasswordad($passwordad = null) + { + $this->passwordad = $passwordad; + + return $this; + } + + /** + * Get passwordad. + * + * @return string|null + */ + public function getPasswordad() + { + return $this->passwordad; + } } diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/User.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/User.php index 4662a674..5af1772e 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/User.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Entity/User.php @@ -53,9 +53,9 @@ class User implements UserInterface, \Serializable private $salt; /** - * @Password() + * @ORM\Column(type="string", length=250, nullable=true) */ - private $tempopassword; + private $passwordad; /** * @ORM\Column(type="string", length=60, unique=true) @@ -392,12 +392,20 @@ class User implements UserInterface, \Serializable public function setPassword($password) { if($password!=$this->password&&$password!=""){ - $this->tempopassword=$password; - - $this->salt = uniqid(mt_rand(), true); + // Password encrypté format openldap + mt_srand((double)microtime()*1000000); + $this->salt = pack("CCCC", mt_rand(), mt_rand(), mt_rand(), mt_rand()); $hash = "{SSHA}" . base64_encode(pack("H*", sha1($password . $this->salt)) . $this->salt); - $this->password = $hash; + + // Password encrypté AD + $newPassword = "\"" . $password . "\""; + $len = strlen($newPassword); + $newPassw = ""; + for($i=0;$i<$len;$i++) { + $newPassw .= "{$newPassword{$i}}\000"; + } + $this->passwordad = $newPassw; } return $this; @@ -405,8 +413,8 @@ class User implements UserInterface, \Serializable public function setPasswordDirect($password) { + // Permet de setter le password généré lors de l'inscription $this->password = $password; - return $this; } @@ -2011,4 +2019,28 @@ class User implements UserInterface, \Serializable { return $this->permmodoprofil; } + + /** + * Set passwordad. + * + * @param string|null $passwordad + * + * @return User + */ + public function setPasswordad($passwordad = null) + { + $this->passwordad = $passwordad; + + return $this; + } + + /** + * Get passwordad. + * + * @return string|null + */ + public function getPasswordad() + { + return $this->passwordad; + } } diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncGroup.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncGroup.php index 7400d96c..84800e40 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncGroup.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncGroup.php @@ -42,6 +42,7 @@ class syncGroup implements EventSubscriber $this->shouldSync = $args->hasChangedField('label') || $args->hasChangedField('description') || $args->hasChangedField('owner') || + $args->hasChangedField('email') || $args->hasChangedField('fgcanshare'); if($args->hasChangedField('label')) $this->oldid=$args->getOldValue('label'); diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncUser.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncUser.php index d67b4b52..cb915576 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncUser.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncUser.php @@ -18,11 +18,13 @@ class syncUser implements EventSubscriber protected $container; protected $shouldSync; protected $baseUser; + protected $ldap_username; - public function __construct($container, EntityManager $em) { + public function __construct($container, EntityManager $em, $ldap_username) { $this->container = $container; $this->em = $em; $this->shouldSync = true; + $this->ldap_username = $ldap_username; } public function getSubscribedEvents() @@ -116,9 +118,9 @@ class syncUser implements EventSubscriber $ldap = $this->container->get('cadoles.core.service.ldap'); if($ldap->isEnabled()) { // On recherche l'utilisateur dans l'annuaire - $criteria = '(uid='.$user->getUsername().')'; + $criteria = '('.$this->ldap_username.'='.$user->getUsername().')'; $subbranch=$this->baseUser; - $results = $ldap->search($criteria, array('uid'), $subbranch); + $results = $ldap->search($criteria, array($this->ldap_username), $subbranch); if(count($results)) { $ldap->deleteUser($user); @@ -138,9 +140,9 @@ class syncUser implements EventSubscriber $ldap = $this->container->get('cadoles.core.service.ldap'); if($ldap->isEnabled()) { // On recherche l'utilisateur dans l'annuaire - $criteria = '(uid='.$user->getUsername().')'; + $criteria = '('.$this->ldap_username.'='.$user->getUsername().')'; $subbranch=$this->baseUser; - $results = $ldap->search($criteria, array('uid'), $subbranch); + $results = $ldap->search($criteria, array($this->ldap_username), $subbranch); // Mise à jour si elle existe if(count($results) > 0) { diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Form/GroupType.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Form/GroupType.php index 38f1c859..34b9b044 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Form/GroupType.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Form/GroupType.php @@ -83,6 +83,15 @@ class GroupType extends AbstractType } if($options["access"]=="config") { + $builder->add('email', + EmailType::class, array( + "label" =>"Mail", + "disabled" => ($options["mode"]=="delete"?true:false), + "required" => false, + "attr" => array("class" => "form-control", "style" => "margin-bottom:15px") + ) + ); + $builder->add("fgcancreatepage", ChoiceType::class,array( "label" =>"Permission de créer des Pages", diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/services.yml b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/services.yml index 0b8f06fb..0d85276d 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/services.yml +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/config/services.yml @@ -51,6 +51,7 @@ services: arguments: - "@service_container" - "@doctrine.orm.entity_manager" + - %ldap_username% tags: - { name: doctrine.event_subscriber } calls: @@ -107,6 +108,7 @@ services: - %ldap_host% - %ldap_port% - %ldap_tls% + - %ldap_type% calls: - [setUser, ["%ldap_user%"]] - [setPassword, ["%ldap_password%"]] diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Group/edit.html.twig b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Group/edit.html.twig index 6666532f..ec6abbc3 100755 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Group/edit.html.twig +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Resources/views/Group/edit.html.twig @@ -62,6 +62,7 @@ {% endif %} {% endif %} {{ form_row(form.description) }} + {% if form.email is defined %} {{ form_row(form.email) }} {% endif %} {{ form_row(form.color) }} diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/Service/ldapService.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/Service/ldapService.php index b61ea002..8b0a94d5 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/Service/ldapService.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/Service/ldapService.php @@ -14,6 +14,7 @@ class ldapService protected $host; protected $port; protected $tls; + protected $type; protected $baseDN; protected $baseUser; protected $baseNiveau01; @@ -25,11 +26,12 @@ class ldapService private $connection = null; private $ldapSync = false; - public function __construct($host, $port, $tls) + public function __construct($host, $port, $tls, $type) { $this->host = $host; $this->port = $port; $this->tls = $tls; + $this->type = $type; } public function isEnabled() { @@ -151,6 +153,7 @@ class ldapService } } + $result = ldap_add($connection, $dn, $attrs); if(!$result) $this->ldapError(); @@ -163,6 +166,9 @@ class ldapService $attrs = array(); $this->fillAttributesUser($user, $attrs); + + unset($attrs["cn"]); + $dn = $this->getUserDN($user); foreach($attrs as $key => $value){ @@ -172,9 +178,23 @@ class ldapService unset($attrs[$key]); } } + /* + $pwdtxt="Emphyrio01*"; + $newPassword = "\"" . $pwdtxt . "\""; + $len = strlen($newPassword); + $newPassw = ""; + + for($i=0;$i<$len;$i++) { + $newPassw .= "{$newPassword{$i}}\000"; + } + + $attrs["unicodepwd"] = $newPassw; + */ $result = ldap_modify($connection, $dn, $attrs); - if(!$result) $this->ldapError(); + if(!$result) $this->ldapError(); + + } public function addGroupUser(User $user) { @@ -267,13 +287,22 @@ class ldapService } private function fillAttributesUser(User $user, array &$attrs) { - $attrs['uid'] = $user->getUsername(); + if($this->type=="LDAP") { + $attrs['uid'] = $user->getUsername(); + $attrs['cn'] = $user->getFirstname() . ' ' . $user->getLastname(); + } + else { + $attrs['cn'] = $user->getUsername(); + $attrs['sAMAccountName'] = $user->getUsername(); + $attrs["unicodepwd"] = $user->getPasswordad(); + $attrs["userAccountControl"] = 544; + } + $attrs['givenName'] = $user->getFirstname(); $attrs['sn'] = $user->getLastname(); $attrs['mail'] = $user->getEmail(); - $attrs['displayName'] = $user->getFirstname() . ' ' . $user->getLastname(); - $attrs['userPassword'] = $user->getPassword(); - $attrs['cn'] = $user->getFirstname() . ' ' . $user->getLastname(); + $attrs['displayName'] = $user->getFirstname() . ' ' . $user->getLastname(); + $attrs['userpassword'] = $user->getPassword(); $attrs['siren'] = $user->getNiveau01()->getSiren(); $attrs['niveau01'] = $user->getNiveau01()->getLabel(); $attrs['siret'] = ($user->getNiveau02()!==null?$user->getNiveau02()->getSiret():""); @@ -290,10 +319,14 @@ class ldapService $attrs['belongingpopulation'] = $user->getBelongingpopulation(); $attrs['birthcountry'] = ($user->getBirthcountry()!==null?$user->getBirthcountry()->getCode():""); $attrs['birthplace'] = ($user->getBirthplace()!==null?$user->getBirthplace()->getCode():""); + } public function getUserDN(User $user) { - return 'uid='.$user->getUsername().','.$this->baseUser; + if($this->type=="LDAP") + return 'uid='.$user->getUsername().','.$this->baseUser; + else + return 'cn='.$user->getUsername().','.$this->baseUser; } //================================================================================================================================================================== @@ -322,11 +355,14 @@ class ldapService } public function modifyNiveau01(Niveau01 $niveau01,$oldid){ + $dn = $this->baseDN; $connection = $this->connect(); $attrs = array(); $this->fillAttributesNiveau01($niveau01, $attrs); + unset($attrs["cn"]); + $dn = $this->getNiveau01DN($niveau01->getLabel()); foreach($attrs as $key => $value){ @@ -354,12 +390,21 @@ class ldapService } private function getObjectClassesNiveau01() { - $oc = array( - 'top', - 'posixGroup', - 'cadolesGroup', - 'cadolesSiren' - ); + if($this->type=="LDAP") + $oc = array( + 'top', + 'posixGroup', + 'cadolesGroup', + 'cadolesSiren' + ); + else + $oc = array( + 'top', + 'Group', + 'cadolesGroup', + 'cadolesSiren' + ); + return $oc; } @@ -385,7 +430,7 @@ class ldapService $attrs = array(); $attrs['objectclass'] = $this->getObjectClassesNiveau02(); $this->fillAttributesNiveau02($niveau02, $attrs); - + foreach($attrs as $key => $value){ if(empty($value)){ unset($attrs[$key]); @@ -404,6 +449,8 @@ class ldapService $attrs = array(); $this->fillAttributesNiveau02($niveau02, $attrs); + unset($attrs["cn"]); + $dn = $this->getNiveau02DN($niveau02->getLabel()); foreach($attrs as $key => $value){ @@ -431,12 +478,21 @@ class ldapService } private function getObjectClassesNiveau02() { - $oc = array( - 'top', - 'posixGroup', - 'cadolesGroup', - 'cadolesSiret' - ); + if($this->type=="LDAP") + $oc = array( + 'top', + 'posixGroup', + 'cadolesGroup', + 'cadolesSiret' + ); + else + $oc = array( + 'top', + 'Group', + 'cadolesGroup', + 'cadolesSiret' + ); + return $oc; } @@ -469,7 +525,7 @@ class ldapService unset($attrs[$key]); } } - + $result = ldap_add($connection, $dn, $attrs); if(!$result) $this->ldapError(); @@ -482,6 +538,8 @@ class ldapService $attrs = array(); $this->fillAttributesGroup($group, $attrs); + unset($attrs["cn"]); + $dn = $this->getGroupDN($group->getLabel()); foreach($attrs as $key => $value){ @@ -509,17 +567,26 @@ class ldapService } private function getObjectClassesGroup() { - $oc = array( - 'top', - 'posixGroup', - 'cadolesGroup' - ); + if($this->type=="LDAP") + $oc = array( + 'top', + 'posixGroup', + 'cadolesGroup' + ); + else + $oc = array( + 'top', + 'Group', + 'cadolesGroup' + ); + return $oc; } private function fillAttributesGroup(Group $group, array &$attrs) { $attrs['cn'] = $group->getLabel(); $attrs['gidNumber'] = $group->getId(); + $attrs['mail'] = $group->getId(); } public function getGroupDN($id) { diff --git a/tmpl/ninegate-template.yml b/tmpl/ninegate-template.yml index 9e86cfed..2dc0e22d 100644 --- a/tmpl/ninegate-template.yml +++ b/tmpl/ninegate-template.yml @@ -115,6 +115,7 @@ parameters: %end if # Information de base de l'annuaire + ldap_type: %%getVar("ninegate_ldaptype", 'LDAP') ldap_host: ldap://%%adresse_ip_ldap ldap_port: %%ldap_port %if %%getVar("ldap_tls","non") == "oui" @@ -519,6 +520,14 @@ parameters: user_attr_cas_group: %end if +%if %%getVar("ninegate_ssosynchroitem", 'non') == "oui" + ssosynchroitem: true + user_attr_cas_item: %%ninegate_ssoreqitem +%else + ssosynchroitem: false + user_attr_cas_item: +%end if + %if %%is_defined("ninegate_smtpport") mailer_port: '%%ninegate_smtpport' mailer_encryption: %%ninegate_smtpencryption