svg
This commit is contained in:
parent
c3a3fbfec8
commit
05a2fe97bc
@ -112,13 +112,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- MODULE CRON -->
|
||||
<variable type="oui/non" name='ninegate_activate_cron' description='Activer le module CRON' mandatory='True'>
|
||||
<value>oui</value>
|
||||
</variable>
|
||||
|
||||
|
||||
|
||||
<!-- MODULE WEBSOCKET -->
|
||||
<variable type="oui/non" name='ninegate_activate_websocket' description='Activer le module WEBSOCKET' mandatory='True'>
|
||||
<value>oui</value>
|
||||
</variable>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- LIMESURVEY -->
|
||||
<variable type="oui/non" name='ninegate_activate_widlimesurvey' description='Activer le widget Limesurvey' mandatory='True'>
|
||||
@ -129,9 +136,6 @@
|
||||
<variable type='string' name='ninegate_widlimesurvey_apikey' description='API Key de votre Limesurvey' mandatory='True' />
|
||||
<variable type='string' name='ninegate_widlimesurvey_syncenvole' description='URL Posh-Profil pour synchronisation Limesurvey' mandatory='True' />
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- MOODLE -->
|
||||
<variable type="oui/non" name='ninegate_activate_widmoodle' description='Activer le widget Moodle' mandatory='True'>
|
||||
<value>non</value>
|
||||
@ -140,17 +144,12 @@
|
||||
<variable type='string' name='ninegate_widmoodle_apikey' description='API Key de votre Moodle' mandatory='True' />
|
||||
<variable type='string' name='ninegate_widmoodle_syncenvole' description='URL Posh-Profil pour synchronisation Moodle' mandatory='True' />
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- OPENSONDAGE -->
|
||||
<variable type="oui/non" name='ninegate_activate_widopensondage' description='Activer le widget Opensondage' mandatory='True'>
|
||||
<value>non</value>
|
||||
</variable>
|
||||
<variable type='string' name='ninegate_widopensondage_url' description='URL complète de votre Opensondage' mandatory='True' />
|
||||
|
||||
|
||||
|
||||
<!-- PIWIK -->
|
||||
<variable type="oui/non" name='ninegate_activate_widpiwik' description='Activer le widget Piwik' mandatory='True'>
|
||||
<value>non</value>
|
||||
@ -158,7 +157,6 @@
|
||||
<variable type='string' name='ninegate_widpiwik_url' description='URL complète de votre Piwik' mandatory='True' />
|
||||
<variable type='string' name='ninegate_widpiwik_syncenvole' description='URL Posh-Profil pour synchronisation Piwik' mandatory='True' />
|
||||
|
||||
|
||||
<!-- WORDPRESS -->
|
||||
<variable type="oui/non" name='ninegate_activate_widwordpress' description='Activer le widget Wordpress' mandatory='True'>
|
||||
<value>non</value>
|
||||
@ -168,6 +166,17 @@
|
||||
|
||||
|
||||
|
||||
<!-- WEBSOCKET -->
|
||||
<variable type='string' name='ninegate_websocket_url' description='Host du serveur Websocket' mandatory='True' />
|
||||
<variable type='string' name='ninegate_websocket_portexterne' description='Pot de commuinication externe du serveur Websocket' mandatory='True' >
|
||||
<value>5555</value>
|
||||
</variable>
|
||||
<variable type='string' name='ninegate_websocket_portinterne' description='Pot de commuinication externe du serveur Websocket' mandatory='True'>
|
||||
<value>5556</value>
|
||||
</variable>
|
||||
|
||||
|
||||
|
||||
<!-- EMAIL -->
|
||||
<variable type='string' name='ninegate_noreply' description='Adresse mail utilisé pour le noreply' mandatory='True' />
|
||||
<variable type='string' name='ninegate_smtphost' description='Host du serveur SMTP' />
|
||||
@ -193,6 +202,7 @@
|
||||
<separator name="ninegate_niveau01label">Paramètres associés aux look de l'application</separator>
|
||||
<separator name="ninegate_activate_portal">Paramètres associés aux modules à activer</separator>
|
||||
<separator name="ninegate_activate_widlimesurvey">Paramètres associés au Portail</separator>
|
||||
<separator name="ninegate_websocket_url">Paramètres associés au Serveur WEBSOCKET</separator>
|
||||
<separator name="ninegate_noreply">Paramètres associés aux Mails</separator>
|
||||
<separator name="ninegate_db_mode">Paramètres associés à la Base de Données</separator>
|
||||
</separators>
|
||||
@ -249,6 +259,7 @@
|
||||
<target type='variable'>ninegate_activate_notice</target>
|
||||
<target type='variable'>ninegate_activate_syncenvole</target>
|
||||
<target type='variable'>ninegate_activate_cron</target>
|
||||
<target type='variable'>ninegate_activate_websocket</target>
|
||||
|
||||
<target type='variable'>ninegate_noreply</target>
|
||||
<target type='variable'>ninegate_smtphost</target>
|
||||
@ -365,6 +376,24 @@
|
||||
|
||||
|
||||
|
||||
<!-- AFFICHAGE EN FONCTION DU MODULE WEBSOCKET -->
|
||||
<condition name='hidden_if_in' source='ninegate_activate_websocket'>
|
||||
<param>non</param>
|
||||
|
||||
<target type='variable'>ninegate_websocket_url</target>
|
||||
<target type='variable'>ninegate_websocket_portinterne</target>
|
||||
<target type='variable'>ninegate_websocket_portexterne</target>
|
||||
</condition>
|
||||
|
||||
<fill name='calc_multi_condition' target='ninegate_websocket_url'>
|
||||
<param>oui</param>
|
||||
<param type='eole' name='condition_1' hidden='False'>activer_apache</param>
|
||||
<param type='eole' name='match' hidden='False'>web_url</param>
|
||||
<param name='default_mismatch'>None</param>
|
||||
</fill>
|
||||
|
||||
|
||||
|
||||
<!-- AFFICHAGE EN FONCTION DU WIDGET LIMESURVEY -->
|
||||
<fill name='calc_multi_condition' target='ninegate_activate_widlimesurvey'>
|
||||
<param>oui</param>
|
||||
|
@ -136,10 +136,14 @@ gos_web_socket:
|
||||
shared_config: true
|
||||
server:
|
||||
port: %websocket_port% #The port the socket server will listen on
|
||||
host: %weburl% #The host ip to bind to
|
||||
host: %websocket_host% #The host ip to bind to
|
||||
router:
|
||||
resources:
|
||||
- "@CadolesWebsocketBundle/Resources/config/topic.yml"
|
||||
pushers:
|
||||
wamp:
|
||||
host: %websocket_host%
|
||||
port: %websocket_portinterne%
|
||||
|
||||
# ckeditor configuration
|
||||
ivory_ck_editor:
|
||||
|
@ -41,7 +41,10 @@ security:
|
||||
check_path: /saml/acs
|
||||
|
||||
access_control:
|
||||
- { path: ^/websocket, roles: [ROLE_ADMIN, ROLE_MODO, ROLE_USER] }
|
||||
- { path: ^/user, roles: [ROLE_ADMIN, ROLE_MODO, ROLE_USER] }
|
||||
- { path: ^/websocket, roles: [ROLE_ADMIN, ROLE_MODO, ROLE_ANIM, ROLE_USER] }
|
||||
- { path: ^/user/group/submit, roles: [ROLE_ADMIN, ROLE_MODO, ROLE_ANIM] }
|
||||
- { path: ^/user/group/update, roles: [ROLE_ADMIN, ROLE_MODO, ROLE_ANIM] }
|
||||
- { path: ^/user/group/delete, roles: [ROLE_ADMIN, ROLE_MODO, ROLE_ANIM] }
|
||||
- { path: ^/user, roles: [ROLE_ADMIN, ROLE_MODO, ROLE_ANIM, ROLE_USER] }
|
||||
- { path: ^/config, roles: [ROLE_ADMIN, ROLE_MODO] }
|
||||
|
||||
|
@ -9,6 +9,7 @@ twig:
|
||||
cron_activate: %cron_activate%
|
||||
portal_activate: %portal_activate%
|
||||
item_activate: %item_activate%
|
||||
websocket_activate: %websocket_activate%
|
||||
|
||||
activate_widsonde: %activate_widsonde%
|
||||
widsonde_url: %widsonde_url%
|
||||
|
@ -22,6 +22,7 @@
|
||||
"doctrine/doctrine-migrations-bundle": "^1.2",
|
||||
"doctrine/orm": "^2.5",
|
||||
"egeloen/ckeditor-bundle": "^6.0",
|
||||
"gos/web-socket-bundle": "1.*",
|
||||
"gregwar/captcha-bundle": "^2.0",
|
||||
"incenteev/composer-parameter-handler": "^2.0",
|
||||
"jasig/phpcas": "~1.3",
|
||||
|
968
src/ninegate-1.0/composer.lock
generated
968
src/ninegate-1.0/composer.lock
generated
@ -4,9 +4,62 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"hash": "f60fc0c21429506c604cf52a1c57f8b1",
|
||||
"content-hash": "ad29a4c36418b2be7c6f60297d160623",
|
||||
"hash": "0430b523c39e2d254cfe1fb91666119b",
|
||||
"content-hash": "36178f772c0f0ff6bd5ac90edd474c25",
|
||||
"packages": [
|
||||
{
|
||||
"name": "cboden/ratchet",
|
||||
"version": "v0.4.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ratchetphp/Ratchet.git",
|
||||
"reference": "0d31f3a8ad4795fd48397712709e55cd07f51360"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/ratchetphp/Ratchet/zipball/0d31f3a8ad4795fd48397712709e55cd07f51360",
|
||||
"reference": "0d31f3a8ad4795fd48397712709e55cd07f51360",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzlehttp/psr7": "^1.0",
|
||||
"php": ">=5.4.2",
|
||||
"ratchet/rfc6455": "^0.2",
|
||||
"react/socket": "^1.0 || ^0.8 || ^0.7 || ^0.6 || ^0.5",
|
||||
"symfony/http-foundation": "^2.6|^3.0|^4.0",
|
||||
"symfony/routing": "^2.6|^3.0|^4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.8"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Ratchet\\": "src/Ratchet"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Chris Boden",
|
||||
"email": "cboden@gmail.com",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "PHP WebSocket library",
|
||||
"homepage": "http://socketo.me",
|
||||
"keywords": [
|
||||
"Ratchet",
|
||||
"WebSockets",
|
||||
"server",
|
||||
"sockets",
|
||||
"websocket"
|
||||
],
|
||||
"time": "2017-12-12 00:49:31"
|
||||
},
|
||||
{
|
||||
"name": "composer/ca-bundle",
|
||||
"version": "1.1.4",
|
||||
@ -589,16 +642,16 @@
|
||||
},
|
||||
{
|
||||
"name": "doctrine/doctrine-bundle",
|
||||
"version": "1.10.2",
|
||||
"version": "1.10.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/DoctrineBundle.git",
|
||||
"reference": "1f99e6645030542079c57d4680601a4a8778a1bd"
|
||||
"reference": "907dafe1ba73c4c3b0f0ae8cfc1b9958c002e58c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/1f99e6645030542079c57d4680601a4a8778a1bd",
|
||||
"reference": "1f99e6645030542079c57d4680601a4a8778a1bd",
|
||||
"url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/907dafe1ba73c4c3b0f0ae8cfc1b9958c002e58c",
|
||||
"reference": "907dafe1ba73c4c3b0f0ae8cfc1b9958c002e58c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -670,7 +723,7 @@
|
||||
"orm",
|
||||
"persistence"
|
||||
],
|
||||
"time": "2019-02-06 13:18:04"
|
||||
"time": "2019-04-04 08:03:53"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/doctrine-cache-bundle",
|
||||
@ -1004,21 +1057,24 @@
|
||||
},
|
||||
{
|
||||
"name": "doctrine/lexer",
|
||||
"version": "v1.0.1",
|
||||
"version": "1.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/lexer.git",
|
||||
"reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
|
||||
"reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
|
||||
"reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
|
||||
"url": "https://api.github.com/repos/doctrine/lexer/zipball/1febd6c3ef84253d7c815bed85fc622ad207a9f8",
|
||||
"reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
@ -1026,8 +1082,8 @@
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Doctrine\\Common\\Lexer\\": "lib/"
|
||||
"psr-4": {
|
||||
"Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
@ -1048,13 +1104,16 @@
|
||||
"email": "schmittjoh@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
|
||||
"homepage": "http://www.doctrine-project.org",
|
||||
"description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
|
||||
"homepage": "https://www.doctrine-project.org/projects/lexer.html",
|
||||
"keywords": [
|
||||
"annotations",
|
||||
"docblock",
|
||||
"lexer",
|
||||
"parser"
|
||||
"parser",
|
||||
"php"
|
||||
],
|
||||
"time": "2014-09-09 13:34:57"
|
||||
"time": "2019-06-08 11:03:04"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/migrations",
|
||||
@ -1330,30 +1389,25 @@
|
||||
},
|
||||
{
|
||||
"name": "evenement/evenement",
|
||||
"version": "v2.1.0",
|
||||
"version": "v3.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/igorw/evenement.git",
|
||||
"reference": "6ba9a777870ab49f417e703229d53931ed40fd7a"
|
||||
"reference": "531bfb9d15f8aa57454f5f0285b18bec903b8fb7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/igorw/evenement/zipball/6ba9a777870ab49f417e703229d53931ed40fd7a",
|
||||
"reference": "6ba9a777870ab49f417e703229d53931ed40fd7a",
|
||||
"url": "https://api.github.com/repos/igorw/evenement/zipball/531bfb9d15f8aa57454f5f0285b18bec903b8fb7",
|
||||
"reference": "531bfb9d15f8aa57454f5f0285b18bec903b8fb7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.4.0"
|
||||
"php": ">=7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^6.0||^5.7||^4.8.35"
|
||||
"phpunit/phpunit": "^6.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Evenement": "src"
|
||||
@ -1374,7 +1428,7 @@
|
||||
"event-dispatcher",
|
||||
"event-emitter"
|
||||
],
|
||||
"time": "2017-07-17 17:39:19"
|
||||
"time": "2017-07-23 21:35:13"
|
||||
},
|
||||
{
|
||||
"name": "fig/link-util",
|
||||
@ -1538,137 +1592,39 @@
|
||||
],
|
||||
"time": "2018-10-04 17:09:23"
|
||||
},
|
||||
{
|
||||
"name": "gos/ratchet",
|
||||
"version": "v0.3.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/GeniusesOfSymfony/Ratchet.git",
|
||||
"reference": "f72ee4f70f24da1fc232537088e6c368ae4211e0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/GeniusesOfSymfony/Ratchet/zipball/f72ee4f70f24da1fc232537088e6c368ae4211e0",
|
||||
"reference": "f72ee4f70f24da1fc232537088e6c368ae4211e0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzle/http": "^3.6",
|
||||
"php": ">=5.3.9",
|
||||
"react/socket": "^0.3 || ^0.4",
|
||||
"symfony/http-foundation": "^2.2|^3.0|^4.0",
|
||||
"symfony/routing": "^2.2|^3.0|^4.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Ratchet\\": "src/Ratchet"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Chris Boden",
|
||||
"email": "cboden@gmail.com",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "PHP WebSocket library",
|
||||
"homepage": "http://socketo.me",
|
||||
"keywords": [
|
||||
"Ratchet",
|
||||
"WebSockets",
|
||||
"server",
|
||||
"sockets"
|
||||
],
|
||||
"time": "2017-12-12 16:15:11"
|
||||
},
|
||||
{
|
||||
"name": "gos/ratchet-stack",
|
||||
"version": "v0.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/GeniusesOfSymfony/RatchetStack.git",
|
||||
"reference": "a7dfc817bf8b786c575022e290ab0769dbf09814"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/GeniusesOfSymfony/RatchetStack/zipball/a7dfc817bf8b786c575022e290ab0769dbf09814",
|
||||
"reference": "a7dfc817bf8b786c575022e290ab0769dbf09814",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"cboden/ratchet": "^0.3|^0.4",
|
||||
"php": ">=5.3"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Gos\\Component\\RatchetStack\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Johann Saunier",
|
||||
"email": "johann_27@hotmail.fr"
|
||||
}
|
||||
],
|
||||
"description": "Ratchet Stack",
|
||||
"homepage": "https://github.com/GeniusesOfSymfony/RatchetStack",
|
||||
"keywords": [
|
||||
"Ratchet",
|
||||
"application",
|
||||
"stack"
|
||||
],
|
||||
"time": "2018-05-02 13:03:51"
|
||||
},
|
||||
{
|
||||
"name": "gos/web-socket-bundle",
|
||||
"version": "v1.8.11",
|
||||
"version": "v1.8.13",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/GeniusesOfSymfony/WebSocketBundle.git",
|
||||
"reference": "a26b71e9014a73b95ddbb02a813157563a296a48"
|
||||
"reference": "016f4b49a16731945fc3ee1e0781f53167e393cf"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/GeniusesOfSymfony/WebSocketBundle/zipball/a26b71e9014a73b95ddbb02a813157563a296a48",
|
||||
"reference": "a26b71e9014a73b95ddbb02a813157563a296a48",
|
||||
"url": "https://api.github.com/repos/GeniusesOfSymfony/WebSocketBundle/zipball/016f4b49a16731945fc3ee1e0781f53167e393cf",
|
||||
"reference": "016f4b49a16731945fc3ee1e0781f53167e393cf",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"gos/pnctl-event-loop-emitter": "~0.1",
|
||||
"gos/pubsub-router-bundle": "~0.2",
|
||||
"gos/ratchet": "~0.3.5",
|
||||
"gos/ratchet-stack": "~0.1",
|
||||
"gos/websocket-client": "~0.1.0",
|
||||
"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"
|
||||
},
|
||||
"replace": {
|
||||
"cboden/ratchet": "~0.3.0"
|
||||
"symfony/framework-bundle": "^2.3|^3.0|^4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8"
|
||||
},
|
||||
"suggest": {
|
||||
"doctrine/cache": "* to use doctrine/cache as a client driver",
|
||||
"ext-amqp": "*",
|
||||
"ext-libev": "*",
|
||||
"ext-libevent": ">=0.0.5",
|
||||
"ext-zmq": "*",
|
||||
"ocramius/proxy-manager": "~1.0",
|
||||
"symfony/cache": ">=3.1 to use symfony/cache as a client driver",
|
||||
"symfony/proxy-manager-bridge": "~2.3"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
@ -1705,7 +1661,7 @@
|
||||
"io",
|
||||
"websocket"
|
||||
],
|
||||
"time": "2017-09-29 16:00:43"
|
||||
"time": "2018-07-29 14:31:46"
|
||||
},
|
||||
{
|
||||
"name": "gos/websocket-client",
|
||||
@ -1864,208 +1820,6 @@
|
||||
],
|
||||
"time": "2018-11-20 10:41:34"
|
||||
},
|
||||
{
|
||||
"name": "guzzle/common",
|
||||
"version": "v3.9.2",
|
||||
"target-dir": "Guzzle/Common",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Guzzle3/common.git",
|
||||
"reference": "2e36af7cf2ce3ea1f2d7c2831843b883a8e7b7dc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Guzzle3/common/zipball/2e36af7cf2ce3ea1f2d7c2831843b883a8e7b7dc",
|
||||
"reference": "2e36af7cf2ce3ea1f2d7c2831843b883a8e7b7dc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.2",
|
||||
"symfony/event-dispatcher": ">=2.1"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.7-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Guzzle\\Common": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "Common libraries used by Guzzle",
|
||||
"homepage": "http://guzzlephp.org/",
|
||||
"keywords": [
|
||||
"collection",
|
||||
"common",
|
||||
"event",
|
||||
"exception"
|
||||
],
|
||||
"abandoned": "guzzle/guzzle",
|
||||
"time": "2014-08-11 04:32:36"
|
||||
},
|
||||
{
|
||||
"name": "guzzle/http",
|
||||
"version": "v3.9.2",
|
||||
"target-dir": "Guzzle/Http",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Guzzle3/http.git",
|
||||
"reference": "1e8dd1e2ba9dc42332396f39fbfab950b2301dc5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Guzzle3/http/zipball/1e8dd1e2ba9dc42332396f39fbfab950b2301dc5",
|
||||
"reference": "1e8dd1e2ba9dc42332396f39fbfab950b2301dc5",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzle/common": "self.version",
|
||||
"guzzle/parser": "self.version",
|
||||
"guzzle/stream": "self.version",
|
||||
"php": ">=5.3.2"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-curl": "*"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.7-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Guzzle\\Http": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
}
|
||||
],
|
||||
"description": "HTTP libraries used by Guzzle",
|
||||
"homepage": "http://guzzlephp.org/",
|
||||
"keywords": [
|
||||
"Guzzle",
|
||||
"client",
|
||||
"curl",
|
||||
"http",
|
||||
"http client"
|
||||
],
|
||||
"abandoned": "guzzle/guzzle",
|
||||
"time": "2014-08-11 04:32:36"
|
||||
},
|
||||
{
|
||||
"name": "guzzle/parser",
|
||||
"version": "v3.9.2",
|
||||
"target-dir": "Guzzle/Parser",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Guzzle3/parser.git",
|
||||
"reference": "6874d171318a8e93eb6d224cf85e4678490b625c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Guzzle3/parser/zipball/6874d171318a8e93eb6d224cf85e4678490b625c",
|
||||
"reference": "6874d171318a8e93eb6d224cf85e4678490b625c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.2"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.7-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Guzzle\\Parser": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "Interchangeable parsers used by Guzzle",
|
||||
"homepage": "http://guzzlephp.org/",
|
||||
"keywords": [
|
||||
"URI Template",
|
||||
"cookie",
|
||||
"http",
|
||||
"message",
|
||||
"url"
|
||||
],
|
||||
"abandoned": "guzzle/guzzle",
|
||||
"time": "2014-02-05 18:29:46"
|
||||
},
|
||||
{
|
||||
"name": "guzzle/stream",
|
||||
"version": "v3.9.2",
|
||||
"target-dir": "Guzzle/Stream",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Guzzle3/stream.git",
|
||||
"reference": "60c7fed02e98d2c518dae8f97874c8f4622100f0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Guzzle3/stream/zipball/60c7fed02e98d2c518dae8f97874c8f4622100f0",
|
||||
"reference": "60c7fed02e98d2c518dae8f97874c8f4622100f0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzle/common": "self.version",
|
||||
"php": ">=5.3.2"
|
||||
},
|
||||
"suggest": {
|
||||
"guzzle/http": "To convert Guzzle request objects to PHP streams"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.7-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Guzzle\\Stream": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
}
|
||||
],
|
||||
"description": "Guzzle stream wrapper component",
|
||||
"homepage": "http://guzzlephp.org/",
|
||||
"keywords": [
|
||||
"Guzzle",
|
||||
"component",
|
||||
"stream"
|
||||
],
|
||||
"abandoned": "guzzle/guzzle",
|
||||
"time": "2014-05-01 21:36:02"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/guzzle",
|
||||
"version": "6.3.3",
|
||||
@ -2184,33 +1938,37 @@
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
"version": "1.5.2",
|
||||
"version": "1.6.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/psr7.git",
|
||||
"reference": "9f83dded91781a01c63574e387eaa769be769115"
|
||||
"reference": "239400de7a173fe9901b9ac7c06497751f00727a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/9f83dded91781a01c63574e387eaa769be769115",
|
||||
"reference": "9f83dded91781a01c63574e387eaa769be769115",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a",
|
||||
"reference": "239400de7a173fe9901b9ac7c06497751f00727a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.4.0",
|
||||
"psr/http-message": "~1.0",
|
||||
"ralouphie/getallheaders": "^2.0.5"
|
||||
"ralouphie/getallheaders": "^2.0.5 || ^3.0.0"
|
||||
},
|
||||
"provide": {
|
||||
"psr/http-message-implementation": "1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-zlib": "*",
|
||||
"phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8"
|
||||
},
|
||||
"suggest": {
|
||||
"zendframework/zend-httphandlerrunner": "Emit PSR-7 responses"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.5-dev"
|
||||
"dev-master": "1.6-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -2247,7 +2005,7 @@
|
||||
"uri",
|
||||
"url"
|
||||
],
|
||||
"time": "2018-12-04 20:46:45"
|
||||
"time": "2019-07-01 23:21:34"
|
||||
},
|
||||
{
|
||||
"name": "incenteev/composer-parameter-handler",
|
||||
@ -2726,91 +2484,40 @@
|
||||
],
|
||||
"time": "2018-11-05 09:00:11"
|
||||
},
|
||||
{
|
||||
"name": "ocramius/package-versions",
|
||||
"version": "1.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Ocramius/PackageVersions.git",
|
||||
"reference": "ad8a245decad4897cc6b432743913dad0d69753c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/ad8a245decad4897cc6b432743913dad0d69753c",
|
||||
"reference": "ad8a245decad4897cc6b432743913dad0d69753c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer-plugin-api": "^1.0",
|
||||
"php": "~7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/composer": "^1.3",
|
||||
"ext-zip": "*",
|
||||
"humbug/humbug": "dev-master",
|
||||
"phpunit/phpunit": "^6.4"
|
||||
},
|
||||
"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": "2017-11-24 11:07:03"
|
||||
},
|
||||
{
|
||||
"name": "ocramius/proxy-manager",
|
||||
"version": "2.0.4",
|
||||
"version": "1.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Ocramius/ProxyManager.git",
|
||||
"reference": "a55d08229f4f614bf335759ed0cf63378feeb2e6"
|
||||
"reference": "57e9272ec0e8deccf09421596e0e2252df440e11"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/a55d08229f4f614bf335759ed0cf63378feeb2e6",
|
||||
"reference": "a55d08229f4f614bf335759ed0cf63378feeb2e6",
|
||||
"url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/57e9272ec0e8deccf09421596e0e2252df440e11",
|
||||
"reference": "57e9272ec0e8deccf09421596e0e2252df440e11",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ocramius/package-versions": "^1.0",
|
||||
"php": "7.0.0 - 7.0.5 || ^7.0.7",
|
||||
"zendframework/zend-code": "3.0.0 - 3.0.2 || ^3.0.4"
|
||||
"php": ">=5.3.3",
|
||||
"zendframework/zend-code": ">2.2.5,<3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"couscous/couscous": "^1.4.0",
|
||||
"ext-phar": "*",
|
||||
"phpbench/phpbench": "^0.11.2",
|
||||
"phpunit/phpunit": "^5.4.6",
|
||||
"squizlabs/php_codesniffer": "^2.6.0"
|
||||
"phpunit/phpunit": "~4.0",
|
||||
"squizlabs/php_codesniffer": "1.5.*"
|
||||
},
|
||||
"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": "3.0.x-dev"
|
||||
"dev-master": "2.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -2826,7 +2533,7 @@
|
||||
{
|
||||
"name": "Marco Pivetta",
|
||||
"email": "ocramius@gmail.com",
|
||||
"homepage": "http://ocramius.github.io/"
|
||||
"homepage": "http://ocramius.github.com/"
|
||||
}
|
||||
],
|
||||
"description": "A library providing utilities to generate, instantiate and generally operate with Object Proxies",
|
||||
@ -2838,7 +2545,7 @@
|
||||
"proxy pattern",
|
||||
"service proxies"
|
||||
],
|
||||
"time": "2016-11-04 15:53:15"
|
||||
"time": "2015-08-09 04:28:19"
|
||||
},
|
||||
{
|
||||
"name": "oneup/uploader-bundle",
|
||||
@ -3255,24 +2962,24 @@
|
||||
},
|
||||
{
|
||||
"name": "ralouphie/getallheaders",
|
||||
"version": "2.0.5",
|
||||
"version": "3.0.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ralouphie/getallheaders.git",
|
||||
"reference": "5601c8a83fbba7ef674a7369456d12f1e0d0eafa"
|
||||
"reference": "120b605dfeb996808c31b6477290a714d356e822"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/5601c8a83fbba7ef674a7369456d12f1e0d0eafa",
|
||||
"reference": "5601c8a83fbba7ef674a7369456d12f1e0d0eafa",
|
||||
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
|
||||
"reference": "120b605dfeb996808c31b6477290a714d356e822",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3"
|
||||
"php": ">=5.6"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~3.7.0",
|
||||
"satooshi/php-coveralls": ">=1.0"
|
||||
"php-coveralls/php-coveralls": "^2.1",
|
||||
"phpunit/phpunit": "^5 || ^6.5"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@ -3291,7 +2998,7 @@
|
||||
}
|
||||
],
|
||||
"description": "A polyfill for getallheaders.",
|
||||
"time": "2016-02-11 07:05:27"
|
||||
"time": "2019-03-08 08:55:37"
|
||||
},
|
||||
{
|
||||
"name": "ramsey/uuid",
|
||||
@ -3376,29 +3083,161 @@
|
||||
"time": "2018-07-19 23:38:55"
|
||||
},
|
||||
{
|
||||
"name": "react/event-loop",
|
||||
"version": "v0.4.3",
|
||||
"name": "ratchet/rfc6455",
|
||||
"version": "v0.2.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/reactphp/event-loop.git",
|
||||
"reference": "8bde03488ee897dc6bb3d91e4e17c353f9c5252f"
|
||||
"url": "https://github.com/ratchetphp/RFC6455.git",
|
||||
"reference": "c62f7cd95ffbb6e94fd657be694fc7372ecd6e62"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/reactphp/event-loop/zipball/8bde03488ee897dc6bb3d91e4e17c353f9c5252f",
|
||||
"reference": "8bde03488ee897dc6bb3d91e4e17c353f9c5252f",
|
||||
"url": "https://api.github.com/repos/ratchetphp/RFC6455/zipball/c62f7cd95ffbb6e94fd657be694fc7372ecd6e62",
|
||||
"reference": "c62f7cd95ffbb6e94fd657be694fc7372ecd6e62",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.4.0"
|
||||
"guzzlehttp/psr7": "^1.0",
|
||||
"php": ">=5.4.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.8"
|
||||
"phpunit/phpunit": "4.8.*",
|
||||
"react/http": "^0.4.1",
|
||||
"react/socket-client": "^0.4.3"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Ratchet\\RFC6455\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Chris Boden",
|
||||
"email": "cboden@gmail.com",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "RFC6455 WebSocket protocol handler",
|
||||
"homepage": "http://socketo.me",
|
||||
"keywords": [
|
||||
"WebSockets",
|
||||
"rfc6455",
|
||||
"websocket"
|
||||
],
|
||||
"time": "2019-03-10 17:10:42"
|
||||
},
|
||||
{
|
||||
"name": "react/cache",
|
||||
"version": "v1.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/reactphp/cache.git",
|
||||
"reference": "aa10d63a1b40a36a486bdf527f28bac607ee6466"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/reactphp/cache/zipball/aa10d63a1b40a36a486bdf527f28bac607ee6466",
|
||||
"reference": "aa10d63a1b40a36a486bdf527f28bac607ee6466",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0",
|
||||
"react/promise": "~2.0|~1.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"React\\Cache\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "Async, Promise-based cache interface for ReactPHP",
|
||||
"keywords": [
|
||||
"cache",
|
||||
"caching",
|
||||
"promise",
|
||||
"reactphp"
|
||||
],
|
||||
"time": "2019-07-11 13:45:28"
|
||||
},
|
||||
{
|
||||
"name": "react/dns",
|
||||
"version": "v1.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/reactphp/dns.git",
|
||||
"reference": "a04f6f23ee40afec2e5814ddfbdf71b9e88bbc1f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/reactphp/dns/zipball/a04f6f23ee40afec2e5814ddfbdf71b9e88bbc1f",
|
||||
"reference": "a04f6f23ee40afec2e5814ddfbdf71b9e88bbc1f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0",
|
||||
"react/cache": "^1.0 || ^0.6 || ^0.5",
|
||||
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5",
|
||||
"react/promise": "^2.1 || ^1.2.1",
|
||||
"react/promise-timer": "^1.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"clue/block-react": "^1.2",
|
||||
"phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"React\\Dns\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "Async DNS resolver for ReactPHP",
|
||||
"keywords": [
|
||||
"async",
|
||||
"dns",
|
||||
"dns-resolver",
|
||||
"reactphp"
|
||||
],
|
||||
"time": "2019-07-18 09:47:47"
|
||||
},
|
||||
{
|
||||
"name": "react/event-loop",
|
||||
"version": "v0.5.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/reactphp/event-loop.git",
|
||||
"reference": "228178a947de1f7cd9296d691878569628288c6f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/reactphp/event-loop/zipball/228178a947de1f7cd9296d691878569628288c6f",
|
||||
"reference": "228178a947de1f7cd9296d691878569628288c6f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.8.35 || ^5.7 || ^6.4"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-event": "~1.0",
|
||||
"ext-libev": "*",
|
||||
"ext-libevent": ">=0.1.0"
|
||||
"ext-event": "~1.0 for ExtEventLoop",
|
||||
"ext-pcntl": "For signal handling support when using the StreamSelectLoop"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@ -3410,12 +3249,12 @@
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "Event loop abstraction layer that libraries can use for evented I/O.",
|
||||
"description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.",
|
||||
"keywords": [
|
||||
"asynchronous",
|
||||
"event-loop"
|
||||
],
|
||||
"time": "2017-04-27 10:56:23"
|
||||
"time": "2018-07-09 13:51:04"
|
||||
},
|
||||
{
|
||||
"name": "react/promise",
|
||||
@ -3464,30 +3303,84 @@
|
||||
"time": "2019-01-07 21:25:54"
|
||||
},
|
||||
{
|
||||
"name": "react/socket",
|
||||
"version": "v0.4.6",
|
||||
"name": "react/promise-timer",
|
||||
"version": "v1.5.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/reactphp/socket.git",
|
||||
"reference": "cf074e53c974df52388ebd09710a9018894745d2"
|
||||
"url": "https://github.com/reactphp/promise-timer.git",
|
||||
"reference": "35fb910604fd86b00023fc5cda477c8074ad0abc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/reactphp/socket/zipball/cf074e53c974df52388ebd09710a9018894745d2",
|
||||
"reference": "cf074e53c974df52388ebd09710a9018894745d2",
|
||||
"url": "https://api.github.com/repos/reactphp/promise-timer/zipball/35fb910604fd86b00023fc5cda477c8074ad0abc",
|
||||
"reference": "35fb910604fd86b00023fc5cda477c8074ad0abc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"evenement/evenement": "~2.0|~1.0",
|
||||
"php": ">=5.3.0",
|
||||
"react/event-loop": "0.4.*|0.3.*",
|
||||
"react/promise": "^2.0 || ^1.1",
|
||||
"react/stream": "^0.4.5"
|
||||
"php": ">=5.3",
|
||||
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5",
|
||||
"react/promise": "^2.7.0 || ^1.2.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"clue/block-react": "^1.1",
|
||||
"phpunit/phpunit": "~4.8",
|
||||
"react/socket-client": "^0.5.1"
|
||||
"phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"React\\Promise\\Timer\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Christian Lück",
|
||||
"email": "christian@lueck.tv"
|
||||
}
|
||||
],
|
||||
"description": "A trivial implementation of timeouts for Promises, built on top of ReactPHP.",
|
||||
"homepage": "https://github.com/reactphp/promise-timer",
|
||||
"keywords": [
|
||||
"async",
|
||||
"event-loop",
|
||||
"promise",
|
||||
"reactphp",
|
||||
"timeout",
|
||||
"timer"
|
||||
],
|
||||
"time": "2019-03-27 18:10:32"
|
||||
},
|
||||
{
|
||||
"name": "react/socket",
|
||||
"version": "v1.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/reactphp/socket.git",
|
||||
"reference": "10f0629ec83ea0fa22597f348623f554227e3ca0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/reactphp/socket/zipball/10f0629ec83ea0fa22597f348623f554227e3ca0",
|
||||
"reference": "10f0629ec83ea0fa22597f348623f554227e3ca0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"evenement/evenement": "^3.0 || ^2.0 || ^1.0",
|
||||
"php": ">=5.3.0",
|
||||
"react/dns": "^1.0 || ^0.4.13",
|
||||
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5",
|
||||
"react/promise": "^2.6.0 || ^1.2.1",
|
||||
"react/promise-timer": "^1.4.0",
|
||||
"react/stream": "^1.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"clue/block-react": "^1.2",
|
||||
"phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@ -3499,38 +3392,38 @@
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "Async, streaming plaintext TCP/IP and secure TLS socket server for React PHP",
|
||||
"description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP",
|
||||
"keywords": [
|
||||
"Socket"
|
||||
"Connection",
|
||||
"Socket",
|
||||
"async",
|
||||
"reactphp",
|
||||
"stream"
|
||||
],
|
||||
"time": "2017-01-26 09:23:38"
|
||||
"time": "2019-07-10 10:11:14"
|
||||
},
|
||||
{
|
||||
"name": "react/stream",
|
||||
"version": "v0.4.6",
|
||||
"version": "v1.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/reactphp/stream.git",
|
||||
"reference": "44dc7f51ea48624110136b535b9ba44fd7d0c1ee"
|
||||
"reference": "50426855f7a77ddf43b9266c22320df5bf6c6ce6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/reactphp/stream/zipball/44dc7f51ea48624110136b535b9ba44fd7d0c1ee",
|
||||
"reference": "44dc7f51ea48624110136b535b9ba44fd7d0c1ee",
|
||||
"url": "https://api.github.com/repos/reactphp/stream/zipball/50426855f7a77ddf43b9266c22320df5bf6c6ce6",
|
||||
"reference": "50426855f7a77ddf43b9266c22320df5bf6c6ce6",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"evenement/evenement": "^2.0|^1.0",
|
||||
"php": ">=5.3.8"
|
||||
"evenement/evenement": "^3.0 || ^2.0 || ^1.0",
|
||||
"php": ">=5.3.8",
|
||||
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"clue/stream-filter": "~1.2",
|
||||
"react/event-loop": "^0.4|^0.3",
|
||||
"react/promise": "^2.0|^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"react/event-loop": "^0.4",
|
||||
"react/promise": "^2.0"
|
||||
"phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@ -3542,12 +3435,18 @@
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "Basic readable and writable stream interfaces that support piping.",
|
||||
"description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP",
|
||||
"keywords": [
|
||||
"event-driven",
|
||||
"io",
|
||||
"non-blocking",
|
||||
"pipe",
|
||||
"stream"
|
||||
"reactphp",
|
||||
"readable",
|
||||
"stream",
|
||||
"writable"
|
||||
],
|
||||
"time": "2017-01-25 14:44:14"
|
||||
"time": "2019-01-01 16:15:09"
|
||||
},
|
||||
{
|
||||
"name": "robrichards/xmlseclibs",
|
||||
@ -3589,21 +3488,21 @@
|
||||
},
|
||||
{
|
||||
"name": "sensio/distribution-bundle",
|
||||
"version": "v5.0.24",
|
||||
"version": "v5.0.25",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sensiolabs/SensioDistributionBundle.git",
|
||||
"reference": "59eac70f15f97ee945924948a6f5e2f6f86b7a4b"
|
||||
"reference": "80a38234bde8321fb92aa0b8c27978a272bb4baf"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/59eac70f15f97ee945924948a6f5e2f6f86b7a4b",
|
||||
"reference": "59eac70f15f97ee945924948a6f5e2f6f86b7a4b",
|
||||
"url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/80a38234bde8321fb92aa0b8c27978a272bb4baf",
|
||||
"reference": "80a38234bde8321fb92aa0b8c27978a272bb4baf",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.9",
|
||||
"sensiolabs/security-checker": "~5.0",
|
||||
"sensiolabs/security-checker": "~5.0|~6.0",
|
||||
"symfony/class-loader": "~2.3|~3.0",
|
||||
"symfony/config": "~2.3|~3.0",
|
||||
"symfony/dependency-injection": "~2.3|~3.0",
|
||||
@ -3637,7 +3536,7 @@
|
||||
"configuration",
|
||||
"distribution"
|
||||
],
|
||||
"time": "2018-12-14 17:36:15"
|
||||
"time": "2019-06-18 15:43:58"
|
||||
},
|
||||
{
|
||||
"name": "sensio/framework-extra-bundle",
|
||||
@ -3882,30 +3781,30 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/monolog-bundle",
|
||||
"version": "v3.3.1",
|
||||
"version": "v3.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/monolog-bundle.git",
|
||||
"reference": "572e143afc03419a75ab002c80a2fd99299195ff"
|
||||
"reference": "7fbecb371c1c614642c93c6b2cbcdf723ae8809d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/572e143afc03419a75ab002c80a2fd99299195ff",
|
||||
"reference": "572e143afc03419a75ab002c80a2fd99299195ff",
|
||||
"url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/7fbecb371c1c614642c93c6b2cbcdf723ae8809d",
|
||||
"reference": "7fbecb371c1c614642c93c6b2cbcdf723ae8809d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"monolog/monolog": "~1.22",
|
||||
"php": ">=5.6",
|
||||
"symfony/config": "~2.7|~3.3|~4.0",
|
||||
"symfony/dependency-injection": "~2.7|~3.4.10|^4.0.10",
|
||||
"symfony/http-kernel": "~2.7|~3.3|~4.0",
|
||||
"symfony/monolog-bridge": "~2.7|~3.3|~4.0"
|
||||
"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": "~2.7|~3.3|~4.0",
|
||||
"symfony/phpunit-bridge": "^3.3|^4.0",
|
||||
"symfony/yaml": "~2.7|~3.3|~4.0"
|
||||
"symfony/console": "~3.4|~4.0",
|
||||
"symfony/phpunit-bridge": "^3.4.19|^4.0",
|
||||
"symfony/yaml": "~3.4|~4.0"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
@ -3941,7 +3840,7 @@
|
||||
"log",
|
||||
"logging"
|
||||
],
|
||||
"time": "2018-11-04 09:58:13"
|
||||
"time": "2019-06-20 12:18:19"
|
||||
},
|
||||
{
|
||||
"name": "symfony/orm-pack",
|
||||
@ -4430,16 +4329,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/symfony",
|
||||
"version": "v3.4.26",
|
||||
"version": "v3.4.29",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/symfony.git",
|
||||
"reference": "1b89e7baec9891c323bbf1ec81af77d901fc60c9"
|
||||
"reference": "4c9b6d7d898457ae2189efdfaca58712269fc994"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/symfony/zipball/1b89e7baec9891c323bbf1ec81af77d901fc60c9",
|
||||
"reference": "1b89e7baec9891c323bbf1ec81af77d901fc60c9",
|
||||
"url": "https://api.github.com/repos/symfony/symfony/zipball/4c9b6d7d898457ae2189efdfaca58712269fc994",
|
||||
"reference": "4c9b6d7d898457ae2189efdfaca58712269fc994",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -4458,7 +4357,7 @@
|
||||
"symfony/polyfill-mbstring": "~1.0",
|
||||
"symfony/polyfill-php56": "~1.0",
|
||||
"symfony/polyfill-php70": "~1.6",
|
||||
"twig/twig": "^1.35|^2.4.4"
|
||||
"twig/twig": "^1.40|^2.9"
|
||||
},
|
||||
"conflict": {
|
||||
"phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2",
|
||||
@ -4537,7 +4436,7 @@
|
||||
"ocramius/proxy-manager": "~0.4|~1.0|~2.0",
|
||||
"phpdocumentor/reflection-docblock": "^3.0|^4.0",
|
||||
"predis/predis": "~1.0",
|
||||
"symfony/phpunit-bridge": "~3.4|~4.0",
|
||||
"symfony/phpunit-bridge": "~3.4|~4.0|~5.0",
|
||||
"symfony/security-acl": "~2.8|~3.0"
|
||||
},
|
||||
"type": "library",
|
||||
@ -4581,34 +4480,34 @@
|
||||
"keywords": [
|
||||
"framework"
|
||||
],
|
||||
"time": "2019-04-17 15:57:27"
|
||||
"time": "2019-06-26 13:56:55"
|
||||
},
|
||||
{
|
||||
"name": "tetranz/select2entity-bundle",
|
||||
"version": "v2.9.5",
|
||||
"target-dir": "Tetranz/Select2EntityBundle",
|
||||
"version": "v2.10.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/tetranz/select2entity-bundle.git",
|
||||
"reference": "c57281f4af06ca0c7e74c27fcc4bf8c95a1beaad"
|
||||
"reference": "67b61be1a23228bc4e77a2e59ba5fff8fd9fffab"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/tetranz/select2entity-bundle/zipball/c57281f4af06ca0c7e74c27fcc4bf8c95a1beaad",
|
||||
"reference": "c57281f4af06ca0c7e74c27fcc4bf8c95a1beaad",
|
||||
"url": "https://api.github.com/repos/tetranz/select2entity-bundle/zipball/67b61be1a23228bc4e77a2e59ba5fff8fd9fffab",
|
||||
"reference": "67b61be1a23228bc4e77a2e59ba5fff8fd9fffab",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/orm": ">=2.4",
|
||||
"php": ">=5.4.0"
|
||||
"php": ">=5.4.0",
|
||||
"twig/twig": ">=2.9"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"branch-alias": []
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Tetranz\\Select2EntityBundle": ""
|
||||
"psr-4": {
|
||||
"Tetranz\\Select2EntityBundle\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
@ -4621,14 +4520,14 @@
|
||||
"email": "tetranz@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "A Symfony2 bundle that integrates Select2 as a drop-in replacement for a standard entity field on a Symfony form.",
|
||||
"description": "A Symfony bundle that integrates Select2 as a drop-in replacement for a standard entity field on a Symfony form.",
|
||||
"keywords": [
|
||||
"autocomplete",
|
||||
"select2",
|
||||
"symfony",
|
||||
"typeahead"
|
||||
],
|
||||
"time": "2018-03-05 02:52:46"
|
||||
"time": "2019-07-07 23:00:30"
|
||||
},
|
||||
{
|
||||
"name": "thecsea/simple-caldav-client",
|
||||
@ -4675,16 +4574,16 @@
|
||||
},
|
||||
{
|
||||
"name": "twig/twig",
|
||||
"version": "v2.8.1",
|
||||
"version": "v2.11.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twigphp/Twig.git",
|
||||
"reference": "91cc2594d3143761ce0399c1caffd0b500ffe5b9"
|
||||
"reference": "699ed2342557c88789a15402de5eb834dedd6792"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/91cc2594d3143761ce0399c1caffd0b500ffe5b9",
|
||||
"reference": "91cc2594d3143761ce0399c1caffd0b500ffe5b9",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/699ed2342557c88789a15402de5eb834dedd6792",
|
||||
"reference": "699ed2342557c88789a15402de5eb834dedd6792",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -4695,12 +4594,12 @@
|
||||
"require-dev": {
|
||||
"psr/container": "^1.0",
|
||||
"symfony/debug": "^2.7",
|
||||
"symfony/phpunit-bridge": "^3.4.19|^4.1.8"
|
||||
"symfony/phpunit-bridge": "^3.4.19|^4.1.8|^5.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.8-dev"
|
||||
"dev-master": "2.11-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -4738,31 +4637,30 @@
|
||||
"keywords": [
|
||||
"templating"
|
||||
],
|
||||
"time": "2019-04-16 17:14:24"
|
||||
"time": "2019-06-18 15:37:11"
|
||||
},
|
||||
{
|
||||
"name": "zendframework/zend-code",
|
||||
"version": "3.1.0",
|
||||
"version": "2.6.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/zendframework/zend-code.git",
|
||||
"reference": "2899c17f83a7207f2d7f53ec2f421204d3beea27"
|
||||
"reference": "95033f061b083e16cdee60530ec260d7d628b887"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/zendframework/zend-code/zipball/2899c17f83a7207f2d7f53ec2f421204d3beea27",
|
||||
"reference": "2899c17f83a7207f2d7f53ec2f421204d3beea27",
|
||||
"url": "https://api.github.com/repos/zendframework/zend-code/zipball/95033f061b083e16cdee60530ec260d7d628b887",
|
||||
"reference": "95033f061b083e16cdee60530ec260d7d628b887",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.6 || 7.0.0 - 7.0.4 || ^7.0.6",
|
||||
"php": "^5.5 || 7.0.0 - 7.0.4 || ^7.0.6",
|
||||
"zendframework/zend-eventmanager": "^2.6 || ^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/annotations": "~1.0",
|
||||
"ext-phar": "*",
|
||||
"fabpot/php-cs-fixer": "1.7.*",
|
||||
"phpunit/phpunit": "^4.8.21",
|
||||
"squizlabs/php_codesniffer": "^2.5",
|
||||
"zendframework/zend-stdlib": "^2.7 || ^3.0"
|
||||
},
|
||||
"suggest": {
|
||||
@ -4772,8 +4670,8 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.1-dev",
|
||||
"dev-develop": "3.2-dev"
|
||||
"dev-master": "2.6-dev",
|
||||
"dev-develop": "2.7-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -4791,7 +4689,7 @@
|
||||
"code",
|
||||
"zf2"
|
||||
],
|
||||
"time": "2016-10-24 13:23:32"
|
||||
"time": "2016-04-20 17:26:42"
|
||||
},
|
||||
{
|
||||
"name": "zendframework/zend-eventmanager",
|
||||
@ -4851,16 +4749,16 @@
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "nikic/php-parser",
|
||||
"version": "v4.2.1",
|
||||
"version": "v4.2.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nikic/PHP-Parser.git",
|
||||
"reference": "5221f49a608808c1e4d436df32884cbc1b821ac0"
|
||||
"reference": "1bd73cc04c3843ad8d6b0bfc0956026a151fc420"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/5221f49a608808c1e4d436df32884cbc1b821ac0",
|
||||
"reference": "5221f49a608808c1e4d436df32884cbc1b821ac0",
|
||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bd73cc04c3843ad8d6b0bfc0956026a151fc420",
|
||||
"reference": "1bd73cc04c3843ad8d6b0bfc0956026a151fc420",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -4898,7 +4796,7 @@
|
||||
"parser",
|
||||
"php"
|
||||
],
|
||||
"time": "2019-02-16 20:54:15"
|
||||
"time": "2019-05-25 20:07:01"
|
||||
},
|
||||
{
|
||||
"name": "sensio/generator-bundle",
|
||||
@ -4956,16 +4854,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/maker-bundle",
|
||||
"version": "v1.11.6",
|
||||
"version": "v1.12.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/maker-bundle.git",
|
||||
"reference": "d262c2cace4d9bca99137a84f6fc6ba909a17e02"
|
||||
"reference": "201d0e050dca336c44f93657ce1f34f3b3868432"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/maker-bundle/zipball/d262c2cace4d9bca99137a84f6fc6ba909a17e02",
|
||||
"reference": "d262c2cace4d9bca99137a84f6fc6ba909a17e02",
|
||||
"url": "https://api.github.com/repos/symfony/maker-bundle/zipball/201d0e050dca336c44f93657ce1f34f3b3868432",
|
||||
"reference": "201d0e050dca336c44f93657ce1f34f3b3868432",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -4981,12 +4879,14 @@
|
||||
"symfony/http-kernel": "^3.4|^4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"allocine/twigcs": "^3.0",
|
||||
"doctrine/doctrine-bundle": "^1.8",
|
||||
"doctrine/orm": "^2.3",
|
||||
"friendsofphp/php-cs-fixer": "^2.8",
|
||||
"symfony/phpunit-bridge": "^3.4|^4.0",
|
||||
"friendsoftwig/twigcs": "^3.1.2",
|
||||
"symfony/http-client": "^4.3",
|
||||
"symfony/phpunit-bridge": "^3.4.19|^4.0",
|
||||
"symfony/process": "^3.4|^4.0",
|
||||
"symfony/security-core": "^3.4|^4.0",
|
||||
"symfony/yaml": "^3.4|^4.0"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
@ -5018,20 +4918,20 @@
|
||||
"scaffold",
|
||||
"scaffolding"
|
||||
],
|
||||
"time": "2019-04-19 17:26:45"
|
||||
"time": "2019-07-09 22:19:18"
|
||||
},
|
||||
{
|
||||
"name": "symfony/phpunit-bridge",
|
||||
"version": "v3.4.26",
|
||||
"version": "v3.4.29",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/phpunit-bridge.git",
|
||||
"reference": "a43a2f6c465a2d99635fea0addbebddc3864ad97"
|
||||
"reference": "521489968e58dcdb8df153436cc18349737e49e3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/a43a2f6c465a2d99635fea0addbebddc3864ad97",
|
||||
"reference": "a43a2f6c465a2d99635fea0addbebddc3864ad97",
|
||||
"url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/521489968e58dcdb8df153436cc18349737e49e3",
|
||||
"reference": "521489968e58dcdb8df153436cc18349737e49e3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -5083,7 +4983,7 @@
|
||||
],
|
||||
"description": "Symfony PHPUnit Bridge",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2019-04-16 09:03:16"
|
||||
"time": "2019-06-26 10:03:25"
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
|
@ -8,6 +8,9 @@ affniveau02=$(CreoleGet ninegate_niveau02view non)
|
||||
labelsniveau02=$(CreoleGet ninegate_niveau02labels non)
|
||||
iconniveau02=$(CreoleGet ninegate_niveau02icon non)
|
||||
weburl=$(CreoleGet web_url non)
|
||||
ninegate_websocket=$(CreoleGet ninegate_activate_websocket non)
|
||||
websocket_url=$(CreoleGet adresse_ip_eth0 non)
|
||||
websocket_portinterne=$(CreoleGet ninegate_websocket_portinterne non)
|
||||
|
||||
www_dir="$container_path_web/var/www/html"
|
||||
eportail_dir="$www_dir/eportail"
|
||||
@ -50,12 +53,15 @@ fi
|
||||
./perm.sh www-data
|
||||
|
||||
# Server Websocket
|
||||
echo ""
|
||||
echo WEBSOCKET = STOP
|
||||
pid="$(pgrep -f gos:websocket)"
|
||||
if [ -n "${pid}" ]; then
|
||||
kill -9 ${pid};
|
||||
fi
|
||||
if [[ "$ninegate_websocket" = 'oui' ]]
|
||||
then
|
||||
echo ""
|
||||
echo WEBSOCKET = STOP
|
||||
pid="$(pgrep -f gos:websocket)"
|
||||
if [ -n "${pid}" ]; then
|
||||
kill -9 ${pid};
|
||||
fi
|
||||
|
||||
echo WEBSOCKET = START
|
||||
bin/console gos:websocket:server --port 5556 -a $web_url --no-debug -n -q --env=prod & disown
|
||||
echo WEBSOCKET = START
|
||||
bin/console gos:websocket:server --port $websocket_portinterne -a $websocket_url --no-debug -n -q --env=prod & disown
|
||||
fi
|
13
src/ninegate-1.0/scripts/ninegate-websocket.sh
Executable file
13
src/ninegate-1.0/scripts/ninegate-websocket.sh
Executable file
@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
websocket_url=$(CreoleGet adresse_ip_eth0 non)
|
||||
websocket_portinterne=$(CreoleGet ninegate_websocket_portinterne non)
|
||||
|
||||
# Server Websocket
|
||||
echo WEBSOCKET = STOP
|
||||
pid="$(pgrep -f gos:websocket)"
|
||||
if [ -n "${pid}" ]; then
|
||||
kill -9 ${pid};
|
||||
fi
|
||||
|
||||
echo WEBSOCKET = START
|
||||
bin/console gos:websocket:server --port $websocket_portinterne -a $websocket_url --no-debug -n -q --env=prod & disown
|
@ -8,6 +8,8 @@ use Symfony\Component\Finder\Finder;
|
||||
use Symfony\Component\HttpKernel\KernelInterface;
|
||||
use Doctrine\DBAL\Connection as DBALConnection;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
use Ramsey\Uuid\Exception\UnsatisfiedDependencyException;
|
||||
|
||||
use Cadoles\CoreBundle\Entity\Group;
|
||||
use Cadoles\CoreBundle\Entity\UserGroup;
|
||||
@ -114,9 +116,11 @@ class InitDataCommand extends ContainerAwareCommand
|
||||
$datas=$qb->getQuery()->getResult();
|
||||
foreach($datas as $data) {
|
||||
$output->writeln(" > Ratachement ".$data->getId()." ".$data->getUsername());
|
||||
$key = Uuid::uuid4();
|
||||
$usergroup=new UserGroup();
|
||||
$usergroup->setUser($data);
|
||||
$usergroup->setGroup($group);
|
||||
$usergroup->setKeyvalue($key);
|
||||
$em->persist($usergroup);
|
||||
$em->flush();
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ INSERT IGNORE INTO `niveau01` (`id`, `label`, `siren`) VALUES
|
||||
(-100, 'DRAAF', '130007107');
|
||||
|
||||
INSERT IGNORE INTO `user` (`id`, `niveau01_id`, `username`, `firstname`, `lastname`, `password`, `email`, `avatar`, `role`,`siren`,`authlevel`) VALUES
|
||||
(-100, -100, 'admin', 'Administrateur', 'draaf', '{SSHA}fTB28jypXVo+jctUtN4bThWKPiqY6H6k
|
||||
(-100, -100, 'admin', 'Administrateur', 'draaf', '{SSHA}XuBTTUoInXPRBr1msGCFHj0Nm1C83fj/
|
||||
', 'admin@ldapbundle.ac-arno.fr', 'admin.jpg', 'ROLE_ADMIN', '130007107', 'simple');
|
||||
|
||||
|
||||
|
@ -9,6 +9,7 @@ use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\Form\FormError;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
use Ramsey\Uuid\Exception\UnsatisfiedDependencyException;
|
||||
|
||||
use Cadoles\CoreBundle\Entity\Group;
|
||||
use Cadoles\CoreBundle\Entity\Usergroup;
|
||||
@ -16,6 +17,7 @@ use Cadoles\CoreBundle\Entity\Usermodo;
|
||||
use Cadoles\CoreBundle\Form\GroupType;
|
||||
use Cadoles\PortalBundle\Entity\Calendar;
|
||||
use Cadoles\PortalBundle\Entity\Blog;
|
||||
use Cadoles\WebsocketBundle\Entity\Message;
|
||||
|
||||
class GroupController extends Controller
|
||||
{
|
||||
@ -24,22 +26,24 @@ class GroupController extends Controller
|
||||
private $labeldata = 'group';
|
||||
private $labeldatas = 'groups';
|
||||
|
||||
public function listAction()
|
||||
public function listAction($access)
|
||||
{
|
||||
return $this->render('CadolesCoreBundle:Group:list.html.twig',[
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => true,
|
||||
'usesidebar' => ($access=="config"),
|
||||
'access' => $access
|
||||
]);
|
||||
}
|
||||
|
||||
public function ajaxlistAction(Request $request)
|
||||
public function ajaxlistAction(Request $request,$access)
|
||||
{
|
||||
// S'assurer que c'est un appel ajax
|
||||
if (!$request->isXmlHttpRequest()) {
|
||||
return new JsonResponse(array('message' => 'Interdit'), 400);
|
||||
}
|
||||
|
||||
$user=$this->getUser();
|
||||
$portal_activate=$this->getParameter("portal_activate");
|
||||
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
@ -51,19 +55,39 @@ class GroupController extends Controller
|
||||
$order= $request->query->get('order');
|
||||
|
||||
// Nombre total d'enregistrement
|
||||
$total = $em->createQueryBuilder()->select('COUNT(table)')->from($this->labelentity,'table')->getQuery()->getSingleScalarResult();
|
||||
$qb=$em->createQueryBuilder();
|
||||
$qb->select('COUNT(table)')->from($this->labelentity,'table');
|
||||
if($access=="user") {
|
||||
$qb->from("CadolesCoreBundle:UserGroup","ug")
|
||||
->andWhere(("table.fgcanshare=:flag"))
|
||||
->andWhere("table.id=ug.group")
|
||||
->andWhere(":user=ug.user")
|
||||
->setParameter("flag", true)
|
||||
->setParameter("user", $user);
|
||||
|
||||
}
|
||||
$total = $qb->getQuery()->getSingleScalarResult();
|
||||
|
||||
// Nombre d'enregistrement filtré
|
||||
if($search["value"]=="")
|
||||
$totalf = $total;
|
||||
else {
|
||||
$totalf= $em->createQueryBuilder()
|
||||
->select('COUNT(table)')
|
||||
->from($this->labelentity,'table')
|
||||
->where('table.label LIKE :value')
|
||||
->setParameter("value", "%".$search["value"]."%")
|
||||
->getQuery()
|
||||
->getSingleScalarResult();
|
||||
$qb=$em->createQueryBuilder();
|
||||
$qb->select('COUNT(table)')
|
||||
->from($this->labelentity,'table')
|
||||
->where('table.label LIKE :value')
|
||||
->setParameter("value", "%".$search["value"]."%");
|
||||
if($access=="user") {
|
||||
$qb->from("CadolesCoreBundle:UserGroup","ug")
|
||||
->andWhere(("table.fgcanshare=:flag"))
|
||||
->andWhere("table.id=ug.group")
|
||||
->andWhere(":user=ug.user")
|
||||
->setParameter("flag", true)
|
||||
->setParameter("user", $user);
|
||||
|
||||
}
|
||||
|
||||
$totalf= $qb->getQuery()->getSingleScalarResult();
|
||||
}
|
||||
|
||||
// Construction du tableau de retour
|
||||
@ -77,8 +101,17 @@ class GroupController extends Controller
|
||||
// Parcours des Enregistrement
|
||||
$qb = $em->createQueryBuilder();
|
||||
$qb->select('table')->from($this->labelentity,'table');
|
||||
if($access=="user") {
|
||||
$qb->from("CadolesCoreBundle:UserGroup","ug")
|
||||
->andWhere(("table.fgcanshare=:flag"))
|
||||
->andWhere("table.id=ug.group")
|
||||
->andWhere(":user=ug.user")
|
||||
->setParameter("flag", true)
|
||||
->setParameter("user", $this->getUser());
|
||||
|
||||
}
|
||||
if($search["value"]!="") {
|
||||
$qb ->where('table.label LIKE :value')
|
||||
$qb ->andwhere('table.label LIKE :value')
|
||||
->setParameter("value", "%".$search["value"]."%");
|
||||
}
|
||||
switch($order[0]["column"]) {
|
||||
@ -107,20 +140,40 @@ class GroupController extends Controller
|
||||
foreach($datas as $data) {
|
||||
$action = "";
|
||||
|
||||
// Modification possible si groupe non template et non tout le monde
|
||||
if(!$data->getFgTemplate() && !$data->getFgall())
|
||||
$action .="<a href='".$this->generateUrl('cadoles_core_config_group_update', array('id'=>$data->getId()))."'><i class='fa fa-file fa-2x fa-fw'></i></a>";
|
||||
if($access=="config") {
|
||||
// Modification possible si groupe non template et non tout le monde
|
||||
if(!$data->getFgTemplate() && !$data->getFgall())
|
||||
$action .="<a href='".$this->generateUrl('cadoles_core_config_group_update', array('id'=>$data->getId()))."'><i class='fa fa-file fa-2x fa-fw'></i></a>";
|
||||
|
||||
// Modification possible si groupe template mais avec module portail activé
|
||||
elseif($data->getFgTemplate()&&$portal_activate)
|
||||
$action .="<a href='".$this->generateUrl('cadoles_core_config_group_update', array('id'=>$data->getId()))."'><i class='fa fa-file fa-2x fa-fw'></i></a>";
|
||||
|
||||
// Modification possible si groupe tout le monde mais avec module portail activé
|
||||
elseif($data->getFgall()&&$portal_activate)
|
||||
$action .="<a href='".$this->generateUrl('cadoles_core_config_group_update', array('id'=>$data->getId()))."'><i class='fa fa-file fa-2x fa-fw'></i></a>";
|
||||
|
||||
if($data->getId()>0&&!$data->getFgall()&&!$data->getFgTemplate()&&$this->isGranted('ROLE_ADMIN')) $action.="<a href='".$this->generateUrl('cadoles_core_config_group_delete', array('id'=>$data->getId()))."'><i class='fa fa-trash fa-fw fa-2x'></i></a>";
|
||||
if(!$data->getFgall()) $action .="<a href='".$this->generateUrl('cadoles_core_config_group_users', array('id'=>$data->getId()))."'><i class='fa fa-users fa-2x fa-fw'></i></a>";
|
||||
|
||||
}
|
||||
else {
|
||||
$fgproprio=($user==$data->getOwner());
|
||||
$fgmanager=$this->getDoctrine()->getRepository("CadolesCoreBundle:UserGroup")->findOneBy(["user"=>$this->getUser(),"group"=>$data])->getFgmanager();
|
||||
|
||||
// Modification possible uniquement si l'utilisateur est propriétaire du groupe
|
||||
if($fgproprio) {
|
||||
$action .="<a href='".$this->generateUrl('cadoles_core_'.$access.'_group_update', array('id'=>$data->getId()))."'><i class='fa fa-file fa-2x fa-fw'></i></a>";
|
||||
$action .="<a href='".$this->generateUrl('cadoles_core_'.$access.'_group_delete', array('id'=>$data->getId()))."'><i class='fa fa-trash fa-2x fa-fw'></i></a>";
|
||||
}
|
||||
|
||||
// Gestion des utilisateurs du groupe uniquement pour le proprio ou les managers
|
||||
if($fgproprio||$fgmanager) {
|
||||
$action .="<a href='".$this->generateUrl('cadoles_core_'.$access.'_group_users', array('id'=>$data->getId()))."'><i class='fa fa-users fa-2x fa-fw'></i></a>";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Modification possible si groupe template mais avec module portail activé
|
||||
elseif($data->getFgTemplate()&&$portal_activate)
|
||||
$action .="<a href='".$this->generateUrl('cadoles_core_config_group_update', array('id'=>$data->getId()))."'><i class='fa fa-file fa-2x fa-fw'></i></a>";
|
||||
|
||||
// Modification possible si groupe tout le monde mais avec module portail activé
|
||||
elseif($data->getFgall()&&$portal_activate)
|
||||
$action .="<a href='".$this->generateUrl('cadoles_core_config_group_update', array('id'=>$data->getId()))."'><i class='fa fa-file fa-2x fa-fw'></i></a>";
|
||||
|
||||
if($data->getId()>0&&!$data->getFgall()&&!$data->getFgTemplate()&&$this->isGranted('ROLE_ADMIN')) $action.="<a href='".$this->generateUrl('cadoles_core_config_group_delete', array('id'=>$data->getId()))."'><i class='fa fa-trash fa-fw fa-2x'></i></a>";
|
||||
if(!$data->getFgall()) $action .="<a href='".$this->generateUrl('cadoles_core_config_group_users', array('id'=>$data->getId()))."'><i class='fa fa-users fa-2x fa-fw'></i></a>";
|
||||
|
||||
$filtre="";
|
||||
if($this->GetParameter("masteridentity")=="LDAP") $filtre=$data->getLdapfilter();
|
||||
@ -144,7 +197,7 @@ class GroupController extends Controller
|
||||
}
|
||||
|
||||
|
||||
public function ajaxusersnotinAction($id,Request $request)
|
||||
public function ajaxusersnotinAction($id,Request $request,$access="config")
|
||||
{
|
||||
// S'assurer que c'est un appel ajax
|
||||
if (!$request->isXmlHttpRequest()) {
|
||||
@ -168,7 +221,7 @@ class GroupController extends Controller
|
||||
|
||||
// Nombre total d'enregistrement
|
||||
$qb = $em->createQueryBuilder();
|
||||
if($this->isGranted('ROLE_ADMIN'))
|
||||
if($this->isGranted('ROLE_ADMIN')||$access=="user")
|
||||
$qb->select('COUNT(user)')
|
||||
->from('CadolesCoreBundle:User','user')
|
||||
->where($qb->expr()->not($qb->expr()->exists($sub->getDQL())))
|
||||
@ -190,7 +243,7 @@ class GroupController extends Controller
|
||||
if($search["value"]=="")
|
||||
$totalf = $total;
|
||||
else {
|
||||
if($this->isGranted('ROLE_ADMIN'))
|
||||
if($this->isGranted('ROLE_ADMIN')||$access=="user")
|
||||
$totalf= $em->createQueryBuilder()
|
||||
->select('COUNT(user)')
|
||||
->from('CadolesCoreBundle:User','user')
|
||||
@ -229,7 +282,7 @@ class GroupController extends Controller
|
||||
$qb = $em->createQueryBuilder();
|
||||
$qb->select('user')->from("CadolesCoreBundle:User",'user');
|
||||
|
||||
if($this->isGranted('ROLE_ADMIN'))
|
||||
if($this->isGranted('ROLE_ADMIN')||$access=="user")
|
||||
$qb->where($qb->expr()->not($qb->expr()->exists($sub->getDQL())));
|
||||
else
|
||||
$qb->from('CadolesCoreBundle:UserModo','usermodo')
|
||||
@ -273,7 +326,7 @@ class GroupController extends Controller
|
||||
return new Response(json_encode($output), 200);
|
||||
}
|
||||
|
||||
public function ajaxusersinAction($id,Request $request)
|
||||
public function ajaxusersinAction($id,Request $request,$access="config")
|
||||
{
|
||||
// S'assurer que c'est un appel ajax
|
||||
if (!$request->isXmlHttpRequest()) {
|
||||
@ -298,7 +351,7 @@ class GroupController extends Controller
|
||||
|
||||
// Nombre total d'enregistrement
|
||||
$qb = $em->createQueryBuilder();
|
||||
if($this->isGranted('ROLE_ADMIN'))
|
||||
if($this->isGranted('ROLE_ADMIN')||$access=="user")
|
||||
$qb->select('COUNT(user)')
|
||||
->from('CadolesCoreBundle:User','user')
|
||||
->where($qb->expr()->exists($sub->getDQL()))
|
||||
@ -320,7 +373,7 @@ class GroupController extends Controller
|
||||
if($search["value"]=="")
|
||||
$totalf = $total;
|
||||
else {
|
||||
if($this->isGranted('ROLE_ADMIN'))
|
||||
if($this->isGranted('ROLE_ADMIN')||$access=="user")
|
||||
$totalf= $em->createQueryBuilder()
|
||||
->select('COUNT(user)')
|
||||
->from('CadolesCoreBundle:User','user')
|
||||
@ -359,7 +412,7 @@ class GroupController extends Controller
|
||||
$qb = $em->createQueryBuilder();
|
||||
$qb->select('user')->from("CadolesCoreBundle:User",'user');
|
||||
|
||||
if($this->isGranted('ROLE_ADMIN'))
|
||||
if($this->isGranted('ROLE_ADMIN')||$access=="user")
|
||||
$qb->where($qb->expr()->exists($sub->getDQL()));
|
||||
else
|
||||
$qb->from('CadolesCoreBundle:UserModo','usermodo')
|
||||
@ -386,10 +439,13 @@ class GroupController extends Controller
|
||||
$datas=$qb->setFirstResult($start)->setMaxResults($length)->getQuery()->getResult();
|
||||
|
||||
foreach($datas as $data) {
|
||||
|
||||
// Propriétaire
|
||||
$usergroup=$em->getRepository("CadolesCoreBundle:UserGroup")->findOneBy(["user"=>$data->getId(),"group"=>$id]);
|
||||
$fgproprio=($usergroup->getUser()==$group->getOwner());
|
||||
|
||||
// Action
|
||||
$action = "";
|
||||
if($group->getLdapfilter()==""&&$group->getAttributes()=="")
|
||||
if($group->getLdapfilter()==""&&$group->getAttributes()==""&&!$fgproprio)
|
||||
$action.="<a style='cursor:pointer' onClick='delUsers(".$data->getId().")'><i class='fa fa-minus fa-fw'></i></a>";
|
||||
|
||||
// Avatar
|
||||
@ -398,9 +454,11 @@ class GroupController extends Controller
|
||||
// Flag manager
|
||||
$fgmanager="";
|
||||
if($fgcanshare) {
|
||||
$usergroup=$em->getRepository("CadolesCoreBundle:UserGroup")->findOneBy(["user"=>$data->getId(),"group"=>$id]);
|
||||
|
||||
$checked=($usergroup->getFgmanager()?"checked":"");
|
||||
$fgmanager="<input type='checkbox' class='switch' onChange='switchManager(".$data->getId().");' $checked>";
|
||||
if($fgproprio) $fgmanager="Propriétaire du groupe";
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -411,7 +469,7 @@ class GroupController extends Controller
|
||||
return new Response(json_encode($output), 200);
|
||||
}
|
||||
|
||||
public function usergroupaddAction(Request $request)
|
||||
public function usergroupaddAction(Request $request,$access="config")
|
||||
{
|
||||
// S'assurer que c'est un appel ajax
|
||||
if (!$request->isXmlHttpRequest()) {
|
||||
@ -428,18 +486,25 @@ class GroupController extends Controller
|
||||
if($group->getFgAll()||$group->getFgtemplate())
|
||||
throw $this->createNotFoundException('Permission denied');
|
||||
|
||||
$key = Uuid::uuid4();
|
||||
$usergroup=new Usergroup;
|
||||
$usergroup->setUser($em->getRepository("CadolesCoreBundle:User")->find($userid));
|
||||
$user=$em->getRepository("CadolesCoreBundle:User")->find($userid);
|
||||
$usergroup->setUser($user);
|
||||
$usergroup->setGroup($group);
|
||||
$usergroup->setKeyvalue($key);
|
||||
$em->persist($usergroup);
|
||||
$em->flush();
|
||||
|
||||
$user=$em->getRepository("CadolesCoreBundle:User")->find($userid);
|
||||
$message="Inscription de l'utilisateur<br>".$user->getLastname()." ".$user->getFirstname()."<br>Par ".$this->getUser()->getLastname()." ".$this->getUser()->getFirstname();
|
||||
$websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key->toString(),$userid,$groupid,$message);
|
||||
|
||||
$response = new Response(json_encode($output));
|
||||
$response->headers->set('Content-Type', 'application/json');
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function usergroupdelAction(Request $request)
|
||||
public function usergroupdelAction(Request $request,$access="config")
|
||||
{
|
||||
// S'assurer que c'est un appel ajax
|
||||
if (!$request->isXmlHttpRequest()) {
|
||||
@ -457,15 +522,21 @@ class GroupController extends Controller
|
||||
throw $this->createNotFoundException('Permission denied');
|
||||
|
||||
$data = $em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(array("user"=>$userid,"group"=>$groupid));
|
||||
$user=$em->getRepository("CadolesCoreBundle:User")->find($userid);
|
||||
$message="Désinscription de l'utilisateur<br>".$user->getLastname()." ".$user->getFirstname()."<br>Par ".$this->getUser()->getLastname()." ".$this->getUser()->getFirstname();;
|
||||
$websocket = $this->container->get('cadoles.websocket.pushmessage')->send($data->getKeyvalue(),$userid,$groupid,$message);
|
||||
|
||||
|
||||
$em->remove($data);
|
||||
$em->flush();
|
||||
|
||||
|
||||
$response = new Response(json_encode($output));
|
||||
$response->headers->set('Content-Type', 'application/json');
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function switchmanagerAction(Request $request)
|
||||
public function switchmanagerAction(Request $request,$access="config")
|
||||
{
|
||||
// S'assurer que c'est un appel ajax
|
||||
if (!$request->isXmlHttpRequest()) {
|
||||
@ -496,15 +567,18 @@ class GroupController extends Controller
|
||||
// Initialisation de l'enregistrement
|
||||
$data = new Group();
|
||||
$data->setFgopen(false);
|
||||
$data->setFgcanshare(false);
|
||||
$data->setFgcanshare(($access=="user"));
|
||||
$data->setFgcancreatepage(false);
|
||||
$data->setFgcancreatecalendar(false);
|
||||
$data->setFgcancreateblog(false);
|
||||
if($access=="user") $data->setOwner($this->getUser());
|
||||
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(GroupType::class,$data,array(
|
||||
"mode"=>"submit",
|
||||
"fgall"=>false,
|
||||
"updatelimite"=>false,
|
||||
"access"=>$access,
|
||||
"masteridentity"=> $this->GetParameter("masteridentity"),
|
||||
"portal_activate"=>$this->getParameter("portal_activate")
|
||||
)
|
||||
@ -533,12 +607,24 @@ class GroupController extends Controller
|
||||
$em->persist($data);
|
||||
$em->flush();
|
||||
|
||||
// Si acces par user on ajoute forcement le owner comme membre du groupe en tant que manager
|
||||
if($access=="user") {
|
||||
$key = Uuid::uuid4();
|
||||
$usergroup=new Usergroup;
|
||||
$usergroup->setUser($this->getUser());
|
||||
$usergroup->setGroup($data);
|
||||
$usergroup->setFgmanager(true);
|
||||
$usergroup->setKeyvalue($key);
|
||||
$em->persist($usergroup);
|
||||
$em->flush();
|
||||
}
|
||||
|
||||
// On s'assure que le groupe de travail à bien page d'accueil / calendrier / blog associé
|
||||
// Sinon on les génère
|
||||
$this->ctrlFgcanshare($data);
|
||||
$this->ctrlFgcanshare($data,$access);
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute("cadoles_core_config_group_users",["id"=>$data->getId()]);
|
||||
return $this->redirectToRoute("cadoles_core_".$access."_group_users",["id"=>$data->getId()]);
|
||||
}
|
||||
|
||||
// Affichage du formulaire
|
||||
@ -549,10 +635,10 @@ class GroupController extends Controller
|
||||
return $this->render($this->labelentity.':edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => true,
|
||||
'usesidebar' => ($access=="config"),
|
||||
$this->labeldata => $data,
|
||||
'mode' => 'submit',
|
||||
'access' => 'access',
|
||||
'access' => $access,
|
||||
'icons' => $icons,
|
||||
'iconsuser' => $iconsuser,
|
||||
'form' => $form->createView()
|
||||
@ -568,6 +654,8 @@ class GroupController extends Controller
|
||||
// Création du formulaire
|
||||
$form = $this->createForm(GroupType::class,$data,array(
|
||||
"mode" => "update",
|
||||
"access" => $access,
|
||||
"fgall" => $data->getFgAll(),
|
||||
"updatelimite" => ($data->getFgAll()||$data->getFgTemplate()),
|
||||
"masteridentity" => $this->GetParameter("masteridentity"),
|
||||
"portal_activate" => $this->getParameter("portal_activate"),
|
||||
@ -602,21 +690,21 @@ class GroupController extends Controller
|
||||
|
||||
// On s'assure que le groupe de travail à bien page d'accueil / calendrier / blog associé
|
||||
// Sinon on les génère
|
||||
$this->ctrlFgcanshare($data);
|
||||
$this->ctrlFgcanshare($data,$access);
|
||||
|
||||
// Retour à la liste
|
||||
return $this->redirectToRoute($this->labelroute);
|
||||
return $this->redirectToRoute("cadoles_core_".$access."_group");
|
||||
}
|
||||
|
||||
$icons=$em->getRepository("CadolesPortalBundle:Icon")->findBy(["user"=>null]);
|
||||
$iconsuser=null;
|
||||
if($access=="user") $iconsuser=$em()->getRepository("CadolesPortalBundle:Icon")->findBy(["user"=>$this->getUser()]);
|
||||
if($access=="user") $iconsuser=$em->getRepository("CadolesPortalBundle:Icon")->findBy(["user"=>$this->getUser()]);
|
||||
|
||||
// Affichage du formulaire
|
||||
return $this->render($this->labelentity.':edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => true,
|
||||
'usesidebar' => ($access=="config"),
|
||||
$this->labeldata => $data,
|
||||
'mode' => 'update',
|
||||
'access' => $access,
|
||||
@ -626,10 +714,12 @@ class GroupController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function deleteAction($id,Request $request)
|
||||
public function deleteAction($id,Request $request, $access="config")
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
// Seule role admin peut supprimer un groupe
|
||||
if(!$this->isGranted('ROLE_ADMIN'))
|
||||
if($access=="config"&&!$this->isGranted('ROLE_ADMIN'))
|
||||
return $this->redirectToRoute($this->labelroute);
|
||||
|
||||
// Récupération de l'enregistrement courant
|
||||
@ -656,25 +746,31 @@ class GroupController extends Controller
|
||||
|
||||
// Sur validation
|
||||
if ($form->get('submit')->isClicked() && $form->isValid()) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$em->remove($data);
|
||||
$em->flush();
|
||||
|
||||
return $this->redirectToRoute($this->labelroute);
|
||||
return $this->redirectToRoute("cadoles_core_".$access."_group");
|
||||
}
|
||||
|
||||
$icons=$em->getRepository("CadolesPortalBundle:Icon")->findBy(["user"=>null]);
|
||||
$iconsuser=null;
|
||||
if($access=="user") $iconsuser=$em->getRepository("CadolesPortalBundle:Icon")->findBy(["user"=>$this->getUser()]);
|
||||
|
||||
// Affichage du formulaire
|
||||
return $this->render($this->labelentity.':edit.html.twig', [
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => true,
|
||||
'usesidebar' => ($access=="config"),
|
||||
$this->labeldata => $data,
|
||||
'mode' => 'delete',
|
||||
'access' => $access,
|
||||
'icons' => $icons,
|
||||
'iconsuser' => $iconsuser,
|
||||
'form' => $form->createView()
|
||||
]);
|
||||
}
|
||||
|
||||
public function usersAction($id,Request $request)
|
||||
public function usersAction($id,Request $request, $access="config")
|
||||
{
|
||||
// Récupération de l'enregistrement courant
|
||||
$data=$this->getData($id);
|
||||
@ -683,12 +779,13 @@ class GroupController extends Controller
|
||||
return $this->render($this->labelentity.':users.html.twig', [
|
||||
'useheader' => true,
|
||||
'usemenu' => false,
|
||||
'usesidebar' => true,
|
||||
'usesidebar' => ($access=="config"),
|
||||
'access' => $access,
|
||||
$this->labeldata => $data
|
||||
]);
|
||||
}
|
||||
|
||||
protected function ctrlFgcanshare($group) {
|
||||
protected function ctrlFgcanshare($group,$access) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
if($group->getFgcanshare()) {
|
||||
@ -697,6 +794,7 @@ class GroupController extends Controller
|
||||
$page=$this->getDoctrine()->getRepository("CadolesPortalBundle:Page")->clonePage(null,$group->getPagetemplate());
|
||||
$group->addPage($page);
|
||||
$page->setName("Groupe = ".$group->getLabel());
|
||||
if($access=="user")$page->setUser($this->getUser());
|
||||
|
||||
$em->persist($page);
|
||||
$em->persist($group);
|
||||
@ -713,6 +811,7 @@ class GroupController extends Controller
|
||||
$calendar->addGroup($group);
|
||||
$calendar->setColor($group->getColor());
|
||||
$calendar->setType(0);
|
||||
if($access=="user")$calendar->setUser($this->getUser());
|
||||
|
||||
$em->persist($calendar);
|
||||
$em->flush();
|
||||
@ -724,6 +823,7 @@ class GroupController extends Controller
|
||||
|
||||
$blog->setName("Groupe = ".$group->getLabel());
|
||||
$blog->addGroup($group);
|
||||
if($access=="user")$blog->setUser($this->getUser());
|
||||
|
||||
$em->persist($blog);
|
||||
$em->flush();
|
||||
|
@ -22,6 +22,7 @@ use Cadoles\CoreBundle\Entity\UserGroup;
|
||||
use Cadoles\CoreBundle\Entity\UserModo;
|
||||
use Cadoles\CoreBundle\Entity\Niveau01;
|
||||
use Cadoles\CoreBundle\Entity\Niveau02;
|
||||
use Cadoles\WebsocketBundle\Entity\Message;
|
||||
|
||||
use Cadoles\CoreBundle\Form\UserType;
|
||||
|
||||
@ -66,7 +67,7 @@ class UserController extends Controller
|
||||
$viewniveau02=$this->getParameter('viewniveau02');
|
||||
|
||||
// Nombre total d'enregistrement
|
||||
if($this->isGranted('ROLE_ADMIN'))
|
||||
if($this->isGranted('ROLE_ADMIN')||$access=="user")
|
||||
$total = $em->createQueryBuilder()->select('COUNT(user)')->from($this->labelentity,'user')->getQuery()->getSingleScalarResult();
|
||||
elseif($this->isGranted('ROLE_MODO')) {
|
||||
$usermodo=$this->get('security.token_storage')->getToken()->getUser()->getId();
|
||||
@ -79,7 +80,7 @@ class UserController extends Controller
|
||||
->setParameter("userid", $usermodo)
|
||||
->getQuery()->getSingleScalarResult();
|
||||
}
|
||||
elseif($this->isGranted('ROLE_USER')) {
|
||||
elseif($this->isGranted('ROLE_ANIM')||$this->isGranted('ROLE_USER')) {
|
||||
$niveau01=$this->get('security.token_storage')->getToken()->getUser()->getNiveau01();
|
||||
$total = $em->createQueryBuilder()
|
||||
->select('COUNT(user)')
|
||||
@ -93,7 +94,7 @@ class UserController extends Controller
|
||||
if($search["value"]=="")
|
||||
$totalf = $total;
|
||||
else {
|
||||
if($this->isGranted('ROLE_ADMIN'))
|
||||
if($this->isGranted('ROLE_ADMIN')||$access=="user")
|
||||
$totalf= $em->createQueryBuilder()
|
||||
->select('COUNT(user)')
|
||||
->from('CadolesCoreBundle:User','user')
|
||||
@ -117,7 +118,7 @@ class UserController extends Controller
|
||||
->setParameter("value", "%".$search["value"]."%")
|
||||
->getQuery()
|
||||
->getSingleScalarResult();
|
||||
elseif($this->isGranted('ROLE_USER'))
|
||||
elseif($this->isGranted('ROLE_ANIM')||$this->isGranted('ROLE_USER'))
|
||||
$totalf= $em->createQueryBuilder()
|
||||
->select('COUNT(user)')
|
||||
->from('CadolesCoreBundle:User','user')
|
||||
@ -141,7 +142,7 @@ class UserController extends Controller
|
||||
|
||||
// Parcours des Enregistrement
|
||||
$qb = $em->createQueryBuilder();
|
||||
if($this->isGranted('ROLE_ADMIN')) {
|
||||
if($this->isGranted('ROLE_ADMIN')||$access=="user") {
|
||||
$qb->select('user')->from($this->labelentity,'user')->from('CadolesCoreBundle:Niveau01','niveau01');
|
||||
$qb->where('user.niveau01=niveau01.id');
|
||||
}
|
||||
@ -152,7 +153,7 @@ class UserController extends Controller
|
||||
->andWhere("usermodo.user = :userid")
|
||||
->setParameter("userid", $usermodo);
|
||||
}
|
||||
elseif($this->isGranted('ROLE_USER')) {
|
||||
elseif($this->isGranted('ROLE_ANIM')||$this->isGranted('ROLE_USER')) {
|
||||
$qb->select('user')->from($this->labelentity,'user')->from('CadolesCoreBundle:Niveau01','niveau01');
|
||||
$qb->where('user.niveau01=niveau01.id')
|
||||
->andwhere("user.niveau01 = :niveau01")
|
||||
@ -310,14 +311,20 @@ class UserController extends Controller
|
||||
|
||||
// Ajout des groupes
|
||||
foreach($lstgroups as $idgroup) {
|
||||
$group= new UserGroup();
|
||||
$group=$em->getRepository("CadolesCoreBundle:Group")->find($idgroup);
|
||||
|
||||
$group->setUser($data);
|
||||
$datagroup = $em->getRepository("CadolesCoreBundle:Group")->find($idgroup);
|
||||
$group->setGroup($datagroup);
|
||||
$key = Uuid::uuid4();
|
||||
|
||||
$em->persist($group);
|
||||
$usergroup= new UserGroup();
|
||||
$usergroup->setUser($data);
|
||||
$datagroup = $group;
|
||||
$usergroup->setGroup($datagroup);
|
||||
$usergroup->setKeyvalue($key);
|
||||
$em->persist($usergroup);
|
||||
$em->flush();
|
||||
|
||||
$message="Inscription de l'utilisateur<br>".$data->getLastname()." ".$data->getFirstname()."<br>Par ".$this->getUser()->getLastname()." ".$this->getUser()->getFirstname();
|
||||
$websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key->toString(),$iduser,$idgroup,$message);
|
||||
}
|
||||
|
||||
// Ajout des modos
|
||||
@ -420,25 +427,35 @@ class UserController extends Controller
|
||||
$em->persist($data);
|
||||
$em->flush();
|
||||
|
||||
|
||||
// On récupère les groupes et on cacule ceux à ajouter ou à supprimer
|
||||
$lstgroups=array_filter(explode(",",$form->get("linkgroups")->getData()));
|
||||
$removegroups=array_diff($oldlstgroups,$lstgroups);
|
||||
$addgroups=array_diff($lstgroups,$oldlstgroups);
|
||||
|
||||
|
||||
// Ajout des nouveaux groupes
|
||||
foreach($addgroups as $idgroup) {
|
||||
$group= new UserGroup();
|
||||
$group=$em->getRepository("CadolesCoreBundle:Group")->find($idgroup);
|
||||
|
||||
$key = Uuid::uuid4();
|
||||
|
||||
$group->setUser($data);
|
||||
$datagroup = $em->getRepository("CadolesCoreBundle:Group")->find($idgroup);
|
||||
$group->setGroup($datagroup);
|
||||
|
||||
$em->persist($group);
|
||||
$usergroup= new UserGroup();
|
||||
$usergroup->setUser($data);
|
||||
$datagroup = $group;
|
||||
$usergroup->setGroup($datagroup);
|
||||
$usergroup->setKeyvalue($key);
|
||||
$em->persist($usergroup);
|
||||
$em->flush();
|
||||
|
||||
$message="Inscription de l'utilisateur<br>".$data->getLastname()." ".$data->getFirstname()."<br>Par ".$this->getUser()->getLastname()." ".$this->getUser()->getFirstname();
|
||||
$websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key->toString(),$id,$idgroup,$message);
|
||||
}
|
||||
|
||||
// Suppression des groupes obsolètes
|
||||
foreach($removegroups as $idgroup) {
|
||||
$group=$em->getRepository("CadolesCoreBundle:Group")->find($idgroup);
|
||||
|
||||
// Lien Group User
|
||||
$usergroups = $em ->createQueryBuilder()
|
||||
->select('table')
|
||||
@ -449,6 +466,9 @@ class UserController extends Controller
|
||||
->getQuery()
|
||||
->getResult();
|
||||
foreach($usergroups as $usergroup) {
|
||||
$message="Désinscription de l'utilisateur<br>".$data->getLastname()." ".$data->getFirstname()."<br>Par ".$this->getUser()->getLastname()." ".$this->getUser()->getFirstname();
|
||||
$websocket = $this->container->get('cadoles.websocket.pushmessage')->send($usergroup->getKeyvalue(),$id,$idgroup,$message);
|
||||
|
||||
$em->remove($usergroup);
|
||||
$em->flush();
|
||||
}
|
||||
|
@ -10,6 +10,8 @@ use Doctrine\Common\EventSubscriber;
|
||||
use Doctrine\ORM\Event\LifecycleEventArgs;
|
||||
use Doctrine\ORM\Event\PreUpdateEventArgs;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
use Ramsey\Uuid\Exception\UnsatisfiedDependencyException;
|
||||
|
||||
class syncUser implements EventSubscriber
|
||||
{
|
||||
@ -143,9 +145,11 @@ class syncUser implements EventSubscriber
|
||||
if($fgall) {
|
||||
$data=$this->em->getRepository('CadolesCoreBundle:UserGroup')->findBy(array('user'=>$user,'group'=>$fgall[0]));
|
||||
if(!$data) {
|
||||
$key = Uuid::uuid4();
|
||||
$data=new UserGroup();
|
||||
$data->setUser($user);
|
||||
$data->setGroup($fgall[0]);
|
||||
$data->setKeyvalue($key);
|
||||
$this->em->persist($data);
|
||||
$this->em->flush();
|
||||
}
|
||||
|
@ -33,174 +33,180 @@ class GroupType extends AbstractType
|
||||
|
||||
if($options["portal_activate"]) {
|
||||
$choices=array("oui" => "1","non" => "0");
|
||||
$builder->add("fgcanshare",
|
||||
ChoiceType::class,array(
|
||||
"label" =>"Groupe de Travail",
|
||||
'disabled' => ($options["mode"]=="delete"?true:false),
|
||||
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px"),
|
||||
"choices" => $choices
|
||||
)
|
||||
);
|
||||
|
||||
$builder->add('pagetemplate',
|
||||
EntityType::class,[
|
||||
"class" => "CadolesPortalBundle:Page",
|
||||
"label" => "Modèle de Page pour l'accueil du groupe",
|
||||
"required" => false,
|
||||
"choice_label" => "name",
|
||||
"query_builder"=> function (EntityRepository $er) {
|
||||
return $er->createQueryBuilder('page')->where('page.parentfor=:parentfor')->setParameter('parentfor', 'group');
|
||||
},
|
||||
"disabled" => ($options["mode"]=="delete"||$options["masteridentity"]!="SQL"?true:false),
|
||||
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px","readonly" => ($options["mode"]=="delete"?true:false))
|
||||
]);
|
||||
|
||||
$builder->add("fgcancreatepage",
|
||||
ChoiceType::class,array(
|
||||
"label" =>"Permission de créer des Pages",
|
||||
'disabled' => ($options["mode"]=="delete"?true:false),
|
||||
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px"),
|
||||
"choices" => $choices
|
||||
)
|
||||
);
|
||||
|
||||
$builder->add("fgcancreatecalendar",
|
||||
ChoiceType::class,array(
|
||||
"label" =>"Permission de créer des Calendriers",
|
||||
'disabled' => ($options["mode"]=="delete"?true:false),
|
||||
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px"),
|
||||
"choices" => $choices
|
||||
)
|
||||
);
|
||||
|
||||
$builder->add("fgcancreateblog",
|
||||
ChoiceType::class,array(
|
||||
"label" =>"Permission de créer des Blogs",
|
||||
'disabled' => ($options["mode"]=="delete"?true:false),
|
||||
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px"),
|
||||
"choices" => $choices
|
||||
)
|
||||
);
|
||||
|
||||
$builder->add('pages', Select2EntityType::class, [
|
||||
'label' => 'Afficher les Pages',
|
||||
'class' => 'CadolesPortalBundle:Page',
|
||||
'multiple' => true,
|
||||
'remote_route' => 'cadoles_portal_config_ajax_page_seleclist',
|
||||
'primary_key' => 'id',
|
||||
'text_property' => 'name',
|
||||
'minimum_input_length' => 0,
|
||||
'page_limit' => 100,
|
||||
'allow_clear' => true,
|
||||
'delay' => 250,
|
||||
'cache' => false,
|
||||
'cache_timeout' => 60000,
|
||||
'language' => 'fr',
|
||||
'placeholder' => 'Selectionner des pages',
|
||||
]);
|
||||
|
||||
$builder->add('items', Select2EntityType::class, [
|
||||
'label' => 'Afficher les Items',
|
||||
'class' => 'CadolesPortalBundle:Item',
|
||||
'multiple' => true,
|
||||
'remote_route' => 'cadoles_portal_config_ajax_item_seleclist',
|
||||
'primary_key' => 'id',
|
||||
'text_property' => 'title',
|
||||
'minimum_input_length' => 0,
|
||||
'page_limit' => 100,
|
||||
'allow_clear' => true,
|
||||
'delay' => 250,
|
||||
'cache' => false,
|
||||
'cache_timeout' => 60000,
|
||||
'language' => 'fr',
|
||||
'placeholder' => 'Selectionner des items',
|
||||
]);
|
||||
|
||||
$builder->add('alerts', Select2EntityType::class, [
|
||||
'label' => 'Afficher les Annonces',
|
||||
'class' => 'CadolesPortalBundle:Alert',
|
||||
'multiple' => true,
|
||||
'remote_route' => 'cadoles_portal_config_ajax_alert_seleclist',
|
||||
'primary_key' => 'id',
|
||||
'text_property' => 'title',
|
||||
'minimum_input_length' => 0,
|
||||
'page_limit' => 100,
|
||||
'allow_clear' => true,
|
||||
'delay' => 250,
|
||||
'cache' => false,
|
||||
'cache_timeout' => 60000,
|
||||
'language' => 'fr',
|
||||
'placeholder' => 'Selectionner des annonces',
|
||||
]);
|
||||
|
||||
$builder->add('calendars', Select2EntityType::class, [
|
||||
'label' => 'Afficher les Calendriers',
|
||||
'class' => 'CadolesPortalBundle:Calendar',
|
||||
'multiple' => true,
|
||||
'remote_route' => 'cadoles_portal_config_ajax_calendar_seleclist',
|
||||
'primary_key' => 'id',
|
||||
'text_property' => 'name',
|
||||
'minimum_input_length' => 0,
|
||||
'page_limit' => 100,
|
||||
'allow_clear' => true,
|
||||
'delay' => 250,
|
||||
'cache' => false,
|
||||
'cache_timeout' => 60000,
|
||||
'language' => 'fr',
|
||||
'placeholder' => 'Selectionner des calendriers',
|
||||
]);
|
||||
|
||||
$builder->add('blogs', Select2EntityType::class, [
|
||||
'label' => 'Afficher les Blogs',
|
||||
'class' => 'CadolesPortalBundle:Blog',
|
||||
'multiple' => true,
|
||||
'remote_route' => 'cadoles_portal_config_ajax_blog_seleclist',
|
||||
'primary_key' => 'id',
|
||||
'text_property' => 'name',
|
||||
'minimum_input_length' => 0,
|
||||
'page_limit' => 100,
|
||||
'allow_clear' => true,
|
||||
'delay' => 250,
|
||||
'cache' => false,
|
||||
'cache_timeout' => 60000,
|
||||
'language' => 'fr',
|
||||
'placeholder' => 'Selectionner des blogs',
|
||||
]);
|
||||
|
||||
$builder->add('fluxs', Select2EntityType::class, [
|
||||
'label' => 'Afficher les Flux',
|
||||
'class' => 'CadolesPortalBundle:Flux',
|
||||
'multiple' => true,
|
||||
'remote_route' => 'cadoles_portal_config_ajax_flux_seleclist',
|
||||
'primary_key' => 'id',
|
||||
'text_property' => 'title',
|
||||
'minimum_input_length' => 0,
|
||||
'page_limit' => 100,
|
||||
'allow_clear' => true,
|
||||
'delay' => 250,
|
||||
'cache' => false,
|
||||
'cache_timeout' => 60000,
|
||||
'language' => 'fr',
|
||||
'placeholder' => 'Selectionner des flux',
|
||||
]);
|
||||
if(!$options["fgall"]) {
|
||||
$builder->add("fgcanshare",
|
||||
ChoiceType::class,array(
|
||||
"label" =>"Groupe de Travail",
|
||||
'disabled' => ($options["mode"]=="delete"||$options["access"]=="user"?true:false),
|
||||
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px"),
|
||||
"choices" => $choices
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
$builder->add('notices', Select2EntityType::class, [
|
||||
'label' => 'Afficher les Chartes',
|
||||
'class' => 'CadolesPortalBundle:Notice',
|
||||
'multiple' => true,
|
||||
'remote_route' => 'cadoles_portal_config_ajax_notice_seleclist',
|
||||
'primary_key' => 'id',
|
||||
'text_property' => 'title',
|
||||
'minimum_input_length' => 0,
|
||||
'page_limit' => 100,
|
||||
'allow_clear' => true,
|
||||
'delay' => 250,
|
||||
'cache' => false,
|
||||
'cache_timeout' => 60000,
|
||||
'language' => 'fr',
|
||||
'placeholder' => 'Selectionner des chartes',
|
||||
]);
|
||||
$builder->add('pagetemplate',
|
||||
EntityType::class,[
|
||||
"class" => "CadolesPortalBundle:Page",
|
||||
"label" => "Modèle de Page pour l'accueil du groupe",
|
||||
"required" => false,
|
||||
"choice_label" => "name",
|
||||
"query_builder"=> function (EntityRepository $er) {
|
||||
return $er->createQueryBuilder('page')->where('page.parentfor=:parentfor')->setParameter('parentfor', 'group');
|
||||
},
|
||||
"disabled" => ($options["mode"]=="delete"||$options["masteridentity"]!="SQL"?true:false),
|
||||
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px","readonly" => ($options["mode"]=="delete"?true:false))
|
||||
]);
|
||||
}
|
||||
|
||||
if($options["access"]=="config") {
|
||||
$builder->add("fgcancreatepage",
|
||||
ChoiceType::class,array(
|
||||
"label" =>"Permission de créer des Pages",
|
||||
'disabled' => ($options["mode"]=="delete"?true:false),
|
||||
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px"),
|
||||
"choices" => $choices
|
||||
)
|
||||
);
|
||||
|
||||
$builder->add("fgcancreatecalendar",
|
||||
ChoiceType::class,array(
|
||||
"label" =>"Permission de créer des Calendriers",
|
||||
'disabled' => ($options["mode"]=="delete"?true:false),
|
||||
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px"),
|
||||
"choices" => $choices
|
||||
)
|
||||
);
|
||||
|
||||
$builder->add("fgcancreateblog",
|
||||
ChoiceType::class,array(
|
||||
"label" =>"Permission de créer des Blogs",
|
||||
'disabled' => ($options["mode"]=="delete"?true:false),
|
||||
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px"),
|
||||
"choices" => $choices
|
||||
)
|
||||
);
|
||||
|
||||
$builder->add('pages', Select2EntityType::class, [
|
||||
'label' => 'Afficher les Pages',
|
||||
'class' => 'CadolesPortalBundle:Page',
|
||||
'multiple' => true,
|
||||
'remote_route' => 'cadoles_portal_config_ajax_page_seleclist',
|
||||
'primary_key' => 'id',
|
||||
'text_property' => 'name',
|
||||
'minimum_input_length' => 0,
|
||||
'page_limit' => 100,
|
||||
'allow_clear' => true,
|
||||
'delay' => 250,
|
||||
'cache' => false,
|
||||
'cache_timeout' => 60000,
|
||||
'language' => 'fr',
|
||||
'placeholder' => 'Selectionner des pages',
|
||||
]);
|
||||
|
||||
$builder->add('items', Select2EntityType::class, [
|
||||
'label' => 'Afficher les Items',
|
||||
'class' => 'CadolesPortalBundle:Item',
|
||||
'multiple' => true,
|
||||
'remote_route' => 'cadoles_portal_config_ajax_item_seleclist',
|
||||
'primary_key' => 'id',
|
||||
'text_property' => 'title',
|
||||
'minimum_input_length' => 0,
|
||||
'page_limit' => 100,
|
||||
'allow_clear' => true,
|
||||
'delay' => 250,
|
||||
'cache' => false,
|
||||
'cache_timeout' => 60000,
|
||||
'language' => 'fr',
|
||||
'placeholder' => 'Selectionner des items',
|
||||
]);
|
||||
|
||||
$builder->add('alerts', Select2EntityType::class, [
|
||||
'label' => 'Afficher les Annonces',
|
||||
'class' => 'CadolesPortalBundle:Alert',
|
||||
'multiple' => true,
|
||||
'remote_route' => 'cadoles_portal_config_ajax_alert_seleclist',
|
||||
'primary_key' => 'id',
|
||||
'text_property' => 'title',
|
||||
'minimum_input_length' => 0,
|
||||
'page_limit' => 100,
|
||||
'allow_clear' => true,
|
||||
'delay' => 250,
|
||||
'cache' => false,
|
||||
'cache_timeout' => 60000,
|
||||
'language' => 'fr',
|
||||
'placeholder' => 'Selectionner des annonces',
|
||||
]);
|
||||
|
||||
$builder->add('calendars', Select2EntityType::class, [
|
||||
'label' => 'Afficher les Calendriers',
|
||||
'class' => 'CadolesPortalBundle:Calendar',
|
||||
'multiple' => true,
|
||||
'remote_route' => 'cadoles_portal_config_ajax_calendar_seleclist',
|
||||
'primary_key' => 'id',
|
||||
'text_property' => 'name',
|
||||
'minimum_input_length' => 0,
|
||||
'page_limit' => 100,
|
||||
'allow_clear' => true,
|
||||
'delay' => 250,
|
||||
'cache' => false,
|
||||
'cache_timeout' => 60000,
|
||||
'language' => 'fr',
|
||||
'placeholder' => 'Selectionner des calendriers',
|
||||
]);
|
||||
|
||||
$builder->add('blogs', Select2EntityType::class, [
|
||||
'label' => 'Afficher les Blogs',
|
||||
'class' => 'CadolesPortalBundle:Blog',
|
||||
'multiple' => true,
|
||||
'remote_route' => 'cadoles_portal_config_ajax_blog_seleclist',
|
||||
'primary_key' => 'id',
|
||||
'text_property' => 'name',
|
||||
'minimum_input_length' => 0,
|
||||
'page_limit' => 100,
|
||||
'allow_clear' => true,
|
||||
'delay' => 250,
|
||||
'cache' => false,
|
||||
'cache_timeout' => 60000,
|
||||
'language' => 'fr',
|
||||
'placeholder' => 'Selectionner des blogs',
|
||||
]);
|
||||
|
||||
$builder->add('fluxs', Select2EntityType::class, [
|
||||
'label' => 'Afficher les Flux',
|
||||
'class' => 'CadolesPortalBundle:Flux',
|
||||
'multiple' => true,
|
||||
'remote_route' => 'cadoles_portal_config_ajax_flux_seleclist',
|
||||
'primary_key' => 'id',
|
||||
'text_property' => 'title',
|
||||
'minimum_input_length' => 0,
|
||||
'page_limit' => 100,
|
||||
'allow_clear' => true,
|
||||
'delay' => 250,
|
||||
'cache' => false,
|
||||
'cache_timeout' => 60000,
|
||||
'language' => 'fr',
|
||||
'placeholder' => 'Selectionner des flux',
|
||||
]);
|
||||
|
||||
|
||||
$builder->add('notices', Select2EntityType::class, [
|
||||
'label' => 'Afficher les Chartes',
|
||||
'class' => 'CadolesPortalBundle:Notice',
|
||||
'multiple' => true,
|
||||
'remote_route' => 'cadoles_portal_config_ajax_notice_seleclist',
|
||||
'primary_key' => 'id',
|
||||
'text_property' => 'title',
|
||||
'minimum_input_length' => 0,
|
||||
'page_limit' => 100,
|
||||
'allow_clear' => true,
|
||||
'delay' => 250,
|
||||
'cache' => false,
|
||||
'cache_timeout' => 60000,
|
||||
'language' => 'fr',
|
||||
'placeholder' => 'Selectionner des chartes',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
$builder->add('idicon', HiddenType::class,['mapped'=> false,'data' => $options["idicon"]]);
|
||||
@ -293,9 +299,11 @@ class GroupType extends AbstractType
|
||||
$resolver->setDefaults(array(
|
||||
'data_class' => 'Cadoles\CoreBundle\Entity\Group',
|
||||
'mode' => "string",
|
||||
'access' => "string",
|
||||
'masteridentity' => "string",
|
||||
'portal_activate' => "boolean",
|
||||
'updatelimite' => "boolean",
|
||||
'fgall' => "boolean",
|
||||
'idicon' => "string",
|
||||
));
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ class UserType extends AbstractType
|
||||
);
|
||||
|
||||
if($options["access"]=="config") {
|
||||
$choices=array("Utilisateur" => "ROLE_USER","Modérateur" => "ROLE_MODO","Administrateur" => "ROLE_ADMIN");
|
||||
$choices=array("Utilisateur" => "ROLE_USER","Animateur de Groupe" => "ROLE_ANIM","Modérateur" => "ROLE_MODO","Administrateur" => "ROLE_ADMIN");
|
||||
$onfocus=($options["perm"]?"":"this.defaultIndex=this.selectedIndex;");
|
||||
$onchange=($options["perm"]?"":"this.selectedIndex=this.defaultIndex;");
|
||||
$readonly=($options["perm"]?"":" background-color: #eee;");
|
||||
|
@ -4,6 +4,8 @@ namespace Cadoles\CoreBundle\Repository;
|
||||
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Cadoles\CoreBundle\Entity\UserGroup;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
use Ramsey\Uuid\Exception\UnsatisfiedDependencyException;
|
||||
|
||||
class GroupRepository extends \Doctrine\ORM\EntityRepository
|
||||
{
|
||||
@ -56,9 +58,11 @@ class GroupRepository extends \Doctrine\ORM\EntityRepository
|
||||
foreach($retgroups as $retgroup) {
|
||||
$usergroup=$this->_em->getRepository('CadolesCoreBundle:UserGroup')->findBy(["user"=>$user,"group"=>$retgroup]);
|
||||
if(!$usergroup) {
|
||||
$key = Uuid::uuid4();
|
||||
$usergroup=new UserGroup();
|
||||
$usergroup->setUser($user);
|
||||
$usergroup->setGroup($retgroup);
|
||||
$usergroup->setKeyvalue($key);
|
||||
|
||||
$this->_em->persist($usergroup);
|
||||
$this->_em->flush();
|
||||
|
@ -249,15 +249,15 @@ cadoles_core_config_importuser_filectrl:
|
||||
defaults: { _controller: CadolesCoreBundle:User:importuserfilectrl }
|
||||
|
||||
#-- Access user
|
||||
cadoles_core_profil:
|
||||
cadoles_core_user:
|
||||
path: /user
|
||||
defaults: { _controller: CadolesCoreBundle:User:profil }
|
||||
|
||||
cadoles_core_profil_user_ajax_list:
|
||||
cadoles_core_user_user_ajax_list:
|
||||
path: /user/user/ajax/list
|
||||
defaults: { _controller: CadolesCoreBundle:User:ajaxlist, access: user }
|
||||
|
||||
cadoles_core_profil_users:
|
||||
cadoles_core_user_users:
|
||||
path: /user/users
|
||||
defaults: { _controller: CadolesCoreBundle:User:list, access: user }
|
||||
|
||||
@ -311,50 +311,95 @@ cadoles_core_config_niveau02_ajax_list:
|
||||
|
||||
|
||||
#== Group ================================================================================================================
|
||||
#-- Access config
|
||||
cadoles_core_config_group:
|
||||
path: /config/group
|
||||
defaults: { _controller: CadolesCoreBundle:Group:list }
|
||||
defaults: { _controller: CadolesCoreBundle:Group:list, access: config }
|
||||
|
||||
cadoles_core_config_group_submit:
|
||||
path: /config/group/submit
|
||||
defaults: { _controller: CadolesCoreBundle:Group:submit }
|
||||
defaults: { _controller: CadolesCoreBundle:Group:submit, access: config }
|
||||
|
||||
cadoles_core_config_group_update:
|
||||
path: /config/group/update/{id}
|
||||
defaults: { _controller: CadolesCoreBundle:Group:update }
|
||||
defaults: { _controller: CadolesCoreBundle:Group:update, access: config }
|
||||
|
||||
cadoles_core_config_group_delete:
|
||||
path: /config/group/delete/{id}
|
||||
defaults: { _controller: CadolesCoreBundle:Group:delete }
|
||||
defaults: { _controller: CadolesCoreBundle:Group:delete, access: config }
|
||||
|
||||
cadoles_core_config_group_ajax_list:
|
||||
path: /config/group/ajax/list
|
||||
defaults: { _controller: CadolesCoreBundle:Group:ajaxlist }
|
||||
defaults: { _controller: CadolesCoreBundle:Group:ajaxlist, access: config }
|
||||
|
||||
cadoles_core_config_group_users:
|
||||
path: /config/group/users/{id}
|
||||
defaults: { _controller: CadolesCoreBundle:Group:users }
|
||||
defaults: { _controller: CadolesCoreBundle:Group:users, access: config }
|
||||
|
||||
cadoles_core_config_group_ajax_usersnotin:
|
||||
path: /config/group/ajax/usersnotin/{id}
|
||||
defaults: { _controller: CadolesCoreBundle:Group:ajaxusersnotin }
|
||||
defaults: { _controller: CadolesCoreBundle:Group:ajaxusersnotin, access: config }
|
||||
|
||||
cadoles_core_config_group_ajax_usersin:
|
||||
path: /config/group/ajax/usersin/{id}
|
||||
defaults: { _controller: CadolesCoreBundle:Group:ajaxusersin }
|
||||
defaults: { _controller: CadolesCoreBundle:Group:ajaxusersin, access: config }
|
||||
|
||||
cadoles_core_config_group_ajax_usergroup_add:
|
||||
path: /config/group/ajax/usergroupadd
|
||||
defaults: { _controller: CadolesCoreBundle:Group:usergroupadd }
|
||||
defaults: { _controller: CadolesCoreBundle:Group:usergroupadd, access: config }
|
||||
|
||||
cadoles_core_config_group_ajax_usergroup_del:
|
||||
path: /config/group/ajax/usergroupdel
|
||||
defaults: { _controller: CadolesCoreBundle:Group:usergroupdel }
|
||||
defaults: { _controller: CadolesCoreBundle:Group:usergroupdel, access: config }
|
||||
|
||||
cadoles_core_config_group_ajax_switchmanager:
|
||||
path: /config/group/ajax/switchmanager
|
||||
defaults: { _controller: CadolesCoreBundle:Group:switchmanager }
|
||||
defaults: { _controller: CadolesCoreBundle:Group:switchmanager, access: config }
|
||||
|
||||
#-- Access user
|
||||
cadoles_core_user_group:
|
||||
path: /user/group
|
||||
defaults: { _controller: CadolesCoreBundle:Group:list, access: user }
|
||||
|
||||
cadoles_core_user_group_ajax_list:
|
||||
path: /user/group/ajax/list
|
||||
defaults: { _controller: CadolesCoreBundle:Group:ajaxlist, access: user }
|
||||
|
||||
cadoles_core_user_group_submit:
|
||||
path: /user/group/submit
|
||||
defaults: { _controller: CadolesCoreBundle:Group:submit, access: user }
|
||||
|
||||
cadoles_core_user_group_update:
|
||||
path: /user/group/update/{id}
|
||||
defaults: { _controller: CadolesCoreBundle:Group:update, access: user }
|
||||
|
||||
cadoles_core_user_group_delete:
|
||||
path: /user/group/delete/{id}
|
||||
defaults: { _controller: CadolesCoreBundle:Group:delete, access: user }
|
||||
|
||||
cadoles_core_user_group_users:
|
||||
path: /user/group/users/{id}
|
||||
defaults: { _controller: CadolesCoreBundle:Group:users, access: user }
|
||||
|
||||
cadoles_core_user_group_ajax_usersnotin:
|
||||
path: /user/group/ajax/usersnotin/{id}
|
||||
defaults: { _controller: CadolesCoreBundle:Group:ajaxusersnotin, access: user }
|
||||
|
||||
cadoles_core_user_group_ajax_usersin:
|
||||
path: /user/group/ajax/usersin/{id}
|
||||
defaults: { _controller: CadolesCoreBundle:Group:ajaxusersin, access: user }
|
||||
|
||||
cadoles_core_user_group_ajax_usergroup_add:
|
||||
path: /user/group/ajax/usergroupadd
|
||||
defaults: { _controller: CadolesCoreBundle:Group:usergroupadd, access: user }
|
||||
|
||||
cadoles_core_user_group_ajax_usergroup_del:
|
||||
path: /user/group/ajax/usergroupdel
|
||||
defaults: { _controller: CadolesCoreBundle:Group:usergroupdel, access: user }
|
||||
|
||||
cadoles_core_user_group_ajax_switchmanager:
|
||||
path: /user/group/ajax/switchmanager
|
||||
defaults: { _controller: CadolesCoreBundle:Group:switchmanager, access: user }
|
||||
|
||||
#== Whitelist ============================================================================================================
|
||||
cadoles_core_config_whitelist:
|
||||
|
@ -42,6 +42,9 @@
|
||||
<img id="logo" src="/{{ alias }}/{{ app.session.get('logo') }}">
|
||||
<h1>{{ app.session.get('appname') }}</h1>
|
||||
<h2>Vous avez perdu votre connection</h2>
|
||||
ou
|
||||
<h2>Vous n'avez plus accès à cette page</h2>
|
||||
<br><br>
|
||||
Vous allez être redirigé vers la page d'accueil
|
||||
<br>
|
||||
</div>
|
||||
|
@ -12,7 +12,7 @@
|
||||
{% endif %}
|
||||
</h1>
|
||||
|
||||
{{ form_widget(form.submit) }} <a class="btn btn-default" href={{ path('cadoles_core_config_group') }}>Annuler</a>
|
||||
{{ form_widget(form.submit) }} <a class="btn btn-default" href={{ path('cadoles_core_'~access~'_group') }}>Annuler</a>
|
||||
|
||||
<br><br>
|
||||
|
||||
@ -96,7 +96,7 @@
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6">
|
||||
{% if form.fgcanshare is defined %}
|
||||
{% if form.fgcancreatepage is defined %}
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<i class="fa fa-pencil fa-fw"></i> Permissions Portail
|
||||
|
@ -1,13 +1,27 @@
|
||||
{% extends '@CadolesCore/base.html.twig' %}
|
||||
|
||||
{% block pagewrapper %}
|
||||
<h1 class="page-header">Gestion des Groupes</h1>
|
||||
<h1 class="page-header">
|
||||
{%if access=="config" %}
|
||||
Gestion des Groupes
|
||||
{%else%}
|
||||
Mes Groupes de Travail
|
||||
{%endif%}
|
||||
</h1>
|
||||
|
||||
<p><a class="btn btn-success" href={{ path('cadoles_core_config_group_submit') }}>Ajouter</a></p>
|
||||
{% if is_granted('ROLE_ADMIN') or is_granted('ROLE_MODO') or is_granted('ROLE_ANIM') %}
|
||||
<p><a class="btn btn-success" href={{ path('cadoles_core_'~access~'_group_submit') }}>
|
||||
{% if access=="config" %}
|
||||
Ajouter
|
||||
{% else %}
|
||||
Créer un Groupe de Travail
|
||||
{% endif %}
|
||||
</a></p>
|
||||
{% endif %}
|
||||
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<i class="fa fa-table fa-fw"></i> Liste des Groupes
|
||||
<i class="fa fa-table fa-fw"></i>Liste des Groupes
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
@ -21,10 +35,12 @@
|
||||
<th class="no-sort {% if masteridentity=="SQL" %} no-visible {% endif %}">Filtre</th>
|
||||
{% if portal_activate %}
|
||||
<th>Groupe de Travail</th>
|
||||
{% if access=="config" %}
|
||||
<th>Création Pages</th>
|
||||
<th>Création Calendriers</th>
|
||||
<th>Création Blogs</th>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
@ -43,7 +59,7 @@
|
||||
order: [[ 1, "asc" ]],
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: "{{ path('cadoles_core_config_group_ajax_list') }}",
|
||||
ajax: "{{ path('cadoles_core_'~access~'_group_ajax_list') }}",
|
||||
});
|
||||
});
|
||||
{% endblock %}
|
||||
|
@ -3,8 +3,7 @@
|
||||
{% block pagewrapper %}
|
||||
<h1 class="page-header">Gestion des Utilisateurs</h1>
|
||||
<h2>Groupe = {{ group.label }}</h2>
|
||||
|
||||
<a class="btn btn-default" href={{ path('cadoles_core_config_group') }}>Fermer</a>
|
||||
<a class="btn btn-default" href={{ path('cadoles_core_'~access~'_group') }}>Fermer</a>
|
||||
<br><br>
|
||||
|
||||
<div class="col-sm-6">
|
||||
@ -22,7 +21,9 @@
|
||||
<th width="70px" class="no-sort">Avatar</th>
|
||||
<th width="200px">Login</th>
|
||||
<th>Email</th>
|
||||
<th class="no-sort no-visible">Manager</th>
|
||||
{% if group.fgcanshare %}
|
||||
<th class="no-sort">Manager</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
@ -45,8 +46,10 @@
|
||||
<th width="70px" class="no-sort">Action</th>
|
||||
<th width="70px" class="no-sort">Avatar</th>
|
||||
<th width="200px">Login</th>
|
||||
<th>Email</th>
|
||||
<th class="no-sort {% if not group.fgcanshare %}no-visible{% endif %}">Manager</th>
|
||||
<th>Email</th>
|
||||
{% if group.fgcanshare %}
|
||||
<th class="no-sort">Manager</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
@ -60,13 +63,13 @@
|
||||
{% block localjavascript %}
|
||||
$(document).ready(function() {
|
||||
$('#dataTablesnotin').DataTable({
|
||||
columnDefs: [ { "targets": 'no-sort', "orderable": false } ],
|
||||
columnDefs: [ { "targets": 'no-sort', "orderable": false },{ "targets": 'no-visible', "visible": false } ],
|
||||
responsive: true,
|
||||
iDisplayLength: 100,
|
||||
order: [[ 2, "asc" ]],
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: "{{ path('cadoles_core_config_group_ajax_usersnotin',{'id':group.id}) }}",
|
||||
ajax: "{{ path('cadoles_core_'~access~'_group_ajax_usersnotin',{'id':group.id}) }}",
|
||||
});
|
||||
|
||||
$('#dataTablesin').DataTable({
|
||||
@ -77,10 +80,10 @@
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: {
|
||||
"url": "{{ path('cadoles_core_config_group_ajax_usersin',{'id':group.id}) }}",
|
||||
"url": "{{ path('cadoles_core_'~access~'_group_ajax_usersin',{'id':group.id}) }}",
|
||||
"data": function ( d ) {
|
||||
return $.extend( {}, d, {
|
||||
"fgcanshare": {{ group.fgcanshare }}
|
||||
"fgcanshare": "{{ group.fgcanshare }}"
|
||||
});
|
||||
}
|
||||
},
|
||||
@ -96,7 +99,7 @@
|
||||
$.ajax({
|
||||
rowId: 2,
|
||||
method: "POST",
|
||||
url: "{{ path('cadoles_core_config_group_ajax_usergroup_add') }}",
|
||||
url: "{{ path('cadoles_core_'~access~'_group_ajax_usergroup_add') }}",
|
||||
data: "userid="+userid+"&groupid="+{{ group.id }},
|
||||
success: function(data, dataType)
|
||||
{
|
||||
@ -118,7 +121,7 @@
|
||||
$.ajax({
|
||||
rowId: 2,
|
||||
method: "POST",
|
||||
url: "{{ path('cadoles_core_config_group_ajax_usergroup_del') }}",
|
||||
url: "{{ path('cadoles_core_'~access~'_group_ajax_usergroup_del') }}",
|
||||
data: "userid="+userid+"&groupid="+{{ group.id }},
|
||||
success: function(data, dataType)
|
||||
{
|
||||
@ -139,7 +142,7 @@
|
||||
function switchManager(id) {
|
||||
$.ajax({
|
||||
method: "POST",
|
||||
url: "{{ path('cadoles_core_config_group_ajax_switchmanager') }}",
|
||||
url: "{{ path('cadoles_core_'~access~'_group_ajax_switchmanager') }}",
|
||||
data: {
|
||||
"group": {{ group.id }},
|
||||
"user": id,
|
||||
|
@ -2,9 +2,10 @@
|
||||
{% if is_granted('ROLE_ADMIN') or is_granted('ROLE_MODO') %}
|
||||
<li><a href="{{ path('cadoles_core_config') }}" title="Configuration"><i class="fa fa-gear fa-fw"></i></a>
|
||||
{% endif %}
|
||||
<li><a href="{{ path('cadoles_core_profil_users') }}" title="Annuaire"><i class="fa fa-users fa-fw"></i></a>
|
||||
<li><a href="{{ path('cadoles_core_user_users') }}" title="Annuaire"><i class="fa fa-address-book fa-fw"></i></a>
|
||||
<li><a href="{{ path('cadoles_core_user_group') }}" title="Groupes"><i class="fa fa-users fa-fw"></i></a>
|
||||
<li><a href="{{ path('cadoles_portal_user_notice_view') }}" title="Charte"><i class="fa fa-info fa-fw"></i></a>
|
||||
<li><a href="{{ path('cadoles_core_profil') }}" title="Profil"><img class='avatar' src="/{{ alias }}/uploads/avatar/{{ app.user.avatar }}"></a></li>
|
||||
<li><a href="{{ path('cadoles_core_user') }}" title="Profil"><img class='avatar' src="/{{ alias }}/uploads/avatar/{{ app.user.avatar }}"></a></li>
|
||||
|
||||
|
||||
<li>
|
||||
|
@ -54,7 +54,11 @@
|
||||
|
||||
<div class="row">
|
||||
<div style="width:90px; margin:auto;">
|
||||
<img id="user_avatar_img" src="/{{ alias }}/uploads/avatar/{{ user.avatar }}" class="avatar big" >
|
||||
{% set avatar= "noavatar.png" %}
|
||||
{% if user.avatar %}
|
||||
{% set avatar= user.avatar %}
|
||||
{% endif %}
|
||||
<img id="user_avatar_img" src="/{{ alias }}/uploads/avatar/{{ avatar }}" class="avatar big" >
|
||||
{{ form_widget(form.avatar) }}
|
||||
<a class="btn btn-info" style="width:100%; margin-bottom:15px;" data-toggle="modal" data-target="#mymodal" onClick="ModalLoad('mymodal','Avatar','{{ path('cadoles_core_crop01') }}');" title='Ajouter un avatar'>Modifier</a>
|
||||
</div>
|
||||
@ -134,7 +138,7 @@
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<a class="btn btn-success" data-toggle="modal" data-target="#groupmodal" title='Ajouter'>Ajouter</a>
|
||||
<a class="btn btn-success" data-toggle="modal" data-target="#groupmodal" title='Ajouter'>Inscription à un Groupe</a>
|
||||
<br><br>
|
||||
|
||||
|
||||
@ -152,8 +156,8 @@
|
||||
<tbody>
|
||||
{% for group in user.groups %}
|
||||
<tr id="linkgroup{{ group.group.id }}">
|
||||
{% if (access=="config" or group.group.fgopen) and not group.group.fgall and group.group.ldapfilter=="" and group.group.attributes =="" %}
|
||||
<td><a style="cursor:pointer"><i class="fa fa-trash fa-fw" onclick="removeLinkGroup({{ group.group.id }})"></i></a></td>
|
||||
{% if (access=="config" or group.group.fgopen or group.group.fgcanshare) and group.group.owner!=app.user and not group.group.fgall and group.group.ldapfilter=="" and group.group.attributes =="" %}
|
||||
<td><a style="cursor:pointer" title="Se Désinscrire"><i class="fa fa-sign-out fa-fw" onclick="removeLinkGroup({{ group.group.id }})"></i></a></td>
|
||||
{% else %}
|
||||
<td></td>
|
||||
{% endif %}
|
||||
@ -383,7 +387,8 @@
|
||||
})
|
||||
.error(function(){
|
||||
var imgSrc = $(this).attr('src');
|
||||
$(this).attr('src',imgSrc);
|
||||
if(imgSrc!="/{{alias}}/uploads/avatar/")
|
||||
$(this).attr('src',imgSrc);
|
||||
});
|
||||
|
||||
$(document.body).on("change","#user_birthcountry",function(){
|
||||
@ -445,14 +450,16 @@
|
||||
});
|
||||
|
||||
function removeLinkGroup(id) {
|
||||
// On supprime la ligne du tableau
|
||||
$("#linkgroup"+id).remove();
|
||||
if (confirm("Désirez vous vraiment vous désinscrire de ce groupe ?")) {
|
||||
// On supprime la ligne du tableau
|
||||
$("#linkgroup"+id).remove();
|
||||
|
||||
// On supprime l'id de la liste
|
||||
$("#user_linkgroups").val($("#user_linkgroups").val().replace(id+",",""));
|
||||
// On supprime l'id de la liste
|
||||
$("#user_linkgroups").val($("#user_linkgroups").val().replace(id+",",""));
|
||||
|
||||
// On rend visible la ligne de liste complète
|
||||
$("#listgroup"+id).show();
|
||||
// On rend visible la ligne de liste complète
|
||||
$("#listgroup"+id).show();
|
||||
}
|
||||
}
|
||||
|
||||
function addLinkGroup(id) {
|
||||
@ -464,7 +471,7 @@
|
||||
|
||||
// On ajoute la ligne de liste des liens
|
||||
html ="<tr id='linkgroup"+id+"'>";
|
||||
html+="<td><a style='cursor:pointer'><i class='fa fa-trash fa-fw' onclick='removeLinkGroup("+id+")'></i></a></td>";
|
||||
html+="<td><a style='cursor:pointer' title='Se Désinscrire'><i class='fa fa-sign-out fa-fw' onclick='removeLinkGroup("+id+")'></i></a></td>";
|
||||
html+="<td>"+$("#listgrouplabel"+id).html()+"</td>";
|
||||
html+="</tr>";
|
||||
|
||||
|
@ -68,7 +68,7 @@
|
||||
ajax: "{{ path('cadoles_core_config_user_ajax_list') }}",
|
||||
{% else %}
|
||||
order: [[ 1, "asc" ]],
|
||||
ajax: "{{ path('cadoles_core_profil_user_ajax_list') }}",
|
||||
ajax: "{{ path('cadoles_core_user_user_ajax_list') }}",
|
||||
{% endif %}
|
||||
});
|
||||
});
|
||||
|
@ -43,6 +43,7 @@ class InitDataCommand extends ContainerAwareCommand
|
||||
$activate_widopensondage = $this->getContainer()->getParameter('activate_widopensondage');
|
||||
$activate_widpiwik = $this->getContainer()->getParameter('activate_widpiwik');
|
||||
$activate_widwordpress = $this->getContainer()->getParameter('activate_widwordpress');
|
||||
$activate_websocket = $this->getContainer()->getParameter('websocket_activate');
|
||||
|
||||
$output->writeln('PORTAL = Default Data');
|
||||
|
||||
@ -670,22 +671,27 @@ class InitDataCommand extends ContainerAwareCommand
|
||||
|
||||
// Widget Chat
|
||||
$entityWidget = $em->getRepository('CadolesPortalBundle:Widget')->find(-1840);
|
||||
if(!$entityWidget) $entityWidget = new Widget();
|
||||
$entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_chat.png"]);
|
||||
$entityWidget->setId(-1840);
|
||||
$entityWidget->setRoworder(2);
|
||||
$entityWidget->setIcon($entityicon);
|
||||
$entityWidget->setName('Chat');
|
||||
$entityWidget->setDescription("Conversation instantanée");
|
||||
$entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_chat");
|
||||
$entityWidget->setHeight("1000");
|
||||
$entityWidget->setAutoajust(false);
|
||||
$entityWidget->setBorder(true);
|
||||
$entityWidget->setOpened(true);
|
||||
$entityWidget->setAccess(["config","user","group"]);
|
||||
$parameter = json_decode('{"fields": []}');
|
||||
$entityWidget->setParameter($parameter);
|
||||
$em->persist($entityWidget);
|
||||
if($activate_websocket) {
|
||||
if(!$entityWidget) $entityWidget = new Widget();
|
||||
$entityicon = $em->getRepository('CadolesPortalBundle:Icon')->findoneby(["label"=>"uploads/icon/icon_chat.png"]);
|
||||
$entityWidget->setId(-1840);
|
||||
$entityWidget->setRoworder(2);
|
||||
$entityWidget->setIcon($entityicon);
|
||||
$entityWidget->setName('Chat');
|
||||
$entityWidget->setDescription("Conversation instantanée");
|
||||
$entityWidget->setRouteview("cadoles_portal_config_panelwidget_view_chat");
|
||||
$entityWidget->setHeight("1000");
|
||||
$entityWidget->setAutoajust(false);
|
||||
$entityWidget->setBorder(true);
|
||||
$entityWidget->setOpened(true);
|
||||
$entityWidget->setAccess(["config","user","group"]);
|
||||
$parameter = json_decode('{"fields": []}');
|
||||
$entityWidget->setParameter($parameter);
|
||||
$em->persist($entityWidget);
|
||||
}
|
||||
else {
|
||||
$em->remove($entityWidget);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -1816,7 +1816,7 @@ class PagewidgetController extends Controller
|
||||
|
||||
foreach($group->getUsers() as $usergroup) {
|
||||
|
||||
array_push($members,$usergroup->getUser());
|
||||
array_push($members,$usergroup);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -46,10 +46,11 @@ class AlertType extends AbstractType
|
||||
->add('roles', ChoiceType::class, [
|
||||
"label" => 'Visible pour les Rôles',
|
||||
"choices" => [
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Animateur de Groupe" => 'ROLE_ANIM',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
],
|
||||
"multiple" => true,
|
||||
"expanded" => true,
|
||||
|
@ -32,10 +32,11 @@ class BlogType extends AbstractType
|
||||
->add('roles', ChoiceType::class, [
|
||||
"label" => 'Visible pour les Rôles',
|
||||
"choices" => [
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Animateur de Groupe" => 'ROLE_ANIM',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
],
|
||||
"multiple" => true,
|
||||
"expanded" => true,
|
||||
|
@ -70,10 +70,11 @@ class CalendarType extends AbstractType
|
||||
->add('roles', ChoiceType::class, [
|
||||
"label" => 'Visible pour les Rôles',
|
||||
"choices" => [
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Animateur de Groupe" => 'ROLE_ANIM',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
],
|
||||
"multiple" => true,
|
||||
"expanded" => true,
|
||||
|
@ -45,10 +45,11 @@ class FluxType extends AbstractType
|
||||
->add('roles', ChoiceType::class, [
|
||||
"label" => 'Visible pour les Rôles',
|
||||
"choices" => [
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Animateur de Groupe" => 'ROLE_ANIM',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
],
|
||||
"multiple" => true,
|
||||
"expanded" => true,
|
||||
|
@ -58,10 +58,11 @@ class ItemType extends AbstractType
|
||||
->add('roles', ChoiceType::class, [
|
||||
"label" => 'Visible pour les Rôles',
|
||||
"choices" => [
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Animateur de Groupe" => 'ROLE_ANIM',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
],
|
||||
"multiple" => true,
|
||||
"expanded" => true,
|
||||
|
@ -53,10 +53,11 @@ class NoticeType extends AbstractType
|
||||
->add('roles', ChoiceType::class, [
|
||||
"label" => 'Visible pour les Rôles',
|
||||
"choices" => [
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Animateur de Groupe" => 'ROLE_ANIM',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
],
|
||||
"multiple" => true,
|
||||
"expanded" => true,
|
||||
|
@ -48,10 +48,11 @@ class PageUpdateEditorType extends AbstractType
|
||||
->add('roles', ChoiceType::class, [
|
||||
"label" => 'Visible pour les Rôles',
|
||||
"choices" => [
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Animateur de Groupe" => 'ROLE_ANIM',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
],
|
||||
"multiple" => true,
|
||||
"expanded" => true,
|
||||
|
@ -35,10 +35,11 @@ class PageUpdateToolType extends AbstractType
|
||||
->add('roles', ChoiceType::class, [
|
||||
"label" => 'Visible pour les Rôles',
|
||||
"choices" => [
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Animateur de Groupe" => 'ROLE_ANIM',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
],
|
||||
"multiple" => true,
|
||||
"expanded" => true,
|
||||
|
@ -44,10 +44,11 @@ class PageUpdateURLType extends AbstractType
|
||||
->add('roles', ChoiceType::class, [
|
||||
"label" => 'Visible pour les Rôles',
|
||||
"choices" => [
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Animateur de Groupe" => 'ROLE_ANIM',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
],
|
||||
"multiple" => true,
|
||||
"expanded" => true,
|
||||
|
@ -45,10 +45,11 @@ class PageUpdateWidgetType extends AbstractType
|
||||
->add('roles', ChoiceType::class, [
|
||||
"label" => 'Visible pour les Rôles',
|
||||
"choices" => [
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
"Visiteur" => 'ROLE_ANONYME',
|
||||
"Utilisateur" => 'ROLE_USER',
|
||||
"Animateur de Groupe" => 'ROLE_ANIM',
|
||||
"Modérateur" => 'ROLE_MODO',
|
||||
"Administateur" => 'ROLE_ADMIN',
|
||||
],
|
||||
"multiple" => true,
|
||||
"expanded" => true,
|
||||
|
@ -68,6 +68,7 @@ class BlogRepository extends EntityRepository
|
||||
|
||||
// blogs partagées
|
||||
$blogsshared=[];
|
||||
/*
|
||||
if($user) {
|
||||
$blogsshared=$this->createQueryBuilder('blog')
|
||||
->from('CadolesCoreBundle:Group','g')
|
||||
@ -94,6 +95,7 @@ class BlogRepository extends EntityRepository
|
||||
$blogshared->setCanadd($this->getInwriter($user,$blogshared));
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
// Initialisation du calcul des blogs
|
||||
$blogsadmin=new ArrayCollection();
|
||||
@ -102,7 +104,8 @@ class BlogRepository extends EntityRepository
|
||||
foreach($roles as $role) {
|
||||
$qb = $this->createQueryBuilder("blog");
|
||||
$qb ->where($qb->expr()->like('blog.roles', $qb->expr()->literal("%$role%")))
|
||||
->andWhere("blog.user is null");
|
||||
->andWhere("blog.user != :user or blog.user is null")
|
||||
->setParameter('user',$user);
|
||||
|
||||
$blogsroles=$qb->getQuery()->getResult();
|
||||
foreach($blogsroles as $blogrole) {
|
||||
@ -114,7 +117,8 @@ class BlogRepository extends EntityRepository
|
||||
foreach($groups as $group) {
|
||||
$qb = $this->createQueryBuilder("blog");
|
||||
$qb ->where(":group MEMBER OF blog.groups")
|
||||
->andWhere("blog.user is null")
|
||||
->andWhere("blog.user != :user or blog.user is null")
|
||||
->setParameter('user',$user)
|
||||
->setParameter("group",$group->getGroup());
|
||||
|
||||
$blogsgroups=$qb->getQuery()->getResult();
|
||||
@ -184,8 +188,6 @@ class BlogRepository extends EntityRepository
|
||||
foreach($groups as $group) {
|
||||
$qb = $this->createQueryBuilder("blog");
|
||||
$qb ->where(":group MEMBER OF blog.groups")
|
||||
->andWhere("blog.id=:id")
|
||||
->andWhere("blog.user is null")
|
||||
->andWhere("blog.id=:id")
|
||||
->setParameter("id",$blog->getId())
|
||||
->setParameter("group",$group->getGroup());
|
||||
|
@ -58,24 +58,23 @@ class CalendarRepository extends EntityRepository
|
||||
|
||||
// Pages partagées
|
||||
$calendarsshared=[];
|
||||
/*
|
||||
if($user) {
|
||||
$calendarsshared=$this->createQueryBuilder('calendar')
|
||||
->from('CadolesCoreBundle:Group','g')
|
||||
->from('CadolesCoreBundle:UserGroup','ug')
|
||||
->from('CadolesCoreBundle:UserGroup','proprio')
|
||||
->where('g.fgcanshare=:fgcanshare')
|
||||
->andWhere('g=ug.group')
|
||||
->andWhere('ug.user=:user')
|
||||
->andWhere('g MEMBER OF calendar.groups')
|
||||
->andWhere('calendar.user != :user')
|
||||
->andWhere('calendar.user is not null')
|
||||
->andWhere('proprio.user=calendar.user')
|
||||
->andWhere('proprio.group=g')
|
||||
->setParameter('fgcanshare',true)
|
||||
->setParameter('user',$user)
|
||||
->addOrderBy('calendar.name', 'ASC')
|
||||
->getQuery()->getResult();
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
// Initialisation du calcul des calendars
|
||||
@ -85,7 +84,8 @@ class CalendarRepository extends EntityRepository
|
||||
foreach($roles as $role) {
|
||||
$qb = $this->createQueryBuilder("calendar");
|
||||
$qb ->where($qb->expr()->like('calendar.roles', $qb->expr()->literal("%$role%")))
|
||||
->andWhere("calendar.user is null");
|
||||
->andWhere("calendar.user != :user or calendar.user is null")
|
||||
->setParameter('user',$user);
|
||||
|
||||
$calendarsroles=$qb->getQuery()->getResult();
|
||||
foreach($calendarsroles as $calendarrole) {
|
||||
@ -97,7 +97,8 @@ class CalendarRepository extends EntityRepository
|
||||
foreach($groups as $group) {
|
||||
$qb = $this->createQueryBuilder("calendar");
|
||||
$qb ->where(":group MEMBER OF calendar.groups")
|
||||
->andWhere("calendar.user is null")
|
||||
->andWhere("calendar.user != :user or calendar.user is null")
|
||||
->setParameter('user',$user)
|
||||
->setParameter("group",$group->getGroup());
|
||||
|
||||
$calendarsgroups=$qb->getQuery()->getResult();
|
||||
@ -142,8 +143,6 @@ class CalendarRepository extends EntityRepository
|
||||
foreach($groups as $group) {
|
||||
$qb = $this->createQueryBuilder("calendar");
|
||||
$qb ->where(":group MEMBER OF calendar.groups")
|
||||
->andWhere("calendar.id=:id")
|
||||
->andWhere("calendar.user is null")
|
||||
->andWhere("calendar.id=:id")
|
||||
->setParameter("id",$calendar->getId())
|
||||
->setParameter("group",$group->getGroup());
|
||||
@ -173,7 +172,7 @@ class CalendarRepository extends EntityRepository
|
||||
|
||||
->from('CadolesCoreBundle:UserGroup','usergroup')
|
||||
->andwhere('usergroup.group MEMBER OF calendar.groups')
|
||||
->andwhere('usergroup.user=:user')
|
||||
->andwhere('usergroup.user=user')
|
||||
->andwhere('usergroup.fgmanager=:flag')
|
||||
|
||||
->from('CadolesCoreBundle:Group','groupe')
|
||||
@ -186,7 +185,8 @@ class CalendarRepository extends EntityRepository
|
||||
|
||||
|
||||
$inblogwriters=$qb->getQuery()->getResult();
|
||||
if($inblogwriters) $canadd=true;
|
||||
|
||||
if($inblogwriters) $canadd=true;
|
||||
}
|
||||
|
||||
return $canadd;
|
||||
|
@ -326,12 +326,12 @@ class PageRepository extends EntityRepository
|
||||
$qb = $this->createQueryBuilder("page");
|
||||
$qb ->where(":group MEMBER OF page.groups")
|
||||
->andWhere("page.id=:id")
|
||||
->andWhere("page.user is null")
|
||||
->andWhere("page.id=:id")
|
||||
->setParameter("id",$page->getId())
|
||||
->setParameter("group",$group->getGroup());
|
||||
|
||||
$inpagegroup=$qb->getQuery()->getResult();
|
||||
|
||||
if($inpagegroup) {
|
||||
$cansee=true;
|
||||
// Est-il manager du groupe
|
||||
|
@ -113,6 +113,12 @@
|
||||
<span class="badge"></span>
|
||||
</a>
|
||||
|
||||
<a class="list-group-item" data-role="ROLE_ANIM" style="cursor:pointer">
|
||||
<i class="fa fa-user"></i>
|
||||
Animateur de Groupe
|
||||
<span class="badge"></span>
|
||||
</a>
|
||||
|
||||
<a class="list-group-item" data-role="ROLE_MODO" style="cursor:pointer">
|
||||
<i class="fa fa-user"></i>
|
||||
Modérateur
|
||||
@ -191,6 +197,7 @@
|
||||
$( function() {
|
||||
$("a[data-role='ROLE_ANONYME']").children("span").html($('.role-ROLE_ANONYME').length);
|
||||
$("a[data-role='ROLE_USER']").children("span").html($('.role-ROLE_USER').length);
|
||||
$("a[data-role='ROLE_ANIM']").children("span").html($('.role-ROLE_ANIM').length);
|
||||
$("a[data-role='ROLE_MODO']").children("span").html($('.role-ROLE_MODO').length);
|
||||
$("a[data-role='ROLE_ADMIN']").children("span").html($('.role-ROLE_ADMIN').length);
|
||||
|
||||
|
@ -67,6 +67,12 @@
|
||||
<span class="badge"></span>
|
||||
</a>
|
||||
|
||||
<a class="list-group-item" data-role="ROLE_ANIM" style="cursor:pointer">
|
||||
<i class="fa fa-user"></i>
|
||||
Animateur de Groupe
|
||||
<span class="badge"></span>
|
||||
</a>
|
||||
|
||||
<a class="list-group-item" data-role="ROLE_MODO" style="cursor:pointer">
|
||||
<i class="fa fa-user"></i>
|
||||
Modérateur
|
||||
@ -115,6 +121,7 @@
|
||||
|
||||
$("a[data-role='ROLE_ANONYME']").children("span").html($('.role-ROLE_ANONYME').length);
|
||||
$("a[data-role='ROLE_USER']").children("span").html($('.role-ROLE_USER').length);
|
||||
$("a[data-role='ROLE_ANIM']").children("span").html($('.role-ROLE_ANIM').length);
|
||||
$("a[data-role='ROLE_MODO']").children("span").html($('.role-ROLE_MODO').length);
|
||||
$("a[data-role='ROLE_ADMIN']").children("span").html($('.role-ROLE_ADMIN').length);
|
||||
|
||||
|
@ -85,6 +85,12 @@
|
||||
<span class="badge"></span>
|
||||
</a>
|
||||
|
||||
<a class="list-group-item" data-role="ROLE_ANIM" style="cursor:pointer">
|
||||
<i class="fa fa-user"></i>
|
||||
Animateur de Groupe
|
||||
<span class="badge"></span>
|
||||
</a>
|
||||
|
||||
<a class="list-group-item" data-role="ROLE_MODO" style="cursor:pointer">
|
||||
<i class="fa fa-user"></i>
|
||||
Modérateur
|
||||
@ -138,6 +144,7 @@
|
||||
|
||||
$("a[data-role='ROLE_ANONYME']").children("span").html($('.group-ROLE_ANONYME').length);
|
||||
$("a[data-role='ROLE_USER']").children("span").html($('.group-ROLE_USER').length);
|
||||
$("a[data-role='ROLE_ANIM']").children("span").html($('.group-ROLE_ANIM').length);
|
||||
$("a[data-role='ROLE_MODO']").children("span").html($('.group-ROLE_MODO').length);
|
||||
$("a[data-role='ROLE_ADMIN']").children("span").html($('.group-ROLE_ADMIN').length);
|
||||
|
||||
|
@ -67,6 +67,12 @@
|
||||
<span class="badge"></span>
|
||||
</a>
|
||||
|
||||
<a class="list-group-item" data-role="ROLE_ANIM" style="cursor:pointer">
|
||||
<i class="fa fa-user"></i>
|
||||
Animateur de Groupe
|
||||
<span class="badge"></span>
|
||||
</a>
|
||||
|
||||
<a class="list-group-item" data-role="ROLE_MODO" style="cursor:pointer">
|
||||
<i class="fa fa-user"></i>
|
||||
Modérateur
|
||||
@ -115,6 +121,7 @@
|
||||
|
||||
$("a[data-role='ROLE_ANONYME']").children("span").html($('.role-ROLE_ANONYME').length);
|
||||
$("a[data-role='ROLE_USER']").children("span").html($('.role-ROLE_USER').length);
|
||||
$("a[data-role='ROLE_ANIM']").children("span").html($('.role-ROLE_ANIM').length);
|
||||
$("a[data-role='ROLE_MODO']").children("span").html($('.role-ROLE_MODO').length);
|
||||
$("a[data-role='ROLE_ADMIN']").children("span").html($('.role-ROLE_ADMIN').length);
|
||||
|
||||
|
@ -270,52 +270,41 @@
|
||||
});
|
||||
|
||||
// Init socket de counter
|
||||
var _WS_URI = "wss://{{ gos_web_socket_server_host }}:{{ gos_web_socket_server_port }}";
|
||||
var _WS_URI = "wss://{{ gos_web_socket_server_host }}:5555";
|
||||
{% if websocket_activate %}
|
||||
var _WS_URI = "wss://{{ gos_web_socket_server_host }}:{{ gos_web_socket_server_port }}";
|
||||
|
||||
var webSocket = WS.connect(_WS_URI);
|
||||
var globalsession;
|
||||
var webSocket = WS.connect(_WS_URI);
|
||||
|
||||
webSocket.on("socket/connect", function (session) {
|
||||
globalsession=session;
|
||||
session.call("websocket/rpc/update_connection_data", {"userid": "{{app.user.id}}" }).then(
|
||||
function (result)
|
||||
{
|
||||
//console.log("RPC Valid!", result);
|
||||
},
|
||||
function (error, desc)
|
||||
{
|
||||
//console.log("RPC Error", error, desc);
|
||||
}
|
||||
);
|
||||
|
||||
// The callback function in "subscribe" is called everytime an event is published in that channel.
|
||||
session.subscribe("websocket/counter", function (uri, payload) {
|
||||
if(payload.log) {
|
||||
console.log("Received message", payload.log);
|
||||
}
|
||||
if(payload.alert) {
|
||||
alert(payload.alert);
|
||||
}
|
||||
if(payload.from!={{app.user.id}}) {
|
||||
menu=$("a[data-group='"+payload.group+"']");
|
||||
if(menu.length) {
|
||||
if(payload.add) {
|
||||
console.log("Ajout counter pour group "+payload.group+" by "+payload.from);
|
||||
if(menu.children(".badge").length) {
|
||||
menu.children(".badge").html(+(menu.children(".badge").html())+1);
|
||||
webSocket.on("socket/connect", function (session) {
|
||||
// The callback function in "subscribe" is called everytime an event is published in that channel.
|
||||
session.subscribe("websocket/counter", function (uri, payload) {
|
||||
if(payload.log) {
|
||||
console.log("Received message", payload.log);
|
||||
}
|
||||
if(payload.alert) {
|
||||
alert(payload.alert);
|
||||
}
|
||||
if(payload.from!={{app.user.id}}) {
|
||||
menu=$("a[data-group='"+payload.group+"']");
|
||||
if(menu.length) {
|
||||
if(payload.add) {
|
||||
console.log("Ajout counter pour group "+payload.group+" by "+payload.from);
|
||||
if(menu.children(".badge").length) {
|
||||
menu.children(".badge").html(+(menu.children(".badge").html())+1);
|
||||
}
|
||||
else menu.append("<span id='badge-"+payload.group+"' class='badge'>1</span");
|
||||
}
|
||||
else menu.append("<span id='badge-"+payload.group+"' class='badge'>1</span");
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('click', '#refreshcounter', function(){
|
||||
event=$(this).data("event");
|
||||
session.publish("websocket/counter", event);
|
||||
});
|
||||
});
|
||||
$(document).on('click', '#refreshcounter', function(){
|
||||
event=$(this).data("event");
|
||||
event.userid={{app.user.id}}
|
||||
session.publish("websocket/counter", event);
|
||||
});
|
||||
});
|
||||
{% endif %}
|
||||
});
|
||||
|
||||
$(window).resize(function() {
|
||||
|
@ -47,13 +47,18 @@
|
||||
<div class="grid clearfix">
|
||||
<div class="grid-sizer grid-small"></div>
|
||||
<div class="grid-gutter-sizer"></div>
|
||||
{% for user in members %}
|
||||
{% for member in members %}
|
||||
<div class="grid-item grid-small">
|
||||
<div class="grid-item-content">
|
||||
<img src="/{{ alias }}/uploads/avatar/{{ user.avatar}}" class="avatar">
|
||||
</div>
|
||||
<div class="grid-item-title">
|
||||
{{ user.lastname }} {{ user.firstname }}
|
||||
|
||||
|
||||
<div class="grid-item-content">
|
||||
<img src="/{{ alias }}/uploads/avatar/{{ member.user.avatar}}" class="avatar">
|
||||
|
||||
<div class="grid-item-title">
|
||||
{%if member.fgmanager%}<i style="color: #FFF" class="fa fa-star" title="Manager"></i>{%endif%}<br>
|
||||
{{ member.user.lastname }} {{ member.user.firstname }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
@ -1,4 +1,9 @@
|
||||
services:
|
||||
cadoles.websocket.pushmessage:
|
||||
public: true
|
||||
class: Cadoles\WebsocketBundle\Service\messageService
|
||||
arguments: ['@service_container','@doctrine.orm.entity_manager','%websocket_activate%']
|
||||
|
||||
cadoles.websocket.topic:
|
||||
class: Cadoles\WebsocketBundle\Topic\WebsocketTopic
|
||||
arguments: ['@gos_web_socket.websocket.client_manipulator','@doctrine.orm.entity_manager','@service_container']
|
||||
|
@ -79,25 +79,12 @@
|
||||
var dateoptions = {weekday: "long", year: "numeric", month: "long", day: "numeric", hour: "2-digit", minute: "2-digit" };
|
||||
|
||||
|
||||
{% if app.user %}
|
||||
{% if websocket_activate and app.user %}
|
||||
var _WS_URI = "wss://{{ gos_web_socket_server_host }}:{{ gos_web_socket_server_port }}";
|
||||
var _WS_URI = "wss://{{ gos_web_socket_server_host }}:5555";
|
||||
|
||||
var webSocket = WS.connect(_WS_URI);
|
||||
|
||||
webSocket.on("socket/connect", function (session) {
|
||||
|
||||
session.call("websocket/rpc/update_connection_data", {"userkey": "{{userkey}}" }).then(
|
||||
function (result)
|
||||
{
|
||||
//console.log("RPC Valid!", result);
|
||||
},
|
||||
function (error, desc)
|
||||
{
|
||||
//console.log("RPC Error", error, desc);
|
||||
}
|
||||
);
|
||||
|
||||
webSocket.on("socket/connect", function (session) {
|
||||
//the callback function in "subscribe" is called everytime an event is published in that channel.
|
||||
session.subscribe("websocket/channel/{{groupid}}", function (uri, payload) {
|
||||
if(payload.msg) {
|
||||
@ -134,7 +121,7 @@
|
||||
$( "#sendbtn" ).click(function() {
|
||||
var data = CKEDITOR.instances["chat_message"].getData();
|
||||
if(data) {
|
||||
event={type: "add", message: data};
|
||||
event={mykey: "{{userkey}}", type: "add", message: data};
|
||||
session.publish("websocket/channel/{{groupid}}", event);
|
||||
CKEDITOR.instances["chat_message"].setData('');
|
||||
|
||||
@ -145,7 +132,7 @@
|
||||
|
||||
$(document).on('click', '.delmessage', function(){
|
||||
id=$(this).data("id");
|
||||
event={type: "del", id: id};
|
||||
event={mykey: "{{userkey}}", type: "del", id: id};
|
||||
session.publish("websocket/channel/{{groupid}}", event);
|
||||
|
||||
|
||||
|
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace Cadoles\WebsocketBundle\Service;
|
||||
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
|
||||
class messageService
|
||||
{
|
||||
protected $container;
|
||||
protected $em;
|
||||
protected $activate_websocket;
|
||||
|
||||
public function __construct($container, EntityManager $em, $activate_websocket)
|
||||
{
|
||||
$this->container = $container;
|
||||
$this->em = $em;
|
||||
$this->activate_websocket = $activate_websocket;
|
||||
}
|
||||
|
||||
public function send($key,$userid,$groupid,$message) {
|
||||
$pusher = $this->container->get('gos_web_socket.wamp.pusher');
|
||||
$pusher->push(['mykey' => $key, 'type' => 'add', 'message' => $message], 'websocket_topic', ['group' => $groupid]);
|
||||
$pusher->push(['userid' => $userid, 'type' => 'add', 'group' => $groupid], 'websocket_counter');
|
||||
}
|
||||
}
|
@ -70,7 +70,8 @@ class WebsocketCounter implements TopicInterface
|
||||
*/
|
||||
public function onPublish(ConnectionInterface $connection, Topic $topic, WampRequest $request, $event, array $exclude, array $eligible)
|
||||
{
|
||||
$userid=$connection->userid;
|
||||
if(!is_array($event)) $event=json_decode($event, true);
|
||||
$userid=$event["userid"];
|
||||
|
||||
$user=$this->em->getRepository("CadolesCoreBundle:User")->find($userid);
|
||||
if(!$user)
|
||||
@ -80,13 +81,13 @@ class WebsocketCounter implements TopicInterface
|
||||
if(!$group)
|
||||
return;
|
||||
|
||||
/*
|
||||
$usergroup=$this->em->getRepository("CadolesCoreBundle:UserGroup")->findOneBy(["user"=>$user,"group"=>$group]);
|
||||
if(!$usergroup)
|
||||
return;
|
||||
|
||||
*/
|
||||
|
||||
$topic->broadcast([$event["type"] => 1, "group" => $event["group"] , "from" =>$userid]);
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -69,17 +69,18 @@ class WebsocketTopic implements TopicInterface
|
||||
*/
|
||||
public function onPublish(ConnectionInterface $connection, Topic $topic, WampRequest $request, $event, array $exclude, array $eligible)
|
||||
{
|
||||
$userkey=$connection->userkey;
|
||||
$groupid=$request->getAttributes()->get('group');
|
||||
if(!is_array($event)) $event=json_decode($event, true);
|
||||
|
||||
$group=$this->em->getRepository("CadolesCoreBundle:Group")->find($groupid);
|
||||
if(!$group) {
|
||||
$topic->broadcast(['log' => 'group NOT FIND']);
|
||||
}
|
||||
|
||||
$usergroup=$this->em->getRepository("CadolesCoreBundle:UserGroup")->findOneBy(['keyvalue'=> $userkey]);
|
||||
$usergroup=$this->em->getRepository("CadolesCoreBundle:UserGroup")->findOneBy(['keyvalue'=>$event["mykey"]]);
|
||||
if(!$usergroup) {
|
||||
$topic->broadcast(['log' => 'user NOT IN GROUP']);
|
||||
$topic->broadcast(['log' => $event]);
|
||||
$topic->broadcast(['log' => 'user '.$event["mykey"].' NOT IN GROUP '.$groupid]);
|
||||
}
|
||||
else {
|
||||
$user=$usergroup->getUser();
|
||||
|
@ -38,10 +38,14 @@ parameters:
|
||||
%end if
|
||||
%if %%getVar("ninegate_activate_websocket", 'non') == "oui"
|
||||
websocket_activate: true
|
||||
websocket_port: 5555
|
||||
websocket_host: %%ninegate_websocket_url
|
||||
websocket_port: %%ninegate_websocket_portexterne
|
||||
websocket_portinterne: %%ninegate_websocket_portinterne
|
||||
%else
|
||||
websocket_activate: false
|
||||
websocket_port: 5555
|
||||
websocket_host:
|
||||
websocket_port:
|
||||
websocket_portinterne:
|
||||
%end if
|
||||
%if %%getVar("ninegate_activate_portal", 'non') == "oui"
|
||||
portal_activate: true
|
||||
|
Loading…
Reference in New Issue
Block a user