204 Commits

Author SHA1 Message Date
461324fe3f ajout error doublon mail 2022-12-09 11:50:38 +01:00
594122ed07 ajout error doublon mail 2022-12-09 09:18:52 +01:00
c5333887cc ajout info dnma 2022-12-08 10:12:54 +01:00
629d77175a evolution items 2022-12-06 13:09:24 +01:00
1a54b9a3f9 evolution items 2022-12-05 12:05:16 +01:00
d0d8183f7a ne plus concidèrer les profils scribe comme des groupes de travail 2022-07-06 11:11:59 +02:00
4f2fa1db4f Synchronisation scribe niveaux + eleves classes + profs classes (ref #34132) 2022-05-10 09:12:21 +02:00
75d935aa57 Synchronisation scribe niveaux + eleves classes + profs classes (ref #34132) 2022-05-09 13:51:33 +02:00
27e23fffaf ne pas afficher le clic sonde sur les app autogénérées par envole (fixes #33944) 2022-05-09 11:43:01 +02:00
df8bcfc1a1 ajout de l'item cdt et sa synchronisation poshprofil 2022-03-03 11:51:43 +01:00
2b86aa4e2f appel sonde sur click 2022-02-18 09:57:20 +01:00
57f96132f4 mise en place jquerydate sur le formulaire des annonces (ref #33524) 2022-02-04 13:14:52 +01:00
aac017c263 hauteur auto sur les images insérées dans les alertes (ref #33523) 2022-02-04 10:55:33 +01:00
702d060503 optiomisation sur annonces lues / non lues cas annonces visiteur (ref #33746) 2022-02-03 16:34:44 +01:00
c6d349696e optiomisation sur annonces lues / non lues (ref #33746) 2022-02-03 16:30:40 +01:00
d0d933f28e dicos ajout service wssninegate 2021-12-08 11:16:56 +01:00
1249b7be21 ajout variable activer_revprox si non existante 2021-12-08 09:23:12 +01:00
6081e6a692 passer par un alias pour les websockets 2021-12-07 16:47:22 +01:00
01da55e6d6 gestion copier / coller des images dans les editeurs de texte (fixes #33465) 2021-12-06 11:40:02 +01:00
95e51c4d53 ne plus bloquer bundle edispatcher si masteridentity != SSO (fixes #33444) 2021-12-06 10:41:18 +01:00
9157b78671 user ldap reader si masteridentity != SQL 2021-12-03 11:44:34 +01:00
e66f8999ed mise en forme de la zone username dans la barre de navigation (fixes #32780) 2021-10-18 14:29:41 +02:00
41915a0547 correction orthographe (fixes #33045) 2021-10-18 14:13:45 +02:00
c7586c86d5 ajout du titre de l'enregistrement dans le titre de la page modifiée (fixes #33046) 2021-10-18 14:08:53 +02:00
6a8e102fc6 modification style (fixes #33143) 2021-10-18 13:37:10 +02:00
eedaa86dcf rapatrier les variables eoledb dans la famille eoledb (ref #33188) 2021-10-07 10:52:59 +02:00
1d448e70c7 autocreate user (fixes #33139) 2021-09-14 11:40:18 +02:00
63c710c4fd correctif si groupe shared sans page 2021-08-27 10:02:15 +02:00
ac37691536 [THEME ACREUNION] mode reduit affichage username 2021-07-14 07:50:54 +04:00
13e5bfb428 [THEME ACREUNION] Adaptation des couleurs 2021-07-12 20:43:57 +04:00
ed75b5f5c3 fixes #31884 , faire en sortes sur les urls soient compatibles https et http 2021-07-12 18:10:11 +04:00
f361110766 Merge branch 'master' of https://dev-eole.ac-dijon.fr/git/ninegate 2021-07-12 15:48:34 +02:00
a5fbe134cc les alertes sans date de fin ne peuvent pas etre archivées (fixes #32914) 2021-07-12 15:47:57 +02:00
7dc7d708d3 [THEME ACREUNION] couleur du nom de l'utilisateur adapté au fond blanc du theme 2021-07-12 17:18:17 +04:00
7ecfa45d75 mise en forme du bage item 2021-07-12 12:46:55 +02:00
7380823897 config typesso client ou proxy (fixes #32904) 2021-07-12 10:32:14 +02:00
911bea2b5d correction orthographe (fixes #32829 2021-07-05 14:30:46 +02:00
13c24bd1ee ajout du param timerefreshnotif (fixes #32871) 2021-07-05 14:26:51 +02:00
fac25a036e passage en cas proxy pour imapunread 2021-07-05 14:09:54 +02:00
d61c2fc94d passage en cas proxy pour imapunread 2021-07-05 14:07:18 +02:00
3e9e581116 prise en compte des usage dnma accueil 2021-07-05 10:44:59 +02:00
14283a731e correctif sur admin calendar 2021-06-30 09:29:31 +02:00
5271f992a7 replacer les modifs écrasées 2021-06-17 15:01:57 +02:00
e3188b1732 correctif style 2021-06-15 10:14:47 +02:00
fa62b8aa36 preference utilisateur modedesktop (fixes #32763) 2021-06-11 15:31:33 +02:00
3ba041b207 ajout du nom de la page dans la barre de navigation (fixes #32762) 2021-06-11 14:31:01 +02:00
465bfd0374 cacher les groupes aux users (fixes #32271) 2021-06-11 14:07:10 +02:00
2a2dfc55bb modification orthorgraphe (fixes #32760) 2021-06-11 11:29:18 +02:00
24e2fb3c2e ajout prenom nom dans la bannière (fixes #32761) 2021-06-11 10:26:00 +02:00
ebd9a5a0a6 modification subtitle content items (fixes #32764) 2021-06-11 09:34:04 +02:00
16eb147e5b ajout système de badge sur les items + init badge sur l'item roundcube (fixes #32115) 2021-06-10 16:18:03 +02:00
e4cb40fae8 modif strucutre pour badgeurl (ref #32115) 2021-06-10 11:43:09 +02:00
9d40aa6575 scinder les annonces à publier en ligne archivées (fixes #32602) 2021-06-10 11:26:55 +02:00
4399db9498 alerte = permettre aux users de masquer à oui par défaut (fixes #32749) 2021-06-10 10:43:36 +02:00
295c4bd4f7 prise en compte du port de l'ead configuré dans genconfig (fixes #32749) 2021-06-10 10:29:44 +02:00
27bcb3fbe7 ajout du theme white (fixes #32202) 2021-06-10 09:53:17 +02:00
d3c8a95336 Merge branch 'master' of https://dev-eole.ac-dijon.fr/git/ninegate 2021-05-21 11:01:05 +02:00
2679d8f629 redirection vers le groupe après signature de la charte 2021-05-21 11:00:34 +02:00
8ed97d8d96 fixes #32513 mise a jour entité datasource username.length=128 2021-05-17 10:16:29 +04:00
2b4d048f9d enlarge your attributes 2021-05-06 13:41:33 +02:00
20c131db2e desactivation possible des notifications de groupe de travail 2021-05-04 11:03:11 +02:00
72c5e49cf6 mise à plat valeur obligatoire sur fiche user 2021-04-27 10:09:19 +02:00
635f44a894 prise en compte des param des champs users dans la vue user et l'appartenance aux groupes 2021-04-26 15:38:56 +02:00
33841459d9 bug ajout fav 2021-04-21 09:14:21 +02:00
150e624fca bug déplacement fichiers 2021-04-08 10:28:24 +02:00
f621ebea82 resolution bug 2021-04-02 14:36:13 +02:00
ccdacac7c5 erreur javascript sur function replaceall 2021-04-02 11:09:18 +02:00
0805750c33 redirect sur group d'invitation (ref #231) 2021-04-02 10:07:45 +02:00
ff7183ef5b modificatio msg confirmation page bookmark (ref #251) 2021-04-01 17:13:16 +02:00
67d026a8a0 adaption registration (ref #220) 2021-04-01 16:38:00 +02:00
cf255183bd modification icon et toolip du widget calendar (ref #248) 2021-04-01 16:18:59 +02:00
743ffa7910 titre de la page dans le widget info group (ref #249) 2021-04-01 15:25:00 +02:00
261129755d modif label (ref #223) 2021-04-01 13:04:15 +02:00
c150c15bc7 trie par lastname (ref #237) 2021-04-01 11:14:44 +02:00
3fc0a1b809 suppression du message formulaire (ref #240) 2021-04-01 10:53:30 +02:00
1209c90388 modification infobulle (ref #240) 2021-03-29 16:07:43 +02:00
d65a003422 maj label config 2021-03-29 09:19:48 +02:00
04272afa3d partage d'event uniquement sur les groupes gestionnaire 2021-03-26 10:38:03 +01:00
4aa766759c mise en configuration des labels favoris et mes ressources 2021-03-26 09:46:00 +01:00
dbade2fce4 mise en place d'un systeme de commande local 2021-03-26 09:26:52 +01:00
ae4debf6b9 revu des permissions (ref #223) 2021-03-25 15:56:36 +01:00
4ecfa70106 utilisation de getvar pour récupere eolesso_cas_folder (ref #31446)
(commit ré-appliqué suite à une régression)
2021-03-23 16:39:32 +01:00
dd46b9ba01 clonage d'evenement (ref #244) 2021-03-23 14:42:29 +01:00
5aefa64fce permettre le reset de password meme si inscription non activée (ref #246) 2021-03-19 15:37:49 +01:00
9a8105edb9 préciser le job en erreur (ref #245) 2021-03-19 15:33:43 +01:00
26d31f4fce remplacer la liste des destinataires par select2 2021-03-19 15:27:59 +01:00
0102239e09 système de suivi des invitations à un groupe (ref #221) 2021-03-19 13:29:03 +01:00
e9242e4b0c lié les taches aux agendas (ref #222) 2021-03-18 17:14:05 +01:00
0886f96cf4 ajout du nom du calendrier sur le widget calendrier (ref #232) 2021-03-18 16:25:49 +01:00
ecfce10e3b ajustement sur le formulaire d'inscription (ref #220) 2021-03-18 16:18:24 +01:00
cf85ca9023 export groupe (ref #234) 2021-03-18 15:16:06 +01:00
8738cdeec5 ajout groupes et compteur visite sur export user (ref #233) 2021-03-16 11:51:26 +01:00
569f3a5860 preselection d'un nouveau avatar 2021-03-16 11:13:07 +01:00
4c707c5899 mise à plat des règles de désinscription (ref #235) 2021-03-16 10:37:36 +01:00
b2c78b523a copy des notes registration dans user (ref #241) 2021-03-15 17:07:48 +01:00
57606ce0d5 retour de l'icone de déscription des groupes ouvert (ref #235) 2021-03-15 16:55:15 +01:00
490d8112fa ajout d'une note administrateur dans les inscriptions 2021-03-15 16:19:40 +01:00
54158df23f mise à jour lien d'inscription dans un groupe (ref #228) 2021-03-15 15:58:19 +01:00
81f4614680 résolution anomalies widget fichier (ref #239) 2021-03-15 15:03:29 +01:00
49e2527337 renommer fichier dans widget file (ref #240) 2021-03-15 14:19:34 +01:00
3438392632 gestion poubelle sur widget fichier (ref #242) 2021-03-15 13:34:47 +01:00
016f09983f Merge branch 'master' of https://dev-eole.ac-dijon.fr/git/ninegate 2021-03-12 11:51:43 +01:00
27ab0758e7 correctif fgheader 2021-03-12 11:48:26 +01:00
cf91d5c9cd api edispatcher/api/checkuser (ref #31889) 2021-03-12 11:50:11 +04:00
6d04f2a08e api edispatcher/api/applications (fixes #31889) 2021-03-11 16:17:32 +04:00
0ceffe2fa3 fixes #31884 url des icones de catégories d'annonces préfixées par // plutot que https:// 2021-03-11 11:44:38 +04:00
b272e50f88 fixes #31883 les annonces avec la categorie 'sans categorie' sont dorénavant correctement remontées par l'api edispatcher/messages 2021-03-11 11:11:11 +04:00
eb3ed083e7 [api edispatcher] fix #31881 2021-03-10 18:12:13 +04:00
d0a7f05f50 fix typo 2021-03-10 17:41:27 +04:00
68410eeb34 api edispatcher/mxservices reponse correcte en cas d'erreur (fixes #31881) 2021-03-10 17:07:11 +04:00
224cc87e77 fix fa icon categorie MesRessources api/edispatcher/items 2021-03-09 13:51:05 +04:00
2acf186c9b correction sur mes ressources 2021-03-09 10:19:08 +01:00
6a5a50a2f8 correctif item sso optionnel 2021-03-09 09:59:37 +01:00
4a72cf0d6c [theme Metice] prise en compte bandeau escamotable #31431 2021-03-09 10:12:14 +04:00
094ef42e9b enlever msg debug 2021-03-08 16:00:05 +01:00
2a4d246a00 pb init rest ssoitems 2021-03-08 15:43:59 +01:00
4a7c8258b7 pagebookmark 2021-03-08 15:27:33 +01:00
eacc7dea66 pb fgheader dans les themes 2021-03-08 10:49:02 +01:00
a91f357d7c scinder dans le bureau les favoris et les ressources (fixes #30779) 2021-03-05 16:52:49 +01:00
fdc9772c54 mise en place d'un page d'accueil via préférence utilisateur (fixes #31038) 2021-03-05 16:23:12 +01:00
3c90728464 ajout de l'option forcereload sur les pages de type url (fixes #31676) 2021-03-05 13:50:07 +01:00
fc094ab57e groupe SSO de type DN 2021-03-04 17:02:39 +01:00
c7c10ded30 gestion du header escamotable en préférence utilisateur (fixes #31431) 2021-03-04 13:46:32 +01:00
3c47ed1d40 supprimer des bookmark les items qui ne sont plus lié au profil (fixes #31269) 2021-03-03 18:04:00 +01:00
55e34b7526 mise à niveau appkernel par rapport à composer.json (fixes #31626) 2021-03-03 17:40:02 +01:00
300b204088 ajout du meta dans le header de ninegate (fixes #31783) 2021-03-03 16:44:46 +01:00
97cf0a727b pouvoir forcer l'utilisation d'un theme (fixes #31090) 2021-03-03 16:34:28 +01:00
563cc48200 widget dokuwiki 2021-02-24 16:59:53 +01:00
ef0ba6ef25 prise en compte attribut member pour AD 2021-02-24 10:54:13 +01:00
d1a3187cba gestion attribut sAMAccountType AD 2021-02-23 16:34:27 +01:00
8574a7e35a compilation 2021-02-23 13:45:37 +01:00
d4c2274d34 gestion exception caldav et acces dans le reseau interne 2021-02-22 12:00:11 +01:00
cd9cff085c suppression blocage sur warning phpcas client 2021-02-19 13:00:37 +01:00
c8ad97f4ce gestion sondednma alone 2021-02-15 16:58:16 +01:00
4b038e8c56 gestion du menu grouppage 2021-02-15 11:38:28 +01:00
3f1eab00ad gestion du menu grouppage 2021-02-15 11:29:02 +01:00
1b36560d80 passage à eole 2.8 2021-02-09 16:14:47 +01:00
b151f0e889 mise à plat composer.json 2021-02-09 14:38:05 +01:00
f97b38eca7 mise à plat composer.json qqsoit la version de php 2021-02-09 13:47:27 +01:00
7dfa172682 fix regression entre #105 et #106 rajout template 'orm: CadolesEdispatcherBundle: ~' 2021-02-09 07:42:17 +04:00
e1152ab89b mise en cohérence theme métice 2021-02-08 14:47:45 +04:00
d878f3ca9f variable --themespath plus générique pour viser un fichier du dossier theme de son choix 2021-02-05 17:16:49 +04:00
3e1145da88 Merge branch 'master' of https://dev-eole.ac-dijon.fr/git/ninegate 2021-02-05 10:21:16 +04:00
325de094d0 ajout d'une variable --path : chemin d'acces au theme 2021-02-05 10:20:14 +04:00
e1ae00528d correction ano template si masteridentity à sso 2021-02-03 10:47:56 +01:00
fda8577ac7 update theme Métice ac-reunion 2021-02-02 11:12:40 +04:00
2294b0ed68 resize frame sur mini menu (fixes #31608) 2021-02-01 11:32:27 +01:00
5ef2a98b51 gestion de la deconnexion ldap 2021-02-01 10:58:48 +01:00
70d1ccd220 ignorer l'usage de la sonde dnma sur les widgets 2021-01-28 10:27:50 +01:00
4fa022c550 deco / reco LDAP 2021-01-27 15:39:12 +01:00
5dedf3b183 LDAP_OPT_REFERRALS 2021-01-27 10:45:11 +01:00
e82d932cfb profilePath AD 2021-01-25 15:02:11 +01:00
92477123b7 fixes #31442 access control allow origin /edispatcher/api/public/hello 2021-01-25 08:41:25 +04:00
f77be05751 gestion des no email 2021-01-21 17:24:21 +01:00
69af156662 gestion des no email 2021-01-21 16:00:15 +01:00
b8ee13c49b controle cohérance pwd 2021-01-21 15:22:59 +01:00
7c26cdb57f reset password possible si maitre sql sans registration 2021-01-21 11:43:39 +01:00
f75058bc30 adhomeDirectory 2021-01-21 11:35:12 +01:00
ceeac44ede preserver le password si modification direct dans ldap 2021-01-20 17:00:01 +01:00
f9a038b1b7 creation item nineschool ninesurvey piwigo 2021-01-20 16:29:48 +01:00
9e1d4f08f0 ajout icon piwigo et ninesurvey 2021-01-13 14:25:15 +01:00
d6bbf7bf9a ano sur synchro mail groupe dans openldap 2021-01-13 10:34:07 +01:00
a410415b97 cadolesAD 2021-01-12 13:52:11 +01:00
48fcfb9919 cadolesAD 2021-01-12 12:03:02 +01:00
eeca16fda9 ninegate seth-aaf et seth-edu 2021-01-08 15:48:08 +01:00
0bc8bf71ce ninegate seth-aaf et seth-edu 2021-01-08 14:53:43 +01:00
a9c5b925fd utilisation de getvar pour récupere eolesso_cas_folder (ref #31446) 2021-01-05 10:05:03 +01:00
9ef880a881 ajout bundle edispatcher 2020-12-16 11:54:51 +01:00
81520d0d7d fix role_admin route edispatcher/test 2020-12-16 13:33:23 +04:00
f974047a61 correctif ajouts acreunion : edispatcher bundle, theme metice 2020-12-16 13:23:15 +04:00
277f777744 ajout bundle edispatcher 2020-12-15 16:36:47 +01:00
fb98a703c0 mise en place de ssoitems (fixes ##31089) 2020-11-19 15:08:51 +01:00
e115929020 ajout des groupes en tant que nom de class body (fixes #31091) 2020-11-19 11:15:33 +01:00
b7b9ae6ec1 accès à l'annuaire via configuration (fixes #31092) 2020-11-19 11:01:43 +01:00
9b877c2de0 possibilité de profiler les alertes par items (fixes #31120) 2020-11-19 10:09:37 +01:00
f5633610a9 ajout font et variable css 2020-11-06 14:03:52 +01:00
6d00b6c547 erreur sur filtre par categorie d'items 2020-10-27 08:59:20 +01:00
0a15805d4b refonte sonde 2020-10-23 14:19:50 +02:00
a0002bcd90 parameter fgdebug 2020-10-23 13:37:58 +02:00
33c61bb618 refonte sonde 2020-10-23 13:27:07 +02:00
463cf49fe0 correctif sur mise à jour de niveau sso 2020-10-21 15:26:12 +02:00
61abb269e4 mise à niveau log 2020-10-19 10:44:16 +02:00
40ab9ad001 mise à niveau log 2020-10-19 10:27:19 +02:00
61702791b9 reduire les logs 2020-10-16 11:12:29 +02:00
3a1da0f3fd modification label bouton 2020-10-14 09:39:14 +02:00
8b87c6927a déplacement fichier dans widget fichier 2020-10-13 15:46:27 +02:00
0dc13592f9 petits correctifs 2020-10-13 11:10:12 +02:00
18963d115b feature profil de modération 2020-10-09 15:43:50 +02:00
bd547d9a21 petit ajustement look sur pagewidget look list 2020-10-07 11:09:27 +02:00
b648fecb32 vue pagewidget list 2020-10-06 17:06:26 +02:00
b6fc868652 look du widget info groupe/page (ref #210) 2020-10-06 09:57:24 +02:00
397f0242f6 order by sur select niveau01 (ref #211) 2020-10-06 09:50:56 +02:00
1ab804ee9b ajout icone page dans liste des pages 2020-10-01 16:29:40 +02:00
8cc5f686ab modificatio rest pour afficher attribut item d'un bookmark 2020-10-01 16:04:50 +02:00
8414bd58b2 ajout attribut sso rne 2020-10-01 15:45:54 +02:00
06c3e0559b ajout calendars dans api rest 2020-09-30 17:02:14 +02:00
6f77194ae5 auto create groupe sso 2020-09-30 14:56:00 +02:00
923c6c0b42 resolution attribut sso en tableau 2020-09-30 13:55:31 +02:00
21295df381 mise en place d'une auto creation des groupes sur le modele LDAP-Open 2020-09-29 17:33:21 +02:00
93c6a9a1e1 resolution activer_admin_passfile 2020-09-28 17:29:04 +02:00
0129fc59ad gerer cadolesldap installé sur meme serveur (ref #214) 2020-09-28 16:39:42 +02:00
68dd1874d0 api & scribetoninegate 2020-09-28 13:51:25 +02:00
87604176b2 fonticon possible sur les pages 2020-09-25 13:54:49 +02:00
0c10081907 evolution rest api 2020-09-24 16:18:15 +02:00
303 changed files with 80434 additions and 5696 deletions

View File

@ -8,7 +8,6 @@ EOLE_VERSION=2.6
EOLE_RELEASE=2.6.2 EOLE_RELEASE=2.6.2
PKGAPPS=web PKGAPPS=web
################################ ################################
# Début de zone à ne pas éditer # Début de zone à ne pas éditer
################################ ################################

1
debian/compat vendored
View File

@ -1 +0,0 @@
7

24
debian/control vendored
View File

@ -1,24 +0,0 @@
Source: eole-ninegate
Section: web
Priority: optional
Maintainer: Equipe Envole <eole@ac-dijon.fr>
Build-Depends: debhelper (>= 7.0.50)
Standards-Version: 3.8.4
Homepage: http://eole.orion.education.fr/diff/
Vcs-Git: http://dev-eole.ac-dijon.fr/git/ninegate
Vcs-Browser: http://dev-eole.ac-dijon.fr/projects/ninegate/repository
Package: ninegate-sso
Architecture: all
Depends: ${misc:Depends}, eole-sso
Description: Filtre SSO pour ninegate "EOLE".
Package: eole-ninegate
Architecture: all
Depends: ${misc:Depends}, eole-web (>= 2.6.1), ninegate-sso, eole-envole-dependances
Description: Eolisation de l'application ninegate.
Package: ninegate-apps
Architecture: all
Depends: ${misc:Depends}, eole-web-pkg (>= 2.6.1), envole-dependances-apps
Description: Sources pour ninegate "EOLE".

44
debian/copyright vendored
View File

@ -1,44 +0,0 @@
Format: http://dep.debian.net/deps/dep5
Upstream-Name: {PROJECT}
Source: {URL}
Files: *
Copyright: YEAR {UPSTREAM} {AUTHOR} <{MAIL}>
License: {UPSTREAM LICENSE}
Files: debian/*
Copyright: 2012 Équipe EOLE <eole@ac-dijon.fr>
License: CeCILL-2
License: {UPSTREAM LICENSE}
{TEXT OF THE LICENSE}
License: CeCILL-2
This software is governed by the CeCILL-2 license under French law and
abiding by the rules of distribution of free software. You can use,
modify and or redistribute the software under the terms of the CeCILL-2
license as circulated by CEA, CNRS and INRIA at the following URL
"http://www.cecill.info";.
.
As a counterpart to the access to the source code and rights to copy,
modify and redistribute granted by the license, users are provided only
with a limited warranty and the software's author, the holder of the
economic rights, and the successive licensors have only limited
liability.
.
In this respect, the user's attention is drawn to the risks associated
with loading, using, modifying and/or developing or reproducing the
software by the user in light of its specific status of free software,
that may mean that it is complicated to manipulate, and that also
therefore means that it is reserved for developers and experienced
professionals having in-depth computer knowledge. Users are therefore
encouraged to load and test the software's suitability as regards their
requirements in conditions enabling the security of their systems and/or
data to be ensured and, more generally, to use and operate it in the
same conditions as regards security.
.
The fact that you are presently reading this means that you have had
knowledge of the CeCILL-2 license and that you accept its terms.
.
On Eole systems, the complete text of the CeCILL-2 License can be found
in '/usr/share/common-licenses/CeCILL-2-en'.

View File

@ -1 +0,0 @@
usr/share/eole

3
debian/gbp.conf vendored
View File

@ -1,3 +0,0 @@
# Set per distribution debian tag
[DEFAULT]
debian-tag = debian/envole/%(version)s

View File

@ -1 +0,0 @@
var/www/html

View File

@ -1 +0,0 @@
usr/share/sso

8
debian/rules vendored
View File

@ -1,8 +0,0 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
%:
dh $@

View File

@ -1 +0,0 @@
3.0 (native)

View File

@ -2,6 +2,7 @@
<creole> <creole>
<files> <files>
<file filelist='ninegate' name='/etc/eole/eole-db.d/ninegate-db.yml' rm='True' mkdir='True'/> <file filelist='ninegate' name='/etc/eole/eole-db.d/ninegate-db.yml' rm='True' mkdir='True'/>
<file filelist='ninegate_nginx' name='/etc/nginx/web.d/ninegate.conf' source='ninegate-nginx.conf' rm='True' mkdir='True' />
</files> </files>
<containers> <containers>
@ -9,6 +10,7 @@
<package>ninegate-apps</package> <package>ninegate-apps</package>
<file filelist='ninegate' name='/etc/apache2/sites-available/ninegate' source='ninegate-apache.conf' rm="True"/> <file filelist='ninegate' name='/etc/apache2/sites-available/ninegate' source='ninegate-apache.conf' rm="True"/>
<file filelist='ninegate' name='/lib/systemd/system/wssninegate.service' source='ninegate.service'/>
<file filelist="ninegate" name="/var/www/html/ninegate/app/config/parameters.yml" source="ninegate-parameters.yml" rm="True"/> <file filelist="ninegate" name="/var/www/html/ninegate/app/config/parameters.yml" source="ninegate-parameters.yml" rm="True"/>
<file filelist="ninegate" name="/var/www/html/ninegate/app/config/template.yml" source="ninegate-template.yml" rm="True"/> <file filelist="ninegate" name="/var/www/html/ninegate/app/config/template.yml" source="ninegate-template.yml" rm="True"/>
<file filelist="ninegate" name="/var/www/html/ninegate/scripts/ninegate-postservice-00.sh" source="ninegate-postservice-00.sh" rm="True" mode="700" /> <file filelist="ninegate" name="/var/www/html/ninegate/scripts/ninegate-postservice-00.sh" source="ninegate-postservice-00.sh" rm="True" mode="700" />
@ -18,26 +20,30 @@
<file filelist='ninegate-migration' name='/var/www/html/envole-migration/config/config-db-ninegate.php' source='ninegate-migration.php' mkdir='True'/> <file filelist='ninegate-migration' name='/var/www/html/envole-migration/config/config-db-ninegate.php' source='ninegate-migration.php' mkdir='True'/>
<service method='apache' servicelist='ninegate'>ninegate</service> <service method='apache' servicelist='ninegate'>ninegate</service>
<service servicelist="ninegate">wssninegate</service>
<service_access service='ninegate_websocket'>
<port port_type="SymLinkOption">ninegate_websocket_portexterne</port>
</service_access>
</container> </container>
</containers> </containers>
<variables> <variables>
<family name='Ninegate'> <family name='Ninegate' icon='home'>
<variable type='oui/non' name='activer_cadolesldap' description='Activer Annuaire Cadoles' hidden='True' exists='False'/>
<variable type='string' name='cadolesldap_pwdadmin' description="Mot de passe du compte admin durant l'instance" hidden='True' exists='False'/>
<variable type='string' name='cadolesldap_organization' description="Nom de l'organisation principale" hidden='True' exists='False'/>
<variable type='string' name='cadolesldap_niveau01branche' description="Nom de la branche de Niveau 01" hidden='True' exists='False'><value>niveau01</value></variable>
<variable type='string' name='cadolesldap_niveau02branche' description="Nom de la branche de Niveau 02" hidden='True' exists='False'><value>niveau02</value></variable>
<variable type='string' name='cadolesldap_niveau01name' description="Nom de la première orgranisation de Niveau 01" hidden='True' exists='False'/>
<variable type='string' name='cadolesldap_niveau01siren' description="SIREN de la première orgranisation de Niveau 01" hidden='True' exists='False'/>
<variable name="ninegate_test_ninegate" type="oui/non" hidden='True' exists='False'><value>non</value></variable> <variable name="ninegate_test_ninegate" type="oui/non" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_adminer" type="oui/non" description="Activer Adminer" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_adminer" type="oui/non" description="Activer Adminer" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_balado" type="oui/non" description="Activer Balado" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_balado" type="oui/non" description="Activer Balado" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_cdt" type="oui/non" description="Activer CdT" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_dokuwiki" type="oui/non" description="Activer Dokuwiki" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_dokuwiki" type="oui/non" description="Activer Dokuwiki" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_econnect" type="oui/non" description="Activer eConnect" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_econnect" type="oui/non" description="Activer eConnect" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_ead_web" type="oui/non" description="Activer EAD" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_ead_web" type="oui/non" description="Activer EAD" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_eoe" type="oui/non" description="Activer EOE" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_eoe" type="oui/non" description="Activer EOE" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_eop" type="oui/non" description="Activer EOP" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_eop" type="oui/non" description="Activer EOP" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_etherhome" type="oui/non" description="Activer Etherhome" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_etherhome" type="oui/non" description="Activer Etherhome" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_etherhome" type="oui/non" description="Activer Etherhome" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_fluxbb" type="oui/non" description="Activer Fluxbb" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_fluxbb" type="oui/non" description="Activer Fluxbb" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_genconfig" type="oui/non" description="Activer Genconfig" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_genconfig" type="oui/non" description="Activer Genconfig" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_gepi" type="oui/non" description="Activer GEPI" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_gepi" type="oui/non" description="Activer GEPI" hidden='True' exists='False'><value>non</value></variable>
@ -49,12 +55,16 @@
<variable name="activer_moodle" type="oui/non" description="Activer Moodle" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_moodle" type="oui/non" description="Activer Moodle" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_nextcloud" type="oui/non" description="Activer Nextcloud" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_nextcloud" type="oui/non" description="Activer Nextcloud" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_nineboard" type="oui/non" description="Activer Nineboard" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_nineboard" type="oui/non" description="Activer Nineboard" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_nineschool" type="oui/non" description="Activer Nineschool" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_ninesurvey" type="oui/non" description="Activer Ninesurvey" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_opensondage" type="oui/non" description="Activer Opensondage" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_opensondage" type="oui/non" description="Activer Opensondage" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_phpldapadmin" type="oui/non" description="Activer phpLdapAdmin" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_phpldapadmin" type="oui/non" description="Activer phpLdapAdmin" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_piwigo" type="oui/non" description="Activer Piwigo" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_piwik" type="oui/non" description="Activer Piwik" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_piwik" type="oui/non" description="Activer Piwik" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_roundcube" type="oui/non" description="Activer Roundcube" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_roundcube" type="oui/non" description="Activer Roundcube" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_sacoche" type="oui/non" description="Activer Sacoche" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_sacoche" type="oui/non" description="Activer Sacoche" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_wordpress" type="oui/non" description="Activer Wordpress" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_wordpress" type="oui/non" description="Activer Wordpress" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_revprox" type="oui/non" description="Activer le reverse proxy Nginx" hidden='True' exists='False'><value>non</value></variable>
<variable name="activer_sondepiwik_local" type="oui/non" description="Activer Sonde Piwik" hidden='True' exists='False'><value>non</value></variable> <variable name="activer_sondepiwik_local" type="oui/non" description="Activer Sonde Piwik" hidden='True' exists='False'><value>non</value></variable>
@ -68,25 +78,37 @@
<variable name='ninegate_test_conf_ldap' type='oui/non' hidden='True'/> <variable name='ninegate_test_conf_ldap' type='oui/non' hidden='True'/>
<variable type='oui/non' name='activer_ninegate' description='Activer Ninegate'><value>oui</value></variable> <variable type='oui/non' name='activer_ninegate' description='Activer Ninegate'><value>oui</value></variable>
<variable type='string' name='ninegate_masteridentity' description="Maître de l'Identité" mandatory='True'><value>LDAP</value></variable> <variable type='string' name='ninegate_masteridentity' description="Maître de l'Identité" mandatory='True'><value>LDAP</value></variable>
<variable type='string' name='ninegate_mode_auth' description="Mode Authentification" mandatory='True'><value>CAS</value></variable> <variable type='string' name='ninegate_mode_auth' description="Mode Authentification" mandatory='True'><value>CAS</value></variable>
<variable type='string' name='ninegate_api_key' description="Clé d'accès API" mandatory='True'><value>APIKeyNinegate</value></variable> <variable type='string' name='ninegate_api_key' description="Clé d'accès API" mandatory='True'><value>APIKeyNinegate</value></variable>
<variable type='oui/non' name='ninegate_syncldap' description="Synchroniser Ninegate vers votre annuaire"><value>non</value></variable> <variable type='oui/non' name='ninegate_ssosynchrogroup' description="Générer automatiquement les groupes en fonction d'un attribut SSO"><value>oui</value></variable>
<variable type='string' name='ninegate_ssoreqgroup' description="Attribut SSO associé à la notion de groupe" mandatory='True'><value>user_groups</value></variable>
<variable type='oui/non' name='ninegate_ssosynchroitem' description="Associer automatiquement les items en fonction d'un attribut SSO"><value>non</value></variable>
<variable type='string' name='ninegate_ssoreqitem' description="Attribut SSO associé à la notion d'item" mandatory='True'><value></value></variable>
<variable type='string' name='ninegate_typesso' description="Mode de connexion SSO (Client ou Proxy)" mandatory='True'><value>client</value></variable>
<variable type='oui/non' name='ninegate_syncldap' description="Synchroniser Ninegate vers votre Annuaire CadolesLDAP"><value>non</value></variable>
<variable type='string' name='ninegate_ldaptemplate' description="Modèle d'annuaire"><value>scribe</value></variable> <variable type='string' name='ninegate_ldaptemplate' description="Modèle d'annuaire"><value>scribe</value></variable>
<variable type='oui/non' name='ninegate_scribegroup' description="Considérer les classes/options comme des groupes de travail"><value>oui</value></variable> <variable type='oui/non' name='ninegate_scribegroup' description="Considérer les classes/options comme des groupes de travail"><value>oui</value></variable>
<variable type='oui/non' name='ninegate_scribemaster' description="Placer les professeurs comme manager des groupes classes/options"><value>oui</value></variable> <variable type='oui/non' name='ninegate_scribemaster' description="Placer les professeurs comme manager des groupes classes/options"><value>oui</value></variable>
<variable type='string' name='ninegate_openldapreqniveau01' description="Lors de l'initalisation de Ninegate requete LDAP utilisateur de votre premier Niveau01" mandatory='True'><value>(uid=*)</value></variable>
<variable type='oui/non' name='ninegate_openldapsynchrogroup' description="Générer automatiquement les groupes en fonction de votre annuaire"><value>oui</value></variable>
<variable type='string' name='ninegate_openldapreqgroup' description="Générer automatiquement les groupes en fonction de votre annuaire" mandatory='True'><value>(objectClass=posixGroup)</value></variable>
<variable type='string' name='ninegate_openldapsubbranchgroup' description="Rechercher les groupes dans la sous-branche" mandatory='False' />
<variable type='string' name='ninegate_openldapsubbranchuser' description="Rechercher les utilisateurs dans la sous-branche" mandatory='False' />
<variable type='string' name='ninegate_pwdadmin' description="Mot de passe du compte admin durant l'instance (idem valeur Cadoles ldap)" mandatory='True'><value>cadoles</value></variable> <variable type='string' name='ninegate_ldaptype' description="Annuaire Cadoles LDAP ou AD " mandatory='True'><value>LDAP</value></variable>
<variable type='string' name='ninegate_organization' description="Nom de l'organisation principale (idem valeur Cadoles ldap)" mandatory='True'><value>cadoles</value></variable> <variable type='string' name='ninegate_addomainehome' description="Nom de votre domaine AD Home" mandatory='True'><value></value></variable>
<variable type='string' name='ninegate_addomaineprofil' description="Nom de votre domaine AD Profil" mandatory='True'><value></value></variable>
<variable type='string' name='ninegate_pwdadmin' description="Mot de passe du compte admin durant l'instance (idem valeur Cadoles ldap)" mandatory='True'><value></value></variable>
<variable type='string' name='ninegate_organization' description="Nom de l'organisation principale (idem valeur Cadoles ldap)" mandatory='True'><value></value></variable>
<variable type='string' name='ninegate_niveau01branche' description="Nom de la branche de Niveau 01 (idem valeur Cadoles ldap)" mandatory='True'><value>niveau01</value></variable> <variable type='string' name='ninegate_niveau01branche' description="Nom de la branche de Niveau 01 (idem valeur Cadoles ldap)" mandatory='True'><value>niveau01</value></variable>
<variable type='string' name='ninegate_niveau02branche' description="Nom de la branche de Niveau 02 (idem valeur Cadoles ldap)" mandatory='True'><value>niveau02</value></variable> <variable type='string' name='ninegate_niveau02branche' description="Nom de la branche de Niveau 02 (idem valeur Cadoles ldap)" mandatory='True'><value>niveau02</value></variable>
<variable type='string' name='ninegate_niveau01name' description="Nom de la première orgranisation de Niveau 01 (idem valeur Cadoles ldap)" mandatory='True'><value>cadoles</value></variable> <variable type='string' name='ninegate_niveau01name' description="Nom de la première orgranisation de Niveau 01 (idem valeur Cadoles ldap)" mandatory='True'><value></value></variable>
<variable type='string' name='ninegate_niveau01siren' description="SIREN de la première orgranisation de Niveau 01 (idem valeur Cadoles ldap)" mandatory='True'><value>cadoles</value></variable> <variable type='string' name='ninegate_niveau01siren' description="SIREN de la première orgranisation de Niveau 01 (idem valeur Cadoles ldap)"><value></value></variable>
<variable type='string' name='ninegate_niveau01label' description="Label singulier du niveau 01 d'organisation" mandatory='True'><value>Ecole</value></variable> <variable type='string' name='ninegate_niveau01label' description="Label singulier du niveau 01 d'organisation" mandatory='True'><value>Ecole</value></variable>
<variable type='string' name='ninegate_niveau01labels' description="Label pluriel du niveau 01 d'organisation" mandatory='True'><value>Ecoles</value></variable> <variable type='string' name='ninegate_niveau01labels' description="Label pluriel du niveau 01 d'organisation" mandatory='True'><value>Ecoles</value></variable>
@ -104,6 +126,9 @@
<variable type='string' name='ninegate_keyterm' description="Durée de validité du jeton d'inscription" mandatory='True'><value>8</value></variable> <variable type='string' name='ninegate_keyterm' description="Durée de validité du jeton d'inscription" mandatory='True'><value>8</value></variable>
<variable type='string' name='ninegate_minpassword' description="Taille minimun du password" mandatory='True'><value>8</value></variable> <variable type='string' name='ninegate_minpassword' description="Taille minimun du password" mandatory='True'><value>8</value></variable>
<variable type='oui/non' name='ninegate_forcetheme' description="Forcer l'utilisation d'un thème"><value>non</value></variable>
<variable type='string' name='ninegate_forcethemename' description="Nom du thème"><value></value></variable>
<!-- MODULE PORTAL --> <!-- MODULE PORTAL -->
<variable type="oui/non" name='ninegate_activate_portal' description='Activer le module portail' mandatory='True'> <variable type="oui/non" name='ninegate_activate_portal' description='Activer le module portail' mandatory='True'>
@ -171,6 +196,13 @@
<variable type='string' name='ninegate_widbalado_url' description='URL complète de votre Balado' mandatory='True' /> <variable type='string' name='ninegate_widbalado_url' description='URL complète de votre Balado' mandatory='True' />
<variable type='string' name='ninegate_widbalado_syncenvole' description='URL Posh-Profil pour synchronisation Balado' mandatory='True' /> <variable type='string' name='ninegate_widbalado_syncenvole' description='URL Posh-Profil pour synchronisation Balado' mandatory='True' />
<!-- CDT -->
<variable type="oui/non" name='ninegate_activate_widcdt' description='Activer CdT' mandatory='True'>
<value>non</value>
</variable>
<variable type='string' name='ninegate_widcdt_url' description='URL complète de votre CdT' mandatory='True' />
<variable type='string' name='ninegate_widcdt_syncenvole' description='URL Posh-Profil pour synchronisation CdT' mandatory='True' />
<!-- DOKUWIKI --> <!-- DOKUWIKI -->
<variable type="oui/non" name='ninegate_activate_widdokuwiki' description='Activer Dokuwiki' mandatory='True'> <variable type="oui/non" name='ninegate_activate_widdokuwiki' description='Activer Dokuwiki' mandatory='True'>
<value>non</value> <value>non</value>
@ -187,7 +219,6 @@
<variable type="oui/non" name='ninegate_activate_widead' description='Activer EAD' mandatory='True'> <variable type="oui/non" name='ninegate_activate_widead' description='Activer EAD' mandatory='True'>
<value>non</value> <value>non</value>
</variable> </variable>
<variable type='string' name='ninegate_widead_url' description='URL complète de votre EAD' mandatory='True' />
<!-- EOE --> <!-- EOE -->
<variable type="oui/non" name='ninegate_activate_wideoe' description='Activer EOE' mandatory='True'> <variable type="oui/non" name='ninegate_activate_wideoe' description='Activer EOE' mandatory='True'>
@ -280,6 +311,18 @@
</variable> </variable>
<variable type='string' name='ninegate_widnineboard_url' description='URL complète de votre Nineboard' mandatory='True' /> <variable type='string' name='ninegate_widnineboard_url' description='URL complète de votre Nineboard' mandatory='True' />
<!-- NINESCHOOL -->
<variable type="oui/non" name='ninegate_activate_widnineschool' description='Activer Nineschool' mandatory='True'>
<value>non</value>
</variable>
<variable type='string' name='ninegate_widnineschool_url' description='URL complète de votre Nineschool' mandatory='True' />
<!-- NINESURVEY -->
<variable type="oui/non" name='ninegate_activate_widninesurvey' description='Activer Ninesurvey' mandatory='True'>
<value>non</value>
</variable>
<variable type='string' name='ninegate_widninesurvey_url' description='URL complète de votre Ninesurvey' mandatory='True' />
<!-- ONLY OFFICE --> <!-- ONLY OFFICE -->
<variable type="oui/non" name='ninegate_activate_widonlyoffice' description='Activer OnlyOffice' mandatory='True'> <variable type="oui/non" name='ninegate_activate_widonlyoffice' description='Activer OnlyOffice' mandatory='True'>
<value>non</value> <value>non</value>
@ -303,6 +346,12 @@
</variable> </variable>
<variable type='string' name='ninegate_widphpldapadmin_url' description='URL complète de votre phpLdapAdmin' mandatory='True' /> <variable type='string' name='ninegate_widphpldapadmin_url' description='URL complète de votre phpLdapAdmin' mandatory='True' />
<!-- PIWIGO -->
<variable type="oui/non" name='ninegate_activate_widpiwigo' description='Activer Piwigo' mandatory='True'>
<value>non</value>
</variable>
<variable type='string' name='ninegate_widpiwigo_url' description='URL complète de votre Piwigo' mandatory='True' />
<!-- PIWIK --> <!-- PIWIK -->
<variable type="oui/non" name='ninegate_activate_widpiwik' description='Activer Piwik' mandatory='True'> <variable type="oui/non" name='ninegate_activate_widpiwik' description='Activer Piwik' mandatory='True'>
<value>non</value> <value>non</value>
@ -330,19 +379,6 @@
<variable type='string' name='ninegate_widwordpress_url' description='URL complète de votre Wordpress' mandatory='True' /> <variable type='string' name='ninegate_widwordpress_url' description='URL complète de votre Wordpress' mandatory='True' />
<variable type='string' name='ninegate_widwordpress_syncenvole' description='URL Posh-Profil pour synchronisation Wordpress' mandatory='True' /> <variable type='string' name='ninegate_widwordpress_syncenvole' description='URL Posh-Profil pour synchronisation Wordpress' mandatory='True' />
<!-- WEBSOCKET -->
<variable type='string' name='ninegate_websocket_url' description='Host du serveur Websocket' mandatory='True' />
<variable type='string' name='ninegate_websocket_portexterne' description='Port de commuinication externe du serveur Websocket' mandatory='True' >
<value>5555</value>
</variable>
<variable type='string' name='ninegate_websocket_portinterne' description='Port de commuinication interne du serveur Websocket' mandatory='True'>
<value>5556</value>
</variable>
<!-- EMAIL --> <!-- EMAIL -->
<variable type='string' name='ninegate_noreply' description='Adresse mail utilisé pour le noreply' mandatory='True' /> <variable type='string' name='ninegate_noreply' description='Adresse mail utilisé pour le noreply' mandatory='True' />
<variable type="oui/non" name='ninegate_activer_localmail' description="Utiliser le serveur d'envoi de mail local" mandatory='True'> <variable type="oui/non" name='ninegate_activer_localmail' description="Utiliser le serveur d'envoi de mail local" mandatory='True'>
@ -354,9 +390,9 @@
<variable type='string' name='ninegate_smtppwd' description='Fichier contenant le mot de passe associé du compte SMTP' /> <variable type='string' name='ninegate_smtppwd' description='Fichier contenant le mot de passe associé du compte SMTP' />
<variable type='string' name='ninegate_smtpencryption' description='Type Encryptage du serveur SMTP' /> <variable type='string' name='ninegate_smtpencryption' description='Type Encryptage du serveur SMTP' />
<variable type='string' name='ninegate_smtpauthmode' description='Mode Authentification du serveur SMTP' /> <variable type='string' name='ninegate_smtpauthmode' description='Mode Authentification du serveur SMTP' />
</family>
<family name='EoleDB' icon='database' mode='expert'>
<!-- EOLEDB --> <!-- EOLEDB -->
<variable type='string' name='ninegate_db_mode' description='Serveur de bases de données à utiliser' mode='expert'/> <variable type='string' name='ninegate_db_mode' description='Serveur de bases de données à utiliser' mode='expert'/>
<variable type='string' name='ninegate_dbserver' description='Adresse du serveur de base de données' mode='expert'/> <variable type='string' name='ninegate_dbserver' description='Adresse du serveur de base de données' mode='expert'/>
@ -372,6 +408,7 @@
<separator name="ninegate_activate_portal">Paramètres associés aux modules à activer</separator> <separator name="ninegate_activate_portal">Paramètres associés aux modules à activer</separator>
<separator name="ninegate_activate_widadminer">Paramètres associés à Adminer</separator> <separator name="ninegate_activate_widadminer">Paramètres associés à Adminer</separator>
<separator name="ninegate_activate_widbalado">Paramètres associés à Balado</separator> <separator name="ninegate_activate_widbalado">Paramètres associés à Balado</separator>
<separator name="ninegate_activate_widcdt">Paramètres associés à CdT</separator>
<separator name="ninegate_activate_widdokuwiki">Paramètres associés à Dokuwiki</separator> <separator name="ninegate_activate_widdokuwiki">Paramètres associés à Dokuwiki</separator>
<separator name="ninegate_activate_wideconnect">Paramètres associés à eConnect</separator> <separator name="ninegate_activate_wideconnect">Paramètres associés à eConnect</separator>
<separator name="ninegate_activate_widead">Paramètres associés à EAD</separator> <separator name="ninegate_activate_widead">Paramètres associés à EAD</separator>
@ -389,16 +426,19 @@
<separator name="ninegate_activate_widmoodle">Paramètres associés à Moodle</separator> <separator name="ninegate_activate_widmoodle">Paramètres associés à Moodle</separator>
<separator name="ninegate_activate_widnextcloud">Paramètres associés à Nextcloud</separator> <separator name="ninegate_activate_widnextcloud">Paramètres associés à Nextcloud</separator>
<separator name="ninegate_activate_widnineboard">Paramètres associés à Nineboard</separator> <separator name="ninegate_activate_widnineboard">Paramètres associés à Nineboard</separator>
<separator name="ninegate_activate_widnineschool">Paramètres associés à Nineschool</separator>
<separator name="ninegate_activate_widninesurvey">Paramètres associés à Ninesurvey</separator>
<separator name="ninegate_activate_widonlyoffice">Paramètres associés à Only Office</separator> <separator name="ninegate_activate_widonlyoffice">Paramètres associés à Only Office</separator>
<separator name="ninegate_activate_widopensondage">Paramètres associés à Opensondage</separator> <separator name="ninegate_activate_widopensondage">Paramètres associés à Opensondage</separator>
<separator name="ninegate_activate_widphpldapadmin">Paramètres associés à phpLdapAdmin</separator> <separator name="ninegate_activate_widphpldapadmin">Paramètres associés à phpLdapAdmin</separator>
<separator name="ninegate_activate_widpiwigo">Paramètres associés à Piwigo</separator>
<separator name="ninegate_activate_widpiwik">Paramètres associés à Piwik</separator> <separator name="ninegate_activate_widpiwik">Paramètres associés à Piwik</separator>
<separator name="ninegate_activate_widroundcube">Paramètres associés à Roundcube</separator> <separator name="ninegate_activate_widroundcube">Paramètres associés à Roundcube</separator>
<separator name="ninegate_activate_widsacoche">Paramètres associés à Sacoche</separator> <separator name="ninegate_activate_widsacoche">Paramètres associés à Sacoche</separator>
<separator name="ninegate_activate_widwordpress">Paramètres associés à Wordpress</separator> <separator name="ninegate_activate_widwordpress">Paramètres associés à Wordpress</separator>
<separator name="ninegate_websocket_url">Paramètres associés au Serveur WEBSOCKET</separator> <separator name="ninegate_activate_websocket">Paramètres associés au Serveur WEBSOCKET</separator>
<separator name="ninegate_noreply">Paramètres associés aux Mails</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> <separator name="ninegate_db_mode">Paramètres EoleDB associés à Ninegate</separator>
</separators> </separators>
</variables> </variables>
@ -408,6 +448,11 @@
<target type='variable'>activer_ninegate</target> <target type='variable'>activer_ninegate</target>
</condition> </condition>
<condition name='hidden_if_in' source='activer_revprox'>
<param>non</param>
<target type='filelist'>nineboard_nginx</target>
</condition>
<condition name='hidden_if_in' source='activer_ninegate'> <condition name='hidden_if_in' source='activer_ninegate'>
<param>non</param> <param>non</param>
@ -415,12 +460,23 @@
<target type='variable'>ninegate_mode_auth</target> <target type='variable'>ninegate_mode_auth</target>
<target type='variable'>ninegate_api_key</target> <target type='variable'>ninegate_api_key</target>
<target type='variable'>ninegate_ssosynchrogroup</target>
<target type='variable'>ninegate_ssoreqgroup</target>
<target type='variable'>ninegate_ssosynchroitem</target>
<target type='variable'>ninegate_ssoreqitem</target>
<target type='variable'>ninegate_typesso</target>
<target type='variable'>ninegate_syncldap</target> <target type='variable'>ninegate_syncldap</target>
<target type='variable'>ninegate_ldaptemplate</target> <target type='variable'>ninegate_ldaptemplate</target>
<target type='variable'>ninegate_scribegroup</target> <target type='variable'>ninegate_scribegroup</target>
<target type='variable'>ninegate_scribemaster</target> <target type='variable'>ninegate_scribemaster</target>
<target type='variable'>ninegate_openldapreqniveau01</target>
<target type='variable'>ninegate_openldapsynchrogroup</target>
<target type='variable'>ninegate_openldapreqgroup</target>
<target type='variable'>ninegate_openldapsubbranchgroup</target>
<target type='variable'>ninegate_openldapsubbranchuser</target>
<target type='variable'>ninegate_ldaptype</target>
<target type='variable'>ninegate_pwdadmin</target> <target type='variable'>ninegate_pwdadmin</target>
<target type='variable'>ninegate_organization</target> <target type='variable'>ninegate_organization</target>
<target type='variable'>ninegate_niveau01branche</target> <target type='variable'>ninegate_niveau01branche</target>
@ -440,6 +496,8 @@
<target type='variable'>ninegate_moderegistration</target> <target type='variable'>ninegate_moderegistration</target>
<target type='variable'>ninegate_keyterm</target> <target type='variable'>ninegate_keyterm</target>
<target type='variable'>ninegate_minpassword</target> <target type='variable'>ninegate_minpassword</target>
<target type='variable'>ninegate_forcetheme</target>
<target type='variable'>ninegate_forcethemename</target>
<target type='variable'>ninegate_activate_portal</target> <target type='variable'>ninegate_activate_portal</target>
<target type='variable'>ninegate_activate_page</target> <target type='variable'>ninegate_activate_page</target>
@ -471,6 +529,7 @@
<target type='variable'>ninegate_dbpass</target> <target type='variable'>ninegate_dbpass</target>
<target type='filelist'>ninegate</target> <target type='filelist'>ninegate</target>
<target type='filelist'>ninegate_nginx</target>
<target type='filelist'>ninegate-migration</target> <target type='filelist'>ninegate-migration</target>
<target type='servicelist'>ninegate</target> <target type='servicelist'>ninegate</target>
@ -499,14 +558,43 @@
<target type='variable'>ninegate_test_conf_cadolesldap</target> <target type='variable'>ninegate_test_conf_cadolesldap</target>
</condition> </condition>
<condition name='hidden_if_in' source='ninegate_masteridentity'>
<param>SQL</param>
<param>LDAP</param>
<target type='variable'>ninegate_ssosynchrogroup</target>
<target type='variable'>ninegate_ssoreqgroup</target>
<target type='variable'>ninegate_ssosynchroitem</target>
<target type='variable'>ninegate_ssoreqitem</target>
</condition>
<condition name='hidden_if_in' source='ninegate_mode_auth'>
<param>SQL</param>
<param>LDAP</param>
<param>SAML</param>
<target type='variable'>ninegate_typesso</target>
</condition>
<condition name='hidden_if_in' source='ninegate_syncldap'> <condition name='hidden_if_in' source='ninegate_syncldap'>
<param>non</param> <param>non</param>
<target type='variable'>ninegate_ldaptype</target>
<target type='variable'>ninegate_pwdadmin</target> <target type='variable'>ninegate_pwdadmin</target>
<target type='variable'>ninegate_niveau01name</target> <target type='variable'>ninegate_niveau01name</target>
<target type='variable'>ninegate_niveau01siren</target> <target type='variable'>ninegate_niveau01siren</target>
</condition> </condition>
<fill name='calc_multi_condition' target='activer_admin_passfile'>
<param>non</param>
<param type='eole' name='condition_1' hidden='False'>ninegate_syncldap</param>
<param name="operator">AND</param>
<param type='eole' name='condition_2' hidden='False'>activer_cadolesldap</param>
<param name='match'>non</param>
<param name='mismatch'>oui</param>
<param name='default_mismatch'>non</param>
</fill>
<auto name='calc_multi_condition' target='ninegate_test_conf_cadolesldap'> <auto name='calc_multi_condition' target='ninegate_test_conf_cadolesldap'>
<param>CadolesLDAP</param> <param>CadolesLDAP</param>
<param type='eole' name='condition_1' hidden='False'>ninegate_ldaptemplate</param> <param type='eole' name='condition_1' hidden='False'>ninegate_ldaptemplate</param>
@ -547,7 +635,48 @@
<param name='mismatch'>non</param> <param name='mismatch'>non</param>
</auto> </auto>
<!-- AFFICHAGE EN FONCTION DE SSO SYNCHRO GROUPE -->
<condition name='hidden_if_in' source='ninegate_ssosynchrogroup'>
<param>non</param>
<target type='variable'>ninegate_ssoreqgroup</target>
</condition>
<!-- AFFICHAGE EN FONCTION DE SSO SYNCHRO ITEM -->
<condition name='hidden_if_in' source='ninegate_ssosynchroitem'>
<param>non</param>
<target type='variable'>ninegate_ssoreqitem</target>
</condition>
<!-- AFFICHAGE EN FONCTION DE CADOLESLDAP -->
<fill name='calc_val' target='ninegate_pwdadmin'>
<param type='eole' hidden='False'>cadolesldap_pwdadmin</param>
</fill>
<fill name='calc_val_first_value' target='ninegate_organization'>
<param type='eole' optional='True' hidden='False'>cadolesldap_organization</param>
<param type='eole'>libelle_etab</param>
</fill>
<fill name='calc_val_first_value' target='ninegate_niveau01branche'>
<param type='eole' hidden='False'>cadolesldap_niveau01branche</param>
<param>niveau01</param>
</fill>
<fill name='calc_val_first_value' target='ninegate_niveau02branche'>
<param type='eole' hidden='False'>cadolesldap_niveau02branche</param>
<param>niveau01</param>
</fill>
<fill name='calc_val_first_value' target='ninegate_niveau01name'>
<param type='eole' optional='True' hidden='False'>cadolesldap_niveau01name</param>
<param type='eole'>libelle_etab</param>
</fill>
<fill name='calc_val' target='ninegate_niveau01siren'>
<param type='eole' hidden='False'>cadolesldap_niveau01siren</param>
</fill>
<!-- AFFICHAGE EN FONCTION DU MODE SCRIBE --> <!-- AFFICHAGE EN FONCTION DU MODE SCRIBE -->
<condition name='hidden_if_not_in' source='ninegate_ldaptemplate'> <condition name='hidden_if_not_in' source='ninegate_ldaptemplate'>
@ -557,7 +686,38 @@
<target type='variable'>ninegate_scribemaster</target> <target type='variable'>ninegate_scribemaster</target>
</condition> </condition>
<!-- AFFICHAGE EN FONCTION DU MODE OPEN -->
<condition name='hidden_if_not_in' source='ninegate_ldaptemplate'>
<param>open</param>
<target type='variable'>ninegate_openldapreqniveau01</target>
<target type='variable'>ninegate_openldapsynchrogroup</target>
<target type='variable'>ninegate_openldapreqgroup</target>
<target type='variable'>ninegate_openldapsubbranchgroup</target>
<target type='variable'>ninegate_openldapsubbranchuser</target>
</condition>
<!-- AFFICHAGE EN FONCTION DU LDAP SYNCHRO GROUP -->
<condition name='hidden_if_in' source='ninegate_openldapsynchrogroup'>
<param>non</param>
<target type='variable'>ninegate_openldapreqgroup</target>
</condition>
<!-- AFFICHAGE EN FONCTION DU MODE SCRIBE -->
<condition name='hidden_if_not_in' source='ninegate_ldaptype'>
<param>AD</param>
<target type='variable'>ninegate_addomainehome</target>
<target type='variable'>ninegate_addomaineprofil</target>
</condition>
<!-- AFFICHAGE EN FONCTION DU FORCE THEME -->
<condition name='hidden_if_in' source='ninegate_forcetheme'>
<param>non</param>
<target type='variable'>ninegate_forcethemename</target>
</condition>
<!-- AFFICHAGE EN FONCTION DU MODULE PORTAL --> <!-- AFFICHAGE EN FONCTION DU MODULE PORTAL -->
<condition name='hidden_if_in' source='ninegate_activate_portal'> <condition name='hidden_if_in' source='ninegate_activate_portal'>
@ -565,6 +725,7 @@
<target type='variable'>ninegate_activate_widadminer</target> <target type='variable'>ninegate_activate_widadminer</target>
<target type='variable'>ninegate_activate_widbalado</target> <target type='variable'>ninegate_activate_widbalado</target>
<target type='variable'>ninegate_activate_widcdt</target>
<target type='variable'>ninegate_activate_widdokuwiki</target> <target type='variable'>ninegate_activate_widdokuwiki</target>
<target type='variable'>ninegate_activate_wideconnect</target> <target type='variable'>ninegate_activate_wideconnect</target>
<target type='variable'>ninegate_activate_widead</target> <target type='variable'>ninegate_activate_widead</target>
@ -582,9 +743,12 @@
<target type='variable'>ninegate_activate_widmoodle</target> <target type='variable'>ninegate_activate_widmoodle</target>
<target type='variable'>ninegate_activate_widnextcloud</target> <target type='variable'>ninegate_activate_widnextcloud</target>
<target type='variable'>ninegate_activate_widnineboard</target> <target type='variable'>ninegate_activate_widnineboard</target>
<target type='variable'>ninegate_activate_widnineschool</target>
<target type='variable'>ninegate_activate_widninesurvey</target>
<target type='variable'>ninegate_activate_widonlyoffice</target> <target type='variable'>ninegate_activate_widonlyoffice</target>
<target type='variable'>ninegate_activate_widopensondage</target> <target type='variable'>ninegate_activate_widopensondage</target>
<target type='variable'>ninegate_activate_widphpldapadmin</target> <target type='variable'>ninegate_activate_widphpldapadmin</target>
<target type='variable'>ninegate_activate_widpiwigo</target>
<target type='variable'>ninegate_activate_widpiwik</target> <target type='variable'>ninegate_activate_widpiwik</target>
<target type='variable'>ninegate_activate_widroundcube</target> <target type='variable'>ninegate_activate_widroundcube</target>
<target type='variable'>ninegate_activate_widsacoche</target> <target type='variable'>ninegate_activate_widsacoche</target>
@ -611,6 +775,7 @@
<param>non</param> <param>non</param>
<target type='variable'>ninegate_widbalado_syncenvole</target> <target type='variable'>ninegate_widbalado_syncenvole</target>
<target type='variable'>ninegate_widcdt_syncenvole</target>
<target type='variable'>ninegate_widgepi_syncenvole</target> <target type='variable'>ninegate_widgepi_syncenvole</target>
<target type='variable'>ninegate_widlimesurvey_syncenvole</target> <target type='variable'>ninegate_widlimesurvey_syncenvole</target>
<target type='variable'>ninegate_widmoodle_syncenvole</target> <target type='variable'>ninegate_widmoodle_syncenvole</target>
@ -629,30 +794,12 @@
<condition name='hidden_if_in' source='poshprofil_typesynchro'> <condition name='hidden_if_in' source='poshprofil_typesynchro'>
<param>Annuaire</param> <param>Annuaire</param>
<target type='variable'>ninegate_widbalado_syncenvole</target> <target type='variable'>ninegate_widbalado_syncenvole</target>
<target type='variable'>ninegate_widcdt_syncenvole</target>
<target type='variable'>ninegate_widgepi_syncenvole</target> <target type='variable'>ninegate_widgepi_syncenvole</target>
<target type='variable'>ninegate_widnextcloud_syncenvole</target> <target type='variable'>ninegate_widnextcloud_syncenvole</target>
<target type='variable'>ninegate_widsacoche_syncenvole</target> <target type='variable'>ninegate_widsacoche_syncenvole</target>
</condition> </condition>
<!-- 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>
<target type='servicelist'>ninegate_websocket</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 ADMINER --> <!-- AFFICHAGE EN FONCTION DU WIDGET ADMINER -->
<fill name='calc_multi_condition' target='ninegate_activate_widadminer'> <fill name='calc_multi_condition' target='ninegate_activate_widadminer'>
<param>oui</param> <param>oui</param>
@ -677,7 +824,7 @@
<!-- AFFICHAGE EN FONCTION DU WIDGET BALADAO --> <!-- AFFICHAGE EN FONCTION DU WIDGET BALADO -->
<fill name='calc_multi_condition' target='ninegate_activate_widbalado'> <fill name='calc_multi_condition' target='ninegate_activate_widbalado'>
<param>oui</param> <param>oui</param>
<param type='eole' name='condition_1' hidden='False'>activer_balado</param> <param type='eole' name='condition_1' hidden='False'>activer_balado</param>
@ -708,6 +855,39 @@
</fill> </fill>
<!-- AFFICHAGE EN FONCTION DU WIDGET CDT -->
<fill name='calc_multi_condition' target='ninegate_activate_widcdt'>
<param>oui</param>
<param type='eole' name='condition_1' hidden='False'>activer_cdt</param>
<param name='match'>oui</param>
<param name='mismatch'>non</param>
<param name='default_mismatch'>non</param>
</fill>
<condition name='hidden_if_in' source='ninegate_activate_widcdt'>
<param>non</param>
<target type='variable'>ninegate_widcdt_url</target>
<target type='variable'>ninegate_widcdt_syncenvole</target>
</condition>
<fill name='calc_multi_condition' target='ninegate_widcdt_url'>
<param>oui</param>
<param type='eole' name='condition_1' hidden='False'>activer_cdt</param>
<param name='match'>/cdt</param>
<param name='default_mismatch'>None</param>
</fill>
<fill name='calc_multi_condition' target='ninegate_widcdt_syncenvole'>
<param>oui</param>
<param type='eole' name='condition_1' hidden='False'>activer_cdt</param>
<param name='match'>/posh-profil</param>
<param name='default_mismatch'>None</param>
</fill>
<!-- AFFICHAGE EN FONCTION DU WIDGET DOKUWIKI --> <!-- AFFICHAGE EN FONCTION DU WIDGET DOKUWIKI -->
<fill name='calc_multi_condition' target='ninegate_activate_widdokuwiki'> <fill name='calc_multi_condition' target='ninegate_activate_widdokuwiki'>
<param>oui</param> <param>oui</param>
@ -764,18 +944,6 @@
<param name='default_mismatch'>non</param> <param name='default_mismatch'>non</param>
</fill> </fill>
<condition name='hidden_if_in' source='ninegate_activate_widead'>
<param>non</param>
<target type='variable'>ninegate_widead_url</target>
</condition>
<fill name='concat' target='ninegate_widead_url'>
<param>https://</param>
<param type='eole'>web_url</param>
<param>:4200</param>
</fill>
<!-- AFFICHAGE EN FONCTION DU WIDGET EOE --> <!-- AFFICHAGE EN FONCTION DU WIDGET EOE -->
<fill name='calc_multi_condition' target='ninegate_activate_wideoe'> <fill name='calc_multi_condition' target='ninegate_activate_wideoe'>
<param>oui</param> <param>oui</param>
@ -1170,6 +1338,57 @@
<!-- AFFICHAGE EN FONCTION DU WIDGET NINESCHOOL -->
<fill name='calc_multi_condition' target='ninegate_activate_widnineschool'>
<param>oui</param>
<param type='eole' name='condition_1' hidden='False'>activer_nineschool</param>
<param name='match'>oui</param>
<param name='mismatch'>non</param>
<param name='default_mismatch'>non</param>
</fill>
<condition name='hidden_if_in' source='ninegate_activate_widnineschool'>
<param>non</param>
<target type='variable'>ninegate_widnineschool_url</target>
</condition>
<fill name='calc_multi_condition' target='ninegate_widnineschool_url'>
<param>oui</param>
<param type='eole' name='condition_1' hidden='False'>activer_nineschool</param>
<param name='match'>/nineschool</param>
<param name='default_mismatch'>None</param>
</fill>
<!-- AFFICHAGE EN FONCTION DU WIDGET NINESURVEY -->
<fill name='calc_multi_condition' target='ninegate_activate_widninesurvey'>
<param>oui</param>
<param type='eole' name='condition_1' hidden='False'>activer_ninesurvey</param>
<param name='match'>oui</param>
<param name='mismatch'>non</param>
<param name='default_mismatch'>non</param>
</fill>
<condition name='hidden_if_in' source='ninegate_activate_widninesurvey'>
<param>non</param>
<target type='variable'>ninegate_widninesurvey_url</target>
</condition>
<fill name='calc_multi_condition' target='ninegate_widninesurvey_url'>
<param>oui</param>
<param type='eole' name='condition_1' hidden='False'>activer_ninesurvey</param>
<param name='match'>/ninesurvey</param>
<param name='default_mismatch'>None</param>
</fill>
<!-- AFFICHAGE EN FONCTION DU WIDGET OPENSONDAGE --> <!-- AFFICHAGE EN FONCTION DU WIDGET OPENSONDAGE -->
<fill name='calc_multi_condition' target='ninegate_activate_widopensondage'> <fill name='calc_multi_condition' target='ninegate_activate_widopensondage'>
<param>oui</param> <param>oui</param>
@ -1238,6 +1457,32 @@
<!-- AFFICHAGE EN FONCTION DU WIDGET PIWIGO -->
<fill name='calc_multi_condition' target='ninegate_activate_widpiwigo'>
<param>oui</param>
<param type='eole' name='condition_1' hidden='False'>activer_piwigo</param>
<param name='match'>oui</param>
<param name='mismatch'>non</param>
<param name='default_mismatch'>non</param>
</fill>
<condition name='hidden_if_in' source='ninegate_activate_widpiwigo'>
<param>non</param>
<target type='variable'>ninegate_widpiwigo_url</target>
</condition>
<fill name='calc_multi_condition' target='ninegate_widpiwigo_url'>
<param>oui</param>
<param type='eole' name='condition_1' hidden='False'>activer_piwigo</param>
<param name='match'>/piwigo</param>
<param name='default_mismatch'>None</param>
</fill>
<!-- AFFICHAGE EN FONCTION DU WIDGET PIWIK --> <!-- AFFICHAGE EN FONCTION DU WIDGET PIWIK -->
<fill name='calc_multi_condition' target='ninegate_activate_widpiwik'> <fill name='calc_multi_condition' target='ninegate_activate_widpiwik'>
<param>oui</param> <param>oui</param>
@ -1419,6 +1664,10 @@
<param>['CAS', 'SAML', 'SQL', 'LDAP']</param> <param>['CAS', 'SAML', 'SQL', 'LDAP']</param>
</check> </check>
<check name='valid_enum' target='ninegate_typesso'>
<param>['client', 'proxy']</param>
</check>
<check name='valid_enum' target='ninegate_moderegistration'> <check name='valid_enum' target='ninegate_moderegistration'>
<param>['none', 'byuser', 'byadmin']</param> <param>['none', 'byuser', 'byadmin']</param>
</check> </check>
@ -1427,6 +1676,10 @@
<param>['scribe', 'open', 'CadolesLDAP']</param> <param>['scribe', 'open', 'CadolesLDAP']</param>
</check> </check>
<check name='valid_enum' target='ninegate_ldaptype'>
<param>['LDAP', 'AD']</param>
</check>
<check name='valid_enum' target='ninegate_smtpencryption'> <check name='valid_enum' target='ninegate_smtpencryption'>
<param>['tls', 'ssl', 'null']</param> <param>['tls', 'ssl', 'null']</param>
</check> </check>

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<creole>
<variables>
<family name='annuaire'>
<variable type='string' name='ldap_writer' description="Utilisateur d'écriture des comptes LDAP" exists='False'>
cn=admin,o=gouv,c=fr
</variable>
<variable name='ldap_member_group_attribute' type='string' description="Attribut des utilisateurs d'un groupe" mode='expert' exists='False'>
<value>memberUid</value>
</variable>
</family>
</variables>
<constraints>
<fill name='concat' target='ldap_writer'>
<param>cn=admin,</param>
<param type='eole'>ldap_base_dn</param>
</fill>
</constraints>
<help>
</help>
</creole>

View File

@ -1,6 +1,13 @@
/var/www/html/ninegate/var/logs/*.log { /var/www/html/ninegate/var/logs/*.log {
rotate 5 su root www-data
daily daily
su www-data rotate 7
size 900
maxage 7
compress
dateext
dateformat -%Y%m%d
missingok
create 644 www-data www-data
} }

View File

@ -2,6 +2,7 @@
/app/config/parameters.yml /app/config/parameters.yml
/app/config/template.yml /app/config/template.yml
/src/Cadoles/CoreBundle/Command/data/core-init-01.sql /src/Cadoles/CoreBundle/Command/data/core-init-01.sql
/src/Cadoles/CoreBundle/Command/LocalCommand.php
/build/ /build/
/phpunit.xml /phpunit.xml
/var/* /var/*

View File

@ -16,7 +16,6 @@ class AppKernel extends Kernel
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(), new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new \Symfony\Bundle\MakerBundle\MakerBundle(),
new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(), new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(),
new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(), new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
new Symfony\Bundle\AsseticBundle\AsseticBundle(), new Symfony\Bundle\AsseticBundle\AsseticBundle(),
@ -39,6 +38,7 @@ class AppKernel extends Kernel
new Cadoles\CronBundle\CadolesCronBundle(), new Cadoles\CronBundle\CadolesCronBundle(),
new Cadoles\PortalBundle\CadolesPortalBundle(), new Cadoles\PortalBundle\CadolesPortalBundle(),
new Cadoles\WebsocketBundle\CadolesWebsocketBundle(), new Cadoles\WebsocketBundle\CadolesWebsocketBundle(),
new Cadoles\EdispatcherBundle\CadolesEdispatcherBundle(),
]; ];
@ -46,6 +46,7 @@ class AppKernel extends Kernel
$bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle(); $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
$bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle(); $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
$bundles[] = new Symfony\Bundle\MakerBundle\MakerBundle();
if ('dev' === $this->getEnvironment()) { if ('dev' === $this->getEnvironment()) {
$bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(); $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();

View File

@ -13,14 +13,6 @@ imports:
parameters: parameters:
locale: fr locale: fr
monolog:
handlers:
main:
type: rotating_file
path: '%kernel.logs_dir%/%kernel.environment%.log'
level: error
max_files: 10
framework: framework:
#esi: ~ #esi: ~
#translator: { fallbacks: ['%locale%'] } #translator: { fallbacks: ['%locale%'] }
@ -135,16 +127,16 @@ gos_web_socket:
firewall: main firewall: main
shared_config: true shared_config: true
server: server:
port: %websocket_port% #The port the socket server will listen on port: 443 #The port the socket server will listen on
host: %websocket_host% #The host ip to bind to host: %weburl%/wssninegate #The host ip to bind to
router: router:
resources: resources:
- "@CadolesWebsocketBundle/Resources/config/topic.yml" - "@CadolesWebsocketBundle/Resources/config/topic.yml"
pushers: pushers:
wamp: wamp:
host: %websocket_host% host: 0.0.0.0
port: %websocket_portinterne% port: 5556
# ckeditor configuration # ckeditor configuration
ivory_ck_editor: ivory_ck_editor:
@ -155,7 +147,7 @@ ivory_ck_editor:
language: fr language: fr
toolbar: "my_toolbar_1" toolbar: "my_toolbar_1"
uiColor: "#ffffff" uiColor: "#ffffff"
extraPlugins: ["html5video","pastebase64"] extraPlugins: ["html5video"]
light_config: light_config:
language: fr language: fr
toolbar: "my_toolbar_2" toolbar: "my_toolbar_2"

View File

@ -14,6 +14,10 @@ websocket:
resource: "@CadolesWebsocketBundle/Resources/config/routing.yml" resource: "@CadolesWebsocketBundle/Resources/config/routing.yml"
prefix: / prefix: /
edispatcher:
resource: "@CadolesEdispatcherBundle/Resources/config/routing.yml"
prefix: /
lightsaml_sp: lightsaml_sp:
resource: "@LightSamlSpBundle/Resources/config/routing.yml" resource: "@LightSamlSpBundle/Resources/config/routing.yml"
prefix: saml prefix: saml

View File

@ -65,9 +65,6 @@
] ]
}, },
"config": { "config": {
"platform": {
"php": "7.0.30"
},
"sort-packages": true "sort-packages": true
}, },
"extra": { "extra": {

View File

@ -4,30 +4,30 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"hash": "e008822a96a469e24963e22d66f34c98", "hash": "437ec86e9bacb04581e0e648a8d8abbb",
"content-hash": "589f314a10ca56596cf580254885bd7c", "content-hash": "67c93030cb80b522b452ffdeaf0983ab",
"packages": [ "packages": [
{ {
"name": "cboden/ratchet", "name": "cboden/ratchet",
"version": "v0.4.1", "version": "v0.4.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/ratchetphp/Ratchet.git", "url": "https://github.com/ratchetphp/Ratchet.git",
"reference": "0d31f3a8ad4795fd48397712709e55cd07f51360" "reference": "466a0ecc83209c75b76645eb823401b5c52e5f21"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/ratchetphp/Ratchet/zipball/0d31f3a8ad4795fd48397712709e55cd07f51360", "url": "https://api.github.com/repos/ratchetphp/Ratchet/zipball/466a0ecc83209c75b76645eb823401b5c52e5f21",
"reference": "0d31f3a8ad4795fd48397712709e55cd07f51360", "reference": "466a0ecc83209c75b76645eb823401b5c52e5f21",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"guzzlehttp/psr7": "^1.0", "guzzlehttp/psr7": "^1.0",
"php": ">=5.4.2", "php": ">=5.4.2",
"ratchet/rfc6455": "^0.2", "ratchet/rfc6455": "^0.3",
"react/socket": "^1.0 || ^0.8 || ^0.7 || ^0.6 || ^0.5", "react/socket": "^1.0 || ^0.8 || ^0.7 || ^0.6 || ^0.5",
"symfony/http-foundation": "^2.6|^3.0|^4.0", "symfony/http-foundation": "^2.6|^3.0|^4.0|^5.0",
"symfony/routing": "^2.6|^3.0|^4.0" "symfony/routing": "^2.6|^3.0|^4.0|^5.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "~4.8" "phpunit/phpunit": "~4.8"
@ -47,6 +47,10 @@
"name": "Chris Boden", "name": "Chris Boden",
"email": "cboden@gmail.com", "email": "cboden@gmail.com",
"role": "Developer" "role": "Developer"
},
{
"name": "Matt Bonneau",
"role": "Developer"
} }
], ],
"description": "PHP WebSocket library", "description": "PHP WebSocket library",
@ -58,20 +62,20 @@
"sockets", "sockets",
"websocket" "websocket"
], ],
"time": "2017-12-12 00:49:31" "time": "2020-07-07 15:50:14"
}, },
{ {
"name": "composer/ca-bundle", "name": "composer/ca-bundle",
"version": "1.2.4", "version": "1.2.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/ca-bundle.git", "url": "https://github.com/composer/ca-bundle.git",
"reference": "10bb96592168a0f8e8f6dcde3532d9fa50b0b527" "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/10bb96592168a0f8e8f6dcde3532d9fa50b0b527", "url": "https://api.github.com/repos/composer/ca-bundle/zipball/78a0e288fdcebf92aa2318a8d3656168da6ac1a5",
"reference": "10bb96592168a0f8e8f6dcde3532d9fa50b0b527", "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -80,14 +84,15 @@
"php": "^5.3.2 || ^7.0 || ^8.0" "php": "^5.3.2 || ^7.0 || ^8.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8", "phpstan/phpstan": "^0.12.55",
"psr/log": "^1.0", "psr/log": "^1.0",
"symfony/process": "^2.5 || ^3.0 || ^4.0" "symfony/phpunit-bridge": "^4.2 || ^5",
"symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.x-dev" "dev-main": "1.x-dev"
} }
}, },
"autoload": { "autoload": {
@ -114,7 +119,7 @@
"ssl", "ssl",
"tls" "tls"
], ],
"time": "2019-08-30 08:44:50" "time": "2021-01-12 12:10:35"
}, },
{ {
"name": "debril/feed-io", "name": "debril/feed-io",
@ -1432,22 +1437,25 @@
}, },
{ {
"name": "fig/link-util", "name": "fig/link-util",
"version": "1.0.0", "version": "1.1.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/link-util.git", "url": "https://github.com/php-fig/link-util.git",
"reference": "1a07821801a148be4add11ab0603e4af55a72fac" "reference": "5d7b8d04ed3393b4b59968ca1e906fb7186d81e8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac", "url": "https://api.github.com/repos/php-fig/link-util/zipball/5d7b8d04ed3393b4b59968ca1e906fb7186d81e8",
"reference": "1a07821801a148be4add11ab0603e4af55a72fac", "reference": "5d7b8d04ed3393b4b59968ca1e906fb7186d81e8",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.5.0", "php": ">=5.5.0",
"psr/link": "~1.0@dev" "psr/link": "~1.0@dev"
}, },
"provide": {
"psr/link-implementation": "1.0"
},
"require-dev": { "require-dev": {
"phpunit/phpunit": "^5.1", "phpunit/phpunit": "^5.1",
"squizlabs/php_codesniffer": "^2.3.1" "squizlabs/php_codesniffer": "^2.3.1"
@ -1470,7 +1478,7 @@
"authors": [ "authors": [
{ {
"name": "PHP-FIG", "name": "PHP-FIG",
"homepage": "http://www.php-fig.org/" "homepage": "https://www.php-fig.org/"
} }
], ],
"description": "Common utility implementations for HTTP links", "description": "Common utility implementations for HTTP links",
@ -1482,7 +1490,7 @@
"psr-13", "psr-13",
"rest" "rest"
], ],
"time": "2016-10-17 18:31:11" "time": "2021-02-03 23:36:04"
}, },
{ {
"name": "gos/pnctl-event-loop-emitter", "name": "gos/pnctl-event-loop-emitter",
@ -1715,16 +1723,16 @@
}, },
{ {
"name": "gregwar/captcha", "name": "gregwar/captcha",
"version": "v1.1.7", "version": "v1.1.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Gregwar/Captcha.git", "url": "https://github.com/Gregwar/Captcha.git",
"reference": "cf953dd79748406e0292cea8c565399681e4d345" "reference": "4bb668e6b40e3205a020ca5ee4ca8cff8b8780c5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Gregwar/Captcha/zipball/cf953dd79748406e0292cea8c565399681e4d345", "url": "https://api.github.com/repos/Gregwar/Captcha/zipball/4bb668e6b40e3205a020ca5ee4ca8cff8b8780c5",
"reference": "cf953dd79748406e0292cea8c565399681e4d345", "reference": "4bb668e6b40e3205a020ca5ee4ca8cff8b8780c5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1764,27 +1772,28 @@
"captcha", "captcha",
"spam" "spam"
], ],
"time": "2018-08-17 22:57:28" "time": "2020-03-24 14:39:05"
}, },
{ {
"name": "gregwar/captcha-bundle", "name": "gregwar/captcha-bundle",
"version": "v2.0.6", "version": "v2.0.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Gregwar/CaptchaBundle.git", "url": "https://github.com/Gregwar/CaptchaBundle.git",
"reference": "c2d5468556890dd25e0b53bd345fc205562c86f7" "reference": "3ccfdf1c9324acbdfbcccea2c454075115741b3a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Gregwar/CaptchaBundle/zipball/c2d5468556890dd25e0b53bd345fc205562c86f7", "url": "https://api.github.com/repos/Gregwar/CaptchaBundle/zipball/3ccfdf1c9324acbdfbcccea2c454075115741b3a",
"reference": "c2d5468556890dd25e0b53bd345fc205562c86f7", "reference": "3ccfdf1c9324acbdfbcccea2c454075115741b3a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"gregwar/captcha": "~1.1", "gregwar/captcha": "~1.1",
"php": ">=5.3.9", "php": ">=5.3.9",
"symfony/form": "~2.8|~3.0|~4.0", "symfony/form": "~2.8|~3.0|~4.0",
"symfony/framework-bundle": "~2.8|~3.0|~4.0" "symfony/framework-bundle": "~2.8|~3.0|~4.0",
"twig/twig": "^1.40|^2.9"
}, },
"type": "captcha-bundle", "type": "captcha-bundle",
"autoload": { "autoload": {
@ -1818,27 +1827,28 @@
"spam", "spam",
"visual" "visual"
], ],
"time": "2018-11-20 10:41:34" "time": "2019-09-23 13:07:46"
}, },
{ {
"name": "guzzlehttp/guzzle", "name": "guzzlehttp/guzzle",
"version": "6.4.1", "version": "6.5.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/guzzle.git", "url": "https://github.com/guzzle/guzzle.git",
"reference": "0895c932405407fd3a7368b6910c09a24d26db11" "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/0895c932405407fd3a7368b6910c09a24d26db11", "url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e",
"reference": "0895c932405407fd3a7368b6910c09a24d26db11", "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-json": "*", "ext-json": "*",
"guzzlehttp/promises": "^1.0", "guzzlehttp/promises": "^1.0",
"guzzlehttp/psr7": "^1.6.1", "guzzlehttp/psr7": "^1.6.1",
"php": ">=5.5" "php": ">=5.5",
"symfony/polyfill-intl-idn": "^1.17.0"
}, },
"require-dev": { "require-dev": {
"ext-curl": "*", "ext-curl": "*",
@ -1851,7 +1861,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "6.3-dev" "dev-master": "6.5-dev"
} }
}, },
"autoload": { "autoload": {
@ -1884,27 +1894,27 @@
"rest", "rest",
"web service" "web service"
], ],
"time": "2019-10-23 15:58:00" "time": "2020-06-16 21:01:06"
}, },
{ {
"name": "guzzlehttp/promises", "name": "guzzlehttp/promises",
"version": "v1.3.1", "version": "1.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/promises.git", "url": "https://github.com/guzzle/promises.git",
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" "reference": "60d379c243457e073cff02bc323a2a86cb355631"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631",
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", "reference": "60d379c243457e073cff02bc323a2a86cb355631",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.5.0" "php": ">=5.5"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^4.0" "symfony/phpunit-bridge": "^4.4 || ^5.1"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -1935,20 +1945,20 @@
"keywords": [ "keywords": [
"promise" "promise"
], ],
"time": "2016-12-20 10:07:11" "time": "2020-09-30 07:37:28"
}, },
{ {
"name": "guzzlehttp/psr7", "name": "guzzlehttp/psr7",
"version": "1.6.1", "version": "1.7.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/psr7.git", "url": "https://github.com/guzzle/psr7.git",
"reference": "239400de7a173fe9901b9ac7c06497751f00727a" "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a", "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3",
"reference": "239400de7a173fe9901b9ac7c06497751f00727a", "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1961,15 +1971,15 @@
}, },
"require-dev": { "require-dev": {
"ext-zlib": "*", "ext-zlib": "*",
"phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8" "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10"
}, },
"suggest": { "suggest": {
"zendframework/zend-httphandlerrunner": "Emit PSR-7 responses" "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.6-dev" "dev-master": "1.7-dev"
} }
}, },
"autoload": { "autoload": {
@ -2006,30 +2016,30 @@
"uri", "uri",
"url" "url"
], ],
"time": "2019-07-01 23:21:34" "time": "2020-09-30 07:37:11"
}, },
{ {
"name": "incenteev/composer-parameter-handler", "name": "incenteev/composer-parameter-handler",
"version": "v2.1.3", "version": "v2.1.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Incenteev/ParameterHandler.git", "url": "https://github.com/Incenteev/ParameterHandler.git",
"reference": "933c45a34814f27f2345c11c37d46b3ca7303550" "reference": "084befb11ec21faeadcddefb88b66132775ff59b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/933c45a34814f27f2345c11c37d46b3ca7303550", "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/084befb11ec21faeadcddefb88b66132775ff59b",
"reference": "933c45a34814f27f2345c11c37d46b3ca7303550", "reference": "084befb11ec21faeadcddefb88b66132775ff59b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3", "php": ">=5.3.3",
"symfony/yaml": "^2.3 || ^3.0 || ^4.0" "symfony/yaml": "^2.3 || ^3.0 || ^4.0 || ^5.0"
}, },
"require-dev": { "require-dev": {
"composer/composer": "^1.0@dev", "composer/composer": "^1.0@dev",
"symfony/filesystem": "^2.3 || ^3 || ^4", "symfony/filesystem": "^2.3 || ^3 || ^4 || ^5",
"symfony/phpunit-bridge": "^4.0" "symfony/phpunit-bridge": "^4.0 || ^5.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -2057,28 +2067,30 @@
"keywords": [ "keywords": [
"parameters management" "parameters management"
], ],
"time": "2018-02-13 18:05:56" "time": "2020-03-17 21:10:00"
}, },
{ {
"name": "jasig/phpcas", "name": "jasig/phpcas",
"version": "1.3.8", "version": "1.3.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/apereo/phpCAS.git", "url": "https://github.com/apereo/phpCAS.git",
"reference": "40c0769ce05a30c8172b36ceab11124375c8366e" "reference": "7325865c4cfb5005ed4e4c5cf01823be1726a2a0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/apereo/phpCAS/zipball/40c0769ce05a30c8172b36ceab11124375c8366e", "url": "https://api.github.com/repos/apereo/phpCAS/zipball/7325865c4cfb5005ed4e4c5cf01823be1726a2a0",
"reference": "40c0769ce05a30c8172b36ceab11124375c8366e", "reference": "7325865c4cfb5005ed4e4c5cf01823be1726a2a0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-curl": "*", "ext-curl": "*",
"php": ">=5.4.0" "php": ">=5.4.0",
"psr/log": "^1.0.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "~3.7.10" "monolog/monolog": "^1.0.0",
"phpunit/phpunit": ">=4.8.35 <8"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -2112,7 +2124,7 @@
"cas", "cas",
"jasig" "jasig"
], ],
"time": "2019-08-18 20:01:55" "time": "2021-01-31 21:13:59"
}, },
{ {
"name": "jdorn/sql-formatter", "name": "jdorn/sql-formatter",
@ -2455,16 +2467,16 @@
}, },
{ {
"name": "monolog/monolog", "name": "monolog/monolog",
"version": "1.25.2", "version": "1.26.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Seldaek/monolog.git", "url": "https://github.com/Seldaek/monolog.git",
"reference": "d5e2fb341cb44f7e2ab639d12a1e5901091ec287" "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/d5e2fb341cb44f7e2ab639d12a1e5901091ec287", "url": "https://api.github.com/repos/Seldaek/monolog/zipball/2209ddd84e7ef1256b7af205d0717fb62cfc9c33",
"reference": "d5e2fb341cb44f7e2ab639d12a1e5901091ec287", "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2478,11 +2490,10 @@
"aws/aws-sdk-php": "^2.4.9 || ^3.0", "aws/aws-sdk-php": "^2.4.9 || ^3.0",
"doctrine/couchdb": "~1.0@dev", "doctrine/couchdb": "~1.0@dev",
"graylog2/gelf-php": "~1.0", "graylog2/gelf-php": "~1.0",
"jakub-onderka/php-parallel-lint": "0.9",
"php-amqplib/php-amqplib": "~2.4", "php-amqplib/php-amqplib": "~2.4",
"php-console/php-console": "^3.1.3", "php-console/php-console": "^3.1.3",
"phpstan/phpstan": "^0.12.59",
"phpunit/phpunit": "~4.5", "phpunit/phpunit": "~4.5",
"phpunit/phpunit-mock-objects": "2.3.0",
"ruflin/elastica": ">=0.90 <3.0", "ruflin/elastica": ">=0.90 <3.0",
"sentry/sentry": "^0.13", "sentry/sentry": "^0.13",
"swiftmailer/swiftmailer": "^5.3|^6.0" "swiftmailer/swiftmailer": "^5.3|^6.0"
@ -2501,11 +2512,6 @@
"sentry/sentry": "Allow sending log messages to a Sentry server" "sentry/sentry": "Allow sending log messages to a Sentry server"
}, },
"type": "library", "type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Monolog\\": "src/Monolog" "Monolog\\": "src/Monolog"
@ -2529,7 +2535,7 @@
"logging", "logging",
"psr-3" "psr-3"
], ],
"time": "2019-11-13 10:00:05" "time": "2020-12-14 12:56:38"
}, },
{ {
"name": "ocramius/proxy-manager", "name": "ocramius/proxy-manager",
@ -2596,17 +2602,17 @@
}, },
{ {
"name": "oneup/uploader-bundle", "name": "oneup/uploader-bundle",
"version": "1.9.2", "version": "1.9.4",
"target-dir": "Oneup/UploaderBundle", "target-dir": "Oneup/UploaderBundle",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/1up-lab/OneupUploaderBundle.git", "url": "https://github.com/1up-lab/OneupUploaderBundle.git",
"reference": "a32bc98019abfd51531d08cc79be19f849d87b84" "reference": "8a6dc57c35e12fbc341e52e401a1d286475ec445"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/1up-lab/OneupUploaderBundle/zipball/a32bc98019abfd51531d08cc79be19f849d87b84", "url": "https://api.github.com/repos/1up-lab/OneupUploaderBundle/zipball/8a6dc57c35e12fbc341e52e401a1d286475ec445",
"reference": "a32bc98019abfd51531d08cc79be19f849d87b84", "reference": "8a6dc57c35e12fbc341e52e401a1d286475ec445",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2667,20 +2673,20 @@
"plupload", "plupload",
"upload" "upload"
], ],
"time": "2017-12-18 12:41:59" "time": "2020-02-04 12:08:35"
}, },
{ {
"name": "paragonie/random_compat", "name": "paragonie/random_compat",
"version": "v2.0.18", "version": "v2.0.19",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/paragonie/random_compat.git", "url": "https://github.com/paragonie/random_compat.git",
"reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db" "reference": "446fc9faa5c2a9ddf65eb7121c0af7e857295241"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", "url": "https://api.github.com/repos/paragonie/random_compat/zipball/446fc9faa5c2a9ddf65eb7121c0af7e857295241",
"reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", "reference": "446fc9faa5c2a9ddf65eb7121c0af7e857295241",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2716,7 +2722,7 @@
"pseudorandom", "pseudorandom",
"random" "random"
], ],
"time": "2019-01-03 20:59:08" "time": "2020-10-15 10:06:57"
}, },
{ {
"name": "psr/cache", "name": "psr/cache",
@ -2914,16 +2920,16 @@
}, },
{ {
"name": "psr/log", "name": "psr/log",
"version": "1.1.2", "version": "1.1.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/log.git", "url": "https://github.com/php-fig/log.git",
"reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
"reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2957,7 +2963,7 @@
"psr", "psr",
"psr-3" "psr-3"
], ],
"time": "2019-11-01 11:05:21" "time": "2020-03-23 09:12:05"
}, },
{ {
"name": "psr/simple-cache", "name": "psr/simple-cache",
@ -3049,44 +3055,46 @@
}, },
{ {
"name": "ramsey/uuid", "name": "ramsey/uuid",
"version": "3.8.0", "version": "3.9.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/ramsey/uuid.git", "url": "https://github.com/ramsey/uuid.git",
"reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3" "reference": "7e1633a6964b48589b142d60542f9ed31bd37a92"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/ramsey/uuid/zipball/d09ea80159c1929d75b3f9c60504d613aeb4a1e3", "url": "https://api.github.com/repos/ramsey/uuid/zipball/7e1633a6964b48589b142d60542f9ed31bd37a92",
"reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3", "reference": "7e1633a6964b48589b142d60542f9ed31bd37a92",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"paragonie/random_compat": "^1.0|^2.0|9.99.99", "ext-json": "*",
"php": "^5.4 || ^7.0", "paragonie/random_compat": "^1 | ^2 | 9.99.99",
"php": "^5.4 | ^7 | ^8",
"symfony/polyfill-ctype": "^1.8" "symfony/polyfill-ctype": "^1.8"
}, },
"replace": { "replace": {
"rhumsaa/uuid": "self.version" "rhumsaa/uuid": "self.version"
}, },
"require-dev": { "require-dev": {
"codeception/aspect-mock": "^1.0 | ~2.0.0", "codeception/aspect-mock": "^1 | ^2",
"doctrine/annotations": "~1.2.0", "doctrine/annotations": "^1.2",
"goaop/framework": "1.0.0-alpha.2 | ^1.0 | ~2.1.0", "goaop/framework": "1.0.0-alpha.2 | ^1 | ^2.1",
"ircmaxell/random-lib": "^1.1", "jakub-onderka/php-parallel-lint": "^1",
"jakub-onderka/php-parallel-lint": "^0.9.0", "mockery/mockery": "^0.9.11 | ^1",
"mockery/mockery": "^0.9.9",
"moontoast/math": "^1.1", "moontoast/math": "^1.1",
"php-mock/php-mock-phpunit": "^0.3|^1.1", "paragonie/random-lib": "^2",
"phpunit/phpunit": "^4.7|^5.0|^6.5", "php-mock/php-mock-phpunit": "^0.3 | ^1.1",
"squizlabs/php_codesniffer": "^2.3" "phpunit/phpunit": "^4.8 | ^5.4 | ^6.5",
"squizlabs/php_codesniffer": "^3.5"
}, },
"suggest": { "suggest": {
"ext-ctype": "Provides support for PHP Ctype functions", "ext-ctype": "Provides support for PHP Ctype functions",
"ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator", "ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator",
"ext-openssl": "Provides the OpenSSL extension for use with the OpenSslGenerator",
"ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator", "ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator",
"ircmaxell/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
"moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).", "moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).",
"paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
"ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid", "ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid",
"ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
}, },
@ -3099,13 +3107,21 @@
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Ramsey\\Uuid\\": "src/" "Ramsey\\Uuid\\": "src/"
} },
"files": [
"src/functions.php"
]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "MIT"
], ],
"authors": [ "authors": [
{
"name": "Ben Ramsey",
"email": "ben@benramsey.com",
"homepage": "https://benramsey.com"
},
{ {
"name": "Marijn Huizendveld", "name": "Marijn Huizendveld",
"email": "marijn.huizendveld@gmail.com" "email": "marijn.huizendveld@gmail.com"
@ -3113,11 +3129,6 @@
{ {
"name": "Thibaud Fabre", "name": "Thibaud Fabre",
"email": "thibaud@aztech.io" "email": "thibaud@aztech.io"
},
{
"name": "Ben Ramsey",
"email": "ben@benramsey.com",
"homepage": "https://benramsey.com"
} }
], ],
"description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).", "description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).",
@ -3127,20 +3138,20 @@
"identifier", "identifier",
"uuid" "uuid"
], ],
"time": "2018-07-19 23:38:55" "time": "2020-02-21 04:36:14"
}, },
{ {
"name": "ratchet/rfc6455", "name": "ratchet/rfc6455",
"version": "v0.2.5", "version": "v0.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/ratchetphp/RFC6455.git", "url": "https://github.com/ratchetphp/RFC6455.git",
"reference": "c62f7cd95ffbb6e94fd657be694fc7372ecd6e62" "reference": "c8651c7938651c2d55f5d8c2422ac5e57a183341"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/ratchetphp/RFC6455/zipball/c62f7cd95ffbb6e94fd657be694fc7372ecd6e62", "url": "https://api.github.com/repos/ratchetphp/RFC6455/zipball/c8651c7938651c2d55f5d8c2422ac5e57a183341",
"reference": "c62f7cd95ffbb6e94fd657be694fc7372ecd6e62", "reference": "c8651c7938651c2d55f5d8c2422ac5e57a183341",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3148,9 +3159,8 @@
"php": ">=5.4.2" "php": ">=5.4.2"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "4.8.*", "phpunit/phpunit": "5.7.*",
"react/http": "^0.4.1", "react/socket": "^1.3"
"react/socket-client": "^0.4.3"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3167,6 +3177,10 @@
"name": "Chris Boden", "name": "Chris Boden",
"email": "cboden@gmail.com", "email": "cboden@gmail.com",
"role": "Developer" "role": "Developer"
},
{
"name": "Matt Bonneau",
"role": "Developer"
} }
], ],
"description": "RFC6455 WebSocket protocol handler", "description": "RFC6455 WebSocket protocol handler",
@ -3176,28 +3190,28 @@
"rfc6455", "rfc6455",
"websocket" "websocket"
], ],
"time": "2019-03-10 17:10:42" "time": "2020-05-15 18:31:24"
}, },
{ {
"name": "react/cache", "name": "react/cache",
"version": "v1.0.0", "version": "v1.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/cache.git", "url": "https://github.com/reactphp/cache.git",
"reference": "aa10d63a1b40a36a486bdf527f28bac607ee6466" "reference": "4bf736a2cccec7298bdf745db77585966fc2ca7e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/cache/zipball/aa10d63a1b40a36a486bdf527f28bac607ee6466", "url": "https://api.github.com/repos/reactphp/cache/zipball/4bf736a2cccec7298bdf745db77585966fc2ca7e",
"reference": "aa10d63a1b40a36a486bdf527f28bac607ee6466", "reference": "4bf736a2cccec7298bdf745db77585966fc2ca7e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.0", "php": ">=5.3.0",
"react/promise": "~2.0|~1.1" "react/promise": "^3.0 || ^2.0 || ^1.1"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35" "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3209,6 +3223,28 @@
"license": [ "license": [
"MIT" "MIT"
], ],
"authors": [
{
"name": "Christian Lück",
"email": "christian@clue.engineering",
"homepage": "https://clue.engineering/"
},
{
"name": "Cees-Jan Kiewiet",
"email": "reactphp@ceesjankiewiet.nl",
"homepage": "https://wyrihaximus.net/"
},
{
"name": "Jan Sorgalla",
"email": "jsorgalla@gmail.com",
"homepage": "https://sorgalla.com/"
},
{
"name": "Chris Boden",
"email": "cboden@gmail.com",
"homepage": "https://cboden.dev/"
}
],
"description": "Async, Promise-based cache interface for ReactPHP", "description": "Async, Promise-based cache interface for ReactPHP",
"keywords": [ "keywords": [
"cache", "cache",
@ -3216,32 +3252,32 @@
"promise", "promise",
"reactphp" "reactphp"
], ],
"time": "2019-07-11 13:45:28" "time": "2021-02-02 06:47:52"
}, },
{ {
"name": "react/dns", "name": "react/dns",
"version": "v1.2.0", "version": "v1.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/dns.git", "url": "https://github.com/reactphp/dns.git",
"reference": "a214d90c2884dac18d0cac6176202f247b66d762" "reference": "665260757171e2ab17485b44e7ffffa7acb6ca1f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/dns/zipball/a214d90c2884dac18d0cac6176202f247b66d762", "url": "https://api.github.com/repos/reactphp/dns/zipball/665260757171e2ab17485b44e7ffffa7acb6ca1f",
"reference": "a214d90c2884dac18d0cac6176202f247b66d762", "reference": "665260757171e2ab17485b44e7ffffa7acb6ca1f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.0", "php": ">=5.3.0",
"react/cache": "^1.0 || ^0.6 || ^0.5", "react/cache": "^1.0 || ^0.6 || ^0.5",
"react/event-loop": "^1.0 || ^0.5", "react/event-loop": "^1.0 || ^0.5",
"react/promise": "^2.7 || ^1.2.1", "react/promise": "^3.0 || ^2.7 || ^1.2.1",
"react/promise-timer": "^1.2" "react/promise-timer": "^1.2"
}, },
"require-dev": { "require-dev": {
"clue/block-react": "^1.2", "clue/block-react": "^1.2",
"phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35" "phpunit/phpunit": "^9.3 || ^4.8.35"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3253,6 +3289,28 @@
"license": [ "license": [
"MIT" "MIT"
], ],
"authors": [
{
"name": "Christian Lück",
"email": "christian@clue.engineering",
"homepage": "https://clue.engineering/"
},
{
"name": "Cees-Jan Kiewiet",
"email": "reactphp@ceesjankiewiet.nl",
"homepage": "https://wyrihaximus.net/"
},
{
"name": "Jan Sorgalla",
"email": "jsorgalla@gmail.com",
"homepage": "https://sorgalla.com/"
},
{
"name": "Chris Boden",
"email": "cboden@gmail.com",
"homepage": "https://cboden.dev/"
}
],
"description": "Async DNS resolver for ReactPHP", "description": "Async DNS resolver for ReactPHP",
"keywords": [ "keywords": [
"async", "async",
@ -3260,7 +3318,7 @@
"dns-resolver", "dns-resolver",
"reactphp" "reactphp"
], ],
"time": "2019-08-15 09:06:31" "time": "2020-09-18 12:12:55"
}, },
{ {
"name": "react/event-loop", "name": "react/event-loop",
@ -3305,23 +3363,23 @@
}, },
{ {
"name": "react/promise", "name": "react/promise",
"version": "v2.7.1", "version": "v2.8.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/promise.git", "url": "https://github.com/reactphp/promise.git",
"reference": "31ffa96f8d2ed0341a57848cbb84d88b89dd664d" "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/promise/zipball/31ffa96f8d2ed0341a57848cbb84d88b89dd664d", "url": "https://api.github.com/repos/reactphp/promise/zipball/f3cff96a19736714524ca0dd1d4130de73dbbbc4",
"reference": "31ffa96f8d2ed0341a57848cbb84d88b89dd664d", "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.4.0" "php": ">=5.4.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "~4.8" "phpunit/phpunit": "^7.0 || ^6.5 || ^5.7 || ^4.8.36"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3347,29 +3405,29 @@
"promise", "promise",
"promises" "promises"
], ],
"time": "2019-01-07 21:25:54" "time": "2020-05-12 15:16:56"
}, },
{ {
"name": "react/promise-timer", "name": "react/promise-timer",
"version": "v1.5.1", "version": "v1.6.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/promise-timer.git", "url": "https://github.com/reactphp/promise-timer.git",
"reference": "35fb910604fd86b00023fc5cda477c8074ad0abc" "reference": "daee9baf6ef30c43ea4c86399f828bb5f558f6e6"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/promise-timer/zipball/35fb910604fd86b00023fc5cda477c8074ad0abc", "url": "https://api.github.com/repos/reactphp/promise-timer/zipball/daee9baf6ef30c43ea4c86399f828bb5f558f6e6",
"reference": "35fb910604fd86b00023fc5cda477c8074ad0abc", "reference": "daee9baf6ef30c43ea4c86399f828bb5f558f6e6",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3", "php": ">=5.3",
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5", "react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5",
"react/promise": "^2.7.0 || ^1.2.1" "react/promise": "^3.0 || ^2.7.0 || ^1.2.1"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35" "phpunit/phpunit": "^9.0 || ^5.7 || ^4.8.35"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3400,34 +3458,35 @@
"timeout", "timeout",
"timer" "timer"
], ],
"time": "2019-03-27 18:10:32" "time": "2020-07-10 12:18:06"
}, },
{ {
"name": "react/socket", "name": "react/socket",
"version": "v1.3.0", "version": "v1.6.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/socket.git", "url": "https://github.com/reactphp/socket.git",
"reference": "10f0629ec83ea0fa22597f348623f554227e3ca0" "reference": "e2b96b23a13ca9b41ab343268dbce3f8ef4d524a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/socket/zipball/10f0629ec83ea0fa22597f348623f554227e3ca0", "url": "https://api.github.com/repos/reactphp/socket/zipball/e2b96b23a13ca9b41ab343268dbce3f8ef4d524a",
"reference": "10f0629ec83ea0fa22597f348623f554227e3ca0", "reference": "e2b96b23a13ca9b41ab343268dbce3f8ef4d524a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"evenement/evenement": "^3.0 || ^2.0 || ^1.0", "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
"php": ">=5.3.0", "php": ">=5.3.0",
"react/dns": "^1.0 || ^0.4.13", "react/dns": "^1.1",
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5", "react/event-loop": "^1.0 || ^0.5",
"react/promise": "^2.6.0 || ^1.2.1", "react/promise": "^2.6.0 || ^1.2.1",
"react/promise-timer": "^1.4.0", "react/promise-timer": "^1.4.0",
"react/stream": "^1.1" "react/stream": "^1.1"
}, },
"require-dev": { "require-dev": {
"clue/block-react": "^1.2", "clue/block-react": "^1.2",
"phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35" "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35",
"react/promise-stream": "^1.2"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3439,6 +3498,28 @@
"license": [ "license": [
"MIT" "MIT"
], ],
"authors": [
{
"name": "Christian Lück",
"email": "christian@clue.engineering",
"homepage": "https://clue.engineering/"
},
{
"name": "Cees-Jan Kiewiet",
"email": "reactphp@ceesjankiewiet.nl",
"homepage": "https://wyrihaximus.net/"
},
{
"name": "Jan Sorgalla",
"email": "jsorgalla@gmail.com",
"homepage": "https://sorgalla.com/"
},
{
"name": "Chris Boden",
"email": "cboden@gmail.com",
"homepage": "https://cboden.dev/"
}
],
"description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP", "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP",
"keywords": [ "keywords": [
"Connection", "Connection",
@ -3447,20 +3528,20 @@
"reactphp", "reactphp",
"stream" "stream"
], ],
"time": "2019-07-10 10:11:14" "time": "2020-08-28 12:49:05"
}, },
{ {
"name": "react/stream", "name": "react/stream",
"version": "v1.1.0", "version": "v1.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/stream.git", "url": "https://github.com/reactphp/stream.git",
"reference": "50426855f7a77ddf43b9266c22320df5bf6c6ce6" "reference": "7c02b510ee3f582c810aeccd3a197b9c2f52ff1a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/stream/zipball/50426855f7a77ddf43b9266c22320df5bf6c6ce6", "url": "https://api.github.com/repos/reactphp/stream/zipball/7c02b510ee3f582c810aeccd3a197b9c2f52ff1a",
"reference": "50426855f7a77ddf43b9266c22320df5bf6c6ce6", "reference": "7c02b510ee3f582c810aeccd3a197b9c2f52ff1a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3470,7 +3551,7 @@
}, },
"require-dev": { "require-dev": {
"clue/stream-filter": "~1.2", "clue/stream-filter": "~1.2",
"phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35" "phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3493,20 +3574,20 @@
"stream", "stream",
"writable" "writable"
], ],
"time": "2019-01-01 16:15:09" "time": "2020-05-04 10:17:57"
}, },
{ {
"name": "robrichards/xmlseclibs", "name": "robrichards/xmlseclibs",
"version": "3.0.4", "version": "3.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/robrichards/xmlseclibs.git", "url": "https://github.com/robrichards/xmlseclibs.git",
"reference": "0a53d3c3aa87564910cae4ed01416441d3ae0db5" "reference": "f8f19e58f26cdb42c54b214ff8a820760292f8df"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/0a53d3c3aa87564910cae4ed01416441d3ae0db5", "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/f8f19e58f26cdb42c54b214ff8a820760292f8df",
"reference": "0a53d3c3aa87564910cae4ed01416441d3ae0db5", "reference": "f8f19e58f26cdb42c54b214ff8a820760292f8df",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3531,7 +3612,7 @@
"xml", "xml",
"xmldsig" "xmldsig"
], ],
"time": "2019-11-05 11:44:22" "time": "2020-09-05 13:00:25"
}, },
{ {
"name": "sensio/distribution-bundle", "name": "sensio/distribution-bundle",
@ -3828,16 +3909,16 @@
}, },
{ {
"name": "symfony/monolog-bundle", "name": "symfony/monolog-bundle",
"version": "v3.5.0", "version": "v3.6.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/monolog-bundle.git", "url": "https://github.com/symfony/monolog-bundle.git",
"reference": "dd80460fcfe1fa2050a7103ad818e9d0686ce6fd" "reference": "e495f5c7e4e672ffef4357d4a4d85f010802f940"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/dd80460fcfe1fa2050a7103ad818e9d0686ce6fd", "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/e495f5c7e4e672ffef4357d4a4d85f010802f940",
"reference": "dd80460fcfe1fa2050a7103ad818e9d0686ce6fd", "reference": "e495f5c7e4e672ffef4357d4a4d85f010802f940",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3850,7 +3931,7 @@
}, },
"require-dev": { "require-dev": {
"symfony/console": "~3.4 || ~4.0 || ^5.0", "symfony/console": "~3.4 || ~4.0 || ^5.0",
"symfony/phpunit-bridge": "^3.4.19 || ^4.0 || ^5.0", "symfony/phpunit-bridge": "^4.4 || ^5.0",
"symfony/yaml": "~3.4 || ~4.0 || ^5.0" "symfony/yaml": "~3.4 || ~4.0 || ^5.0"
}, },
"type": "symfony-bundle", "type": "symfony-bundle",
@ -3887,27 +3968,26 @@
"log", "log",
"logging" "logging"
], ],
"time": "2019-11-13 13:11:14" "time": "2020-10-06 15:12:11"
}, },
{ {
"name": "symfony/orm-pack", "name": "symfony/orm-pack",
"version": "v1.0.7", "version": "v1.0.8",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/orm-pack.git", "url": "https://github.com/symfony/orm-pack.git",
"reference": "c57f5e05232ca40626eb9fa52a32bc8565e9231c" "reference": "c9bcc08102061f406dc908192c0f33524a675666"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/orm-pack/zipball/c57f5e05232ca40626eb9fa52a32bc8565e9231c", "url": "https://api.github.com/repos/symfony/orm-pack/zipball/c9bcc08102061f406dc908192c0f33524a675666",
"reference": "c57f5e05232ca40626eb9fa52a32bc8565e9231c", "reference": "c9bcc08102061f406dc908192c0f33524a675666",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"doctrine/doctrine-bundle": "^1.6.10|^2.0", "doctrine/doctrine-bundle": "*",
"doctrine/doctrine-migrations-bundle": "^1.3|^2.0", "doctrine/doctrine-migrations-bundle": "*",
"doctrine/orm": "^2.5.11", "doctrine/orm": "*"
"php": "^7.0"
}, },
"type": "symfony-pack", "type": "symfony-pack",
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
@ -3915,20 +3995,20 @@
"MIT" "MIT"
], ],
"description": "A pack for the Doctrine ORM", "description": "A pack for the Doctrine ORM",
"time": "2019-10-18 05:41:09" "time": "2020-02-10 18:03:48"
}, },
{ {
"name": "symfony/polyfill-apcu", "name": "symfony/polyfill-apcu",
"version": "v1.12.0", "version": "v1.19.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-apcu.git", "url": "https://github.com/symfony/polyfill-apcu.git",
"reference": "71ce80635d5dcd67772b4dda00b86068595f64d5" "reference": "b44b51e7814c23bfbd793a16ead5d7ce43ed23c5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/71ce80635d5dcd67772b4dda00b86068595f64d5", "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/b44b51e7814c23bfbd793a16ead5d7ce43ed23c5",
"reference": "71ce80635d5dcd67772b4dda00b86068595f64d5", "reference": "b44b51e7814c23bfbd793a16ead5d7ce43ed23c5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3937,7 +4017,11 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -3971,20 +4055,20 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-08-06 08:03:45" "time": "2020-10-21 09:57:48"
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
"version": "v1.12.0", "version": "v1.19.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git", "url": "https://github.com/symfony/polyfill-ctype.git",
"reference": "550ebaac289296ce228a706d0867afc34687e3f4" "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4", "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/aed596913b70fae57be53d86faa2e9ef85a2297b",
"reference": "550ebaac289296ce228a706d0867afc34687e3f4", "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3996,7 +4080,11 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -4029,20 +4117,20 @@
"polyfill", "polyfill",
"portable" "portable"
], ],
"time": "2019-08-06 08:03:45" "time": "2020-10-23 09:01:57"
}, },
{ {
"name": "symfony/polyfill-intl-icu", "name": "symfony/polyfill-intl-icu",
"version": "v1.12.0", "version": "v1.19.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-intl-icu.git", "url": "https://github.com/symfony/polyfill-intl-icu.git",
"reference": "66810b9d6eb4af54d543867909d65ab9af654d7e" "reference": "f740dd60a5b5f1511229e107f7e59f404b102084"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/66810b9d6eb4af54d543867909d65ab9af654d7e", "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/f740dd60a5b5f1511229e107f7e59f404b102084",
"reference": "66810b9d6eb4af54d543867909d65ab9af654d7e", "reference": "f740dd60a5b5f1511229e107f7e59f404b102084",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4055,7 +4143,11 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -4087,20 +4179,158 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-08-06 08:03:45" "time": "2020-10-23 09:01:57"
}, },
{ {
"name": "symfony/polyfill-mbstring", "name": "symfony/polyfill-intl-idn",
"version": "v1.12.0", "version": "v1.19.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git", "url": "https://github.com/symfony/polyfill-intl-idn.git",
"reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17" "reference": "4ad5115c0f5d5172a9fe8147675ec6de266d8826"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b42a2f66e8f1b15ccf25652c3424265923eb4f17", "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/4ad5115c0f5d5172a9fe8147675ec6de266d8826",
"reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17", "reference": "4ad5115c0f5d5172a9fe8147675ec6de266d8826",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"symfony/polyfill-intl-normalizer": "^1.10",
"symfony/polyfill-php70": "^1.10",
"symfony/polyfill-php72": "^1.10"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Intl\\Idn\\": ""
},
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Laurent Bassin",
"email": "laurent@bassin.info"
},
{
"name": "Trevor Rowbotham",
"email": "trevor.rowbotham@pm.me"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"idn",
"intl",
"polyfill",
"portable",
"shim"
],
"time": "2020-10-21 09:57:48"
},
{
"name": "symfony/polyfill-intl-normalizer",
"version": "v1.19.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
"reference": "8db0ae7936b42feb370840cf24de1a144fb0ef27"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8db0ae7936b42feb370840cf24de1a144fb0ef27",
"reference": "8db0ae7936b42feb370840cf24de1a144fb0ef27",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Intl\\Normalizer\\": ""
},
"files": [
"bootstrap.php"
],
"classmap": [
"Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill for intl's Normalizer class and related functions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"intl",
"normalizer",
"polyfill",
"portable",
"shim"
],
"time": "2020-10-23 09:01:57"
},
{
"name": "symfony/polyfill-mbstring",
"version": "v1.19.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b5f7b932ee6fa802fc792eabd77c4c88084517ce",
"reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4112,7 +4342,11 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -4146,20 +4380,20 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-08-06 08:03:45" "time": "2020-10-23 09:01:57"
}, },
{ {
"name": "symfony/polyfill-php56", "name": "symfony/polyfill-php56",
"version": "v1.12.0", "version": "v1.19.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php56.git", "url": "https://github.com/symfony/polyfill-php56.git",
"reference": "0e3b212e96a51338639d8ce175c046d7729c3403" "reference": "ea19621731cbd973a6702cfedef3419768bf3372"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/0e3b212e96a51338639d8ce175c046d7729c3403", "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/ea19621731cbd973a6702cfedef3419768bf3372",
"reference": "0e3b212e96a51338639d8ce175c046d7729c3403", "reference": "ea19621731cbd973a6702cfedef3419768bf3372",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4169,7 +4403,11 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -4202,20 +4440,20 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-08-06 08:03:45" "time": "2020-10-23 09:01:57"
}, },
{ {
"name": "symfony/polyfill-php70", "name": "symfony/polyfill-php70",
"version": "v1.12.0", "version": "v1.19.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php70.git", "url": "https://github.com/symfony/polyfill-php70.git",
"reference": "54b4c428a0054e254223797d2713c31e08610831" "reference": "3fe414077251a81a1b15b1c709faf5c2fbae3d4e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/54b4c428a0054e254223797d2713c31e08610831", "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/3fe414077251a81a1b15b1c709faf5c2fbae3d4e",
"reference": "54b4c428a0054e254223797d2713c31e08610831", "reference": "3fe414077251a81a1b15b1c709faf5c2fbae3d4e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4225,7 +4463,11 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -4261,20 +4503,20 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-08-06 08:03:45" "time": "2020-10-23 09:01:57"
}, },
{ {
"name": "symfony/polyfill-util", "name": "symfony/polyfill-php72",
"version": "v1.12.0", "version": "v1.19.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-util.git", "url": "https://github.com/symfony/polyfill-php72.git",
"reference": "4317de1386717b4c22caed7725350a8887ab205c" "reference": "beecef6b463b06954638f02378f52496cb84bacc"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-util/zipball/4317de1386717b4c22caed7725350a8887ab205c", "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/beecef6b463b06954638f02378f52496cb84bacc",
"reference": "4317de1386717b4c22caed7725350a8887ab205c", "reference": "beecef6b463b06954638f02378f52496cb84bacc",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4283,7 +4525,70 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Php72\\": ""
},
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"time": "2020-10-23 09:01:57"
},
{
"name": "symfony/polyfill-util",
"version": "v1.19.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-util.git",
"reference": "8df0c3e6a4b85df9a5c6f3f2f46fba5c5c47058a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-util/zipball/8df0c3e6a4b85df9a5c6f3f2f46fba5c5c47058a",
"reference": "8df0c3e6a4b85df9a5c6f3f2f46fba5c5c47058a",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -4313,7 +4618,7 @@
"polyfill", "polyfill",
"shim" "shim"
], ],
"time": "2019-08-06 08:03:45" "time": "2020-10-21 09:57:48"
}, },
{ {
"name": "symfony/swiftmailer-bundle", "name": "symfony/swiftmailer-bundle",
@ -4376,16 +4681,16 @@
}, },
{ {
"name": "symfony/symfony", "name": "symfony/symfony",
"version": "v3.4.35", "version": "v3.4.47",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/symfony.git", "url": "https://github.com/symfony/symfony.git",
"reference": "2adc85d49cbe14e346068fa7e9c2e1f08ab31de6" "reference": "83093d5448a7b90fd4cbcce38580ae53898f506f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/symfony/zipball/2adc85d49cbe14e346068fa7e9c2e1f08ab31de6", "url": "https://api.github.com/repos/symfony/symfony/zipball/83093d5448a7b90fd4cbcce38580ae53898f506f",
"reference": "2adc85d49cbe14e346068fa7e9c2e1f08ab31de6", "reference": "83093d5448a7b90fd4cbcce38580ae53898f506f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4407,6 +4712,7 @@
"twig/twig": "^1.41|^2.10" "twig/twig": "^1.41|^2.10"
}, },
"conflict": { "conflict": {
"monolog/monolog": ">=2",
"phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2", "phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2",
"phpdocumentor/type-resolver": "<0.3.0", "phpdocumentor/type-resolver": "<0.3.0",
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0"
@ -4474,7 +4780,7 @@
"cache/integration-tests": "dev-master", "cache/integration-tests": "dev-master",
"doctrine/annotations": "~1.0", "doctrine/annotations": "~1.0",
"doctrine/cache": "~1.6", "doctrine/cache": "~1.6",
"doctrine/data-fixtures": "1.0.*", "doctrine/data-fixtures": "^1.1",
"doctrine/dbal": "~2.4", "doctrine/dbal": "~2.4",
"doctrine/doctrine-bundle": "~1.4", "doctrine/doctrine-bundle": "~1.4",
"doctrine/orm": "~2.4,>=2.4.5", "doctrine/orm": "~2.4,>=2.4.5",
@ -4483,14 +4789,12 @@
"ocramius/proxy-manager": "~0.4|~1.0|~2.0", "ocramius/proxy-manager": "~0.4|~1.0|~2.0",
"phpdocumentor/reflection-docblock": "^3.0|^4.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0",
"predis/predis": "~1.0", "predis/predis": "~1.0",
"symfony/phpunit-bridge": "^3.4.31|^4.3.4|~5.0", "symfony/phpunit-bridge": "^5.2",
"symfony/security-acl": "~2.8|~3.0" "symfony/security-acl": "~2.8|~3.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-version": "3.4"
"dev-master": "3.4-dev"
}
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
@ -4527,7 +4831,7 @@
"keywords": [ "keywords": [
"framework" "framework"
], ],
"time": "2019-11-13 08:45:05" "time": "2020-11-27 08:43:16"
}, },
{ {
"name": "tetranz/select2entity-bundle", "name": "tetranz/select2entity-bundle",
@ -4578,19 +4882,21 @@
}, },
{ {
"name": "thecsea/simple-caldav-client", "name": "thecsea/simple-caldav-client",
"version": "v0.1.10", "version": "v0.1.14",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thecsea/simpleCalDAV.git", "url": "https://github.com/thecsea/simpleCalDAV.git",
"reference": "dae70da0dacd0c8a1e184fbc91ecbe6f7fa5dea9" "reference": "542eda99c5a18c04b3701ebda9ce8d3eb0db7728"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thecsea/simpleCalDAV/zipball/dae70da0dacd0c8a1e184fbc91ecbe6f7fa5dea9", "url": "https://api.github.com/repos/thecsea/simpleCalDAV/zipball/542eda99c5a18c04b3701ebda9ce8d3eb0db7728",
"reference": "dae70da0dacd0c8a1e184fbc91ecbe6f7fa5dea9", "reference": "542eda99c5a18c04b3701ebda9ce8d3eb0db7728",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-curl": "*",
"ext-xml": "*",
"php": ">=5.3.0" "php": ">=5.3.0"
}, },
"type": "library", "type": "library",
@ -4617,20 +4923,20 @@
"Simple", "Simple",
"client" "client"
], ],
"time": "2019-04-25 19:55:16" "time": "2020-09-28 11:55:52"
}, },
{ {
"name": "twig/twig", "name": "twig/twig",
"version": "v2.12.2", "version": "v2.12.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/twigphp/Twig.git", "url": "https://github.com/twigphp/Twig.git",
"reference": "d761fd1f1c6b867ae09a7d8119a6d95d06dc44ed" "reference": "18772e0190734944277ee97a02a9a6c6555fcd94"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/d761fd1f1c6b867ae09a7d8119a6d95d06dc44ed", "url": "https://api.github.com/repos/twigphp/Twig/zipball/18772e0190734944277ee97a02a9a6c6555fcd94",
"reference": "d761fd1f1c6b867ae09a7d8119a6d95d06dc44ed", "reference": "18772e0190734944277ee97a02a9a6c6555fcd94",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4640,8 +4946,7 @@
}, },
"require-dev": { "require-dev": {
"psr/container": "^1.0", "psr/container": "^1.0",
"symfony/debug": "^3.4|^4.2", "symfony/phpunit-bridge": "^4.4|^5.0"
"symfony/phpunit-bridge": "^4.4@dev|^5.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -4670,7 +4975,6 @@
}, },
{ {
"name": "Twig Team", "name": "Twig Team",
"homepage": "https://twig.symfony.com/contributors",
"role": "Contributors" "role": "Contributors"
}, },
{ {
@ -4684,7 +4988,7 @@
"keywords": [ "keywords": [
"templating" "templating"
], ],
"time": "2019-11-11 16:52:09" "time": "2020-02-11 15:31:23"
}, },
{ {
"name": "zendframework/zend-code", "name": "zendframework/zend-code",
@ -4796,16 +5100,16 @@
"packages-dev": [ "packages-dev": [
{ {
"name": "nikic/php-parser", "name": "nikic/php-parser",
"version": "v4.3.0", "version": "v4.10.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nikic/PHP-Parser.git", "url": "https://github.com/nikic/PHP-Parser.git",
"reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc" "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9a9981c347c5c49d6dfe5cf826bb882b824080dc", "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e",
"reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc", "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4813,8 +5117,8 @@
"php": ">=7.0" "php": ">=7.0"
}, },
"require-dev": { "require-dev": {
"ircmaxell/php-yacc": "0.0.5", "ircmaxell/php-yacc": "^0.0.7",
"phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
}, },
"bin": [ "bin": [
"bin/php-parse" "bin/php-parse"
@ -4822,7 +5126,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "4.3-dev" "dev-master": "4.9-dev"
} }
}, },
"autoload": { "autoload": {
@ -4844,7 +5148,7 @@
"parser", "parser",
"php" "php"
], ],
"time": "2019-11-08 13:50:10" "time": "2020-12-20 10:01:03"
}, },
{ {
"name": "sensio/generator-bundle", "name": "sensio/generator-bundle",
@ -4902,16 +5206,16 @@
}, },
{ {
"name": "symfony/maker-bundle", "name": "symfony/maker-bundle",
"version": "v1.14.3", "version": "v1.16.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/maker-bundle.git", "url": "https://github.com/symfony/maker-bundle.git",
"reference": "c864e7f9b8d1e1f5f60acc3beda11299f637aded" "reference": "c8b36ce2aac3635603b4ffc58fbc26717e0a7317"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/maker-bundle/zipball/c864e7f9b8d1e1f5f60acc3beda11299f637aded", "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/c8b36ce2aac3635603b4ffc58fbc26717e0a7317",
"reference": "c864e7f9b8d1e1f5f60acc3beda11299f637aded", "reference": "c8b36ce2aac3635603b4ffc58fbc26717e0a7317",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4966,27 +5270,27 @@
"scaffold", "scaffold",
"scaffolding" "scaffolding"
], ],
"time": "2019-11-07 00:56:03" "time": "2020-05-05 14:21:24"
}, },
{ {
"name": "symfony/phpunit-bridge", "name": "symfony/phpunit-bridge",
"version": "v3.4.35", "version": "v3.4.47",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/phpunit-bridge.git", "url": "https://github.com/symfony/phpunit-bridge.git",
"reference": "cbea8818e9f34e4e9d780bd22bdda21b57d4d5c7" "reference": "120273ad5d03a8deee08ca9260e2598f288f2bac"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/cbea8818e9f34e4e9d780bd22bdda21b57d4d5c7", "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/120273ad5d03a8deee08ca9260e2598f288f2bac",
"reference": "cbea8818e9f34e4e9d780bd22bdda21b57d4d5c7", "reference": "120273ad5d03a8deee08ca9260e2598f288f2bac",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3" "php": ">=5.3.3"
}, },
"conflict": { "conflict": {
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0|<6.4,>=6.0|9.1.2"
}, },
"suggest": { "suggest": {
"symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" "symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader"
@ -4996,9 +5300,6 @@
], ],
"type": "symfony-bridge", "type": "symfony-bridge",
"extra": { "extra": {
"branch-alias": {
"dev-master": "3.4-dev"
},
"thanks": { "thanks": {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"url": "https://github.com/sebastianbergmann/phpunit" "url": "https://github.com/sebastianbergmann/phpunit"
@ -5031,7 +5332,7 @@
], ],
"description": "Symfony PHPUnit Bridge", "description": "Symfony PHPUnit Bridge",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-09-30 20:33:19" "time": "2020-11-13 16:28:59"
} }
], ],
"aliases": [], "aliases": [],
@ -5042,8 +5343,5 @@
"platform": { "platform": {
"php": ">=7" "php": ">=7"
}, },
"platform-dev": [], "platform-dev": []
"platform-overrides": {
"php": "7.0.30"
}
} }

View File

@ -0,0 +1,46 @@
<?php
namespace Cadoles\CoreBundle\Command;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Finder\Finder;
use Symfony\Component\Filesystem\Filesystem;
class LocalCommand extends Command
{
private $container;
private $em;
private $output;
private $filesystem;
private $rootlog;
protected function configure()
{
$this
->setName('Core:Local')
->setDescription('Lauch Local Script')
;
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$this->container = $this->getApplication()->getKernel()->getContainer();
$this->em = $this->container->get('doctrine')->getEntityManager();
$this->output = $output;
$this->filesystem = new Filesystem();
$this->rootlog = $this->container->get('kernel')->getRootDir()."/../var/logs/";
return 1;
}
private function writelnred($string) {
$this->output->writeln('<fg=red>'.$string.'</>');
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
}
private function writeln($string) {
$this->output->writeln($string);
$this->filesystem->appendToFile($this->rootlog.'cron.log', $string."\n");
}
}

View File

@ -14,20 +14,30 @@ websocket_portinterne=$(CreoleGet ninegate_websocket_portinterne non)
www_dir="$container_path_web/var/www/html" www_dir="$container_path_web/var/www/html"
# Récuper les composer associés à la version de php installé # Récuper les composer associés à la version de php installé
version72=`php -r 'echo version_compare(phpversion(), "7.2.0", ">=");'` version74=`php -r 'echo version_compare(phpversion(), "7.4.0", ">=");'`
if [[ "$version72" == "1" ]] if [[ "$version74" == "1" ]]
then then
cp -rf /var/www/html/ninegate/scripts/php74/composer.json /var/www/html/ninegate/composer.json
cp -rf /var/www/html/ninegate/scripts/php74/composer.lock /var/www/html/ninegate/composer.lock
else
version72=`php -r 'echo version_compare(phpversion(), "7.2.0", ">=");'`
if [[ "$version72" == "1" ]]
then
cp -rf /var/www/html/ninegate/scripts/php72/composer.json /var/www/html/ninegate/composer.json cp -rf /var/www/html/ninegate/scripts/php72/composer.json /var/www/html/ninegate/composer.json
cp -rf /var/www/html/ninegate/scripts/php72/composer.lock /var/www/html/ninegate/composer.lock cp -rf /var/www/html/ninegate/scripts/php72/composer.lock /var/www/html/ninegate/composer.lock
else else
version70=`php -r 'echo version_compare(phpversion(), "7.0.0", ">=");'` version70=`php -r 'echo version_compare(phpversion(), "7.0.0", ">=");'`
if [[ "$version70" == "1" ]] if [[ "$version70" == "1" ]]
then then
cp -rf /var/www/html/ninegate/scripts/php70/composer.json /var/www/html/ninegate/composer.json cp -rf /var/www/html/ninegate/scripts/php70/composer.json /var/www/html/ninegate/composer.json
cp -rf /var/www/html/ninegate/scripts/php70/composer.lock /var/www/html/ninegate/composer.lock cp -rf /var/www/html/ninegate/scripts/php70/composer.lock /var/www/html/ninegate/composer.lock
fi fi
fi
fi fi
# Suppression des logs trop ancien
find var/logs -mindepth 1 -mtime +7 -delete
# Installation des dépendances composer # Installation des dépendances composer
echo COMPOSER = Install echo COMPOSER = Install
composer install --quiet composer install --quiet
@ -39,6 +49,11 @@ rm -f /var/www/html/ninegate/var/logs/dev.log
# Copie des polices du projet dans le rep web # Copie des polices du projet dans le rep web
cp -rf src/Cadoles/CoreBundle/Resources/public/fonts web/ cp -rf src/Cadoles/CoreBundle/Resources/public/fonts web/
# Copie de la commande local de base si elle la commande n'existe pas
if [ ! -f src/Cadoles/CoreBundle/Command/LocalCommand.php ]; then
cp -rf scripts/LocalCommand.php src/Cadoles/CoreBundle/Command/LocalCommand.php
fi
# Nettoyage du cache # Nettoyage du cache
echo echo
echo CACHE = Refresh echo CACHE = Refresh
@ -56,6 +71,9 @@ php bin/console Portal:InitData --env=prod
# Passage des scripts # Passage des scripts
php bin/console Core:Script --env=prod php bin/console Core:Script --env=prod
# Passage des scripts locaux
php bin/console Core:Local --env=prod
# Generation des assets # Generation des assets
echo ASSET = Dump echo ASSET = Dump
bin/console assetic:dump --env=prod --quiet bin/console assetic:dump --env=prod --quiet

View File

@ -1,11 +1,9 @@
#!/bin/bash #!/bin/bash
websocket_url=$(CreoleGet adresse_ip_eth0 non)
websocket_portinterne=$(CreoleGet ninegate_websocket_portinterne non)
# Server Websocket # Server Websocket
if [[ "$1" != "restartifdown" ]]; then if [[ "$1" != "restartifdown" ]]; then
echo WEBSOCKET = STOP echo WEBSOCKET = STOP
pid="$(pgrep -a -f gos:websocket | grep $websocket_portinterne)" pid="$(pgrep -a -f gos:websocket | grep 5556)"
if [ -n "${pid}" ]; then if [ -n "${pid}" ]; then
IFS=' ' read -r -a array <<< "$pid" IFS=' ' read -r -a array <<< "$pid"
kill -9 ${array[0]}; kill -9 ${array[0]};
@ -13,7 +11,7 @@ if [[ "$1" != "restartifdown" ]]; then
fi fi
# Port LISTEN ? # Port LISTEN ?
pid="$(pgrep -a -f gos:websocket | grep $websocket_portinterne)" pid="$(pgrep -a -f gos:websocket | grep 5556)"
restart="yes" restart="yes"
if [ "$1" == "restartifdown" ] && [ -n "${pid}" ] ; then if [ "$1" == "restartifdown" ] && [ -n "${pid}" ] ; then
restart="no" restart="no"
@ -22,5 +20,5 @@ fi
if [ "$restart" == "yes" ] && [ "$1" != "stop" ] ; then if [ "$restart" == "yes" ] && [ "$1" != "stop" ] ; then
echo WEBSOCKET = START echo WEBSOCKET = START
cd /var/www/html/ninegate cd /var/www/html/ninegate
bin/console gos:websocket:server --port $websocket_portinterne -a $websocket_url --no-debug -n -q --env=prod & disown systemctl restart wssninegate
fi fi

View File

@ -65,9 +65,6 @@
] ]
}, },
"config": { "config": {
"platform": {
"php": "7.0.30"
},
"sort-packages": true "sort-packages": true
}, },
"extra": { "extra": {

View File

@ -4,30 +4,30 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"hash": "e008822a96a469e24963e22d66f34c98", "hash": "437ec86e9bacb04581e0e648a8d8abbb",
"content-hash": "589f314a10ca56596cf580254885bd7c", "content-hash": "67c93030cb80b522b452ffdeaf0983ab",
"packages": [ "packages": [
{ {
"name": "cboden/ratchet", "name": "cboden/ratchet",
"version": "v0.4.1", "version": "v0.4.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/ratchetphp/Ratchet.git", "url": "https://github.com/ratchetphp/Ratchet.git",
"reference": "0d31f3a8ad4795fd48397712709e55cd07f51360" "reference": "466a0ecc83209c75b76645eb823401b5c52e5f21"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/ratchetphp/Ratchet/zipball/0d31f3a8ad4795fd48397712709e55cd07f51360", "url": "https://api.github.com/repos/ratchetphp/Ratchet/zipball/466a0ecc83209c75b76645eb823401b5c52e5f21",
"reference": "0d31f3a8ad4795fd48397712709e55cd07f51360", "reference": "466a0ecc83209c75b76645eb823401b5c52e5f21",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"guzzlehttp/psr7": "^1.0", "guzzlehttp/psr7": "^1.0",
"php": ">=5.4.2", "php": ">=5.4.2",
"ratchet/rfc6455": "^0.2", "ratchet/rfc6455": "^0.3",
"react/socket": "^1.0 || ^0.8 || ^0.7 || ^0.6 || ^0.5", "react/socket": "^1.0 || ^0.8 || ^0.7 || ^0.6 || ^0.5",
"symfony/http-foundation": "^2.6|^3.0|^4.0", "symfony/http-foundation": "^2.6|^3.0|^4.0|^5.0",
"symfony/routing": "^2.6|^3.0|^4.0" "symfony/routing": "^2.6|^3.0|^4.0|^5.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "~4.8" "phpunit/phpunit": "~4.8"
@ -47,6 +47,10 @@
"name": "Chris Boden", "name": "Chris Boden",
"email": "cboden@gmail.com", "email": "cboden@gmail.com",
"role": "Developer" "role": "Developer"
},
{
"name": "Matt Bonneau",
"role": "Developer"
} }
], ],
"description": "PHP WebSocket library", "description": "PHP WebSocket library",
@ -58,20 +62,20 @@
"sockets", "sockets",
"websocket" "websocket"
], ],
"time": "2017-12-12 00:49:31" "time": "2020-07-07 15:50:14"
}, },
{ {
"name": "composer/ca-bundle", "name": "composer/ca-bundle",
"version": "1.2.4", "version": "1.2.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/ca-bundle.git", "url": "https://github.com/composer/ca-bundle.git",
"reference": "10bb96592168a0f8e8f6dcde3532d9fa50b0b527" "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/10bb96592168a0f8e8f6dcde3532d9fa50b0b527", "url": "https://api.github.com/repos/composer/ca-bundle/zipball/78a0e288fdcebf92aa2318a8d3656168da6ac1a5",
"reference": "10bb96592168a0f8e8f6dcde3532d9fa50b0b527", "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -80,14 +84,15 @@
"php": "^5.3.2 || ^7.0 || ^8.0" "php": "^5.3.2 || ^7.0 || ^8.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8", "phpstan/phpstan": "^0.12.55",
"psr/log": "^1.0", "psr/log": "^1.0",
"symfony/process": "^2.5 || ^3.0 || ^4.0" "symfony/phpunit-bridge": "^4.2 || ^5",
"symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.x-dev" "dev-main": "1.x-dev"
} }
}, },
"autoload": { "autoload": {
@ -114,7 +119,7 @@
"ssl", "ssl",
"tls" "tls"
], ],
"time": "2019-08-30 08:44:50" "time": "2021-01-12 12:10:35"
}, },
{ {
"name": "debril/feed-io", "name": "debril/feed-io",
@ -1432,22 +1437,25 @@
}, },
{ {
"name": "fig/link-util", "name": "fig/link-util",
"version": "1.0.0", "version": "1.1.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/link-util.git", "url": "https://github.com/php-fig/link-util.git",
"reference": "1a07821801a148be4add11ab0603e4af55a72fac" "reference": "5d7b8d04ed3393b4b59968ca1e906fb7186d81e8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac", "url": "https://api.github.com/repos/php-fig/link-util/zipball/5d7b8d04ed3393b4b59968ca1e906fb7186d81e8",
"reference": "1a07821801a148be4add11ab0603e4af55a72fac", "reference": "5d7b8d04ed3393b4b59968ca1e906fb7186d81e8",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.5.0", "php": ">=5.5.0",
"psr/link": "~1.0@dev" "psr/link": "~1.0@dev"
}, },
"provide": {
"psr/link-implementation": "1.0"
},
"require-dev": { "require-dev": {
"phpunit/phpunit": "^5.1", "phpunit/phpunit": "^5.1",
"squizlabs/php_codesniffer": "^2.3.1" "squizlabs/php_codesniffer": "^2.3.1"
@ -1470,7 +1478,7 @@
"authors": [ "authors": [
{ {
"name": "PHP-FIG", "name": "PHP-FIG",
"homepage": "http://www.php-fig.org/" "homepage": "https://www.php-fig.org/"
} }
], ],
"description": "Common utility implementations for HTTP links", "description": "Common utility implementations for HTTP links",
@ -1482,7 +1490,7 @@
"psr-13", "psr-13",
"rest" "rest"
], ],
"time": "2016-10-17 18:31:11" "time": "2021-02-03 23:36:04"
}, },
{ {
"name": "gos/pnctl-event-loop-emitter", "name": "gos/pnctl-event-loop-emitter",
@ -1715,16 +1723,16 @@
}, },
{ {
"name": "gregwar/captcha", "name": "gregwar/captcha",
"version": "v1.1.7", "version": "v1.1.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Gregwar/Captcha.git", "url": "https://github.com/Gregwar/Captcha.git",
"reference": "cf953dd79748406e0292cea8c565399681e4d345" "reference": "4bb668e6b40e3205a020ca5ee4ca8cff8b8780c5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Gregwar/Captcha/zipball/cf953dd79748406e0292cea8c565399681e4d345", "url": "https://api.github.com/repos/Gregwar/Captcha/zipball/4bb668e6b40e3205a020ca5ee4ca8cff8b8780c5",
"reference": "cf953dd79748406e0292cea8c565399681e4d345", "reference": "4bb668e6b40e3205a020ca5ee4ca8cff8b8780c5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1764,27 +1772,28 @@
"captcha", "captcha",
"spam" "spam"
], ],
"time": "2018-08-17 22:57:28" "time": "2020-03-24 14:39:05"
}, },
{ {
"name": "gregwar/captcha-bundle", "name": "gregwar/captcha-bundle",
"version": "v2.0.6", "version": "v2.0.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Gregwar/CaptchaBundle.git", "url": "https://github.com/Gregwar/CaptchaBundle.git",
"reference": "c2d5468556890dd25e0b53bd345fc205562c86f7" "reference": "3ccfdf1c9324acbdfbcccea2c454075115741b3a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Gregwar/CaptchaBundle/zipball/c2d5468556890dd25e0b53bd345fc205562c86f7", "url": "https://api.github.com/repos/Gregwar/CaptchaBundle/zipball/3ccfdf1c9324acbdfbcccea2c454075115741b3a",
"reference": "c2d5468556890dd25e0b53bd345fc205562c86f7", "reference": "3ccfdf1c9324acbdfbcccea2c454075115741b3a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"gregwar/captcha": "~1.1", "gregwar/captcha": "~1.1",
"php": ">=5.3.9", "php": ">=5.3.9",
"symfony/form": "~2.8|~3.0|~4.0", "symfony/form": "~2.8|~3.0|~4.0",
"symfony/framework-bundle": "~2.8|~3.0|~4.0" "symfony/framework-bundle": "~2.8|~3.0|~4.0",
"twig/twig": "^1.40|^2.9"
}, },
"type": "captcha-bundle", "type": "captcha-bundle",
"autoload": { "autoload": {
@ -1818,27 +1827,28 @@
"spam", "spam",
"visual" "visual"
], ],
"time": "2018-11-20 10:41:34" "time": "2019-09-23 13:07:46"
}, },
{ {
"name": "guzzlehttp/guzzle", "name": "guzzlehttp/guzzle",
"version": "6.4.1", "version": "6.5.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/guzzle.git", "url": "https://github.com/guzzle/guzzle.git",
"reference": "0895c932405407fd3a7368b6910c09a24d26db11" "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/0895c932405407fd3a7368b6910c09a24d26db11", "url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e",
"reference": "0895c932405407fd3a7368b6910c09a24d26db11", "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-json": "*", "ext-json": "*",
"guzzlehttp/promises": "^1.0", "guzzlehttp/promises": "^1.0",
"guzzlehttp/psr7": "^1.6.1", "guzzlehttp/psr7": "^1.6.1",
"php": ">=5.5" "php": ">=5.5",
"symfony/polyfill-intl-idn": "^1.17.0"
}, },
"require-dev": { "require-dev": {
"ext-curl": "*", "ext-curl": "*",
@ -1851,7 +1861,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "6.3-dev" "dev-master": "6.5-dev"
} }
}, },
"autoload": { "autoload": {
@ -1884,27 +1894,27 @@
"rest", "rest",
"web service" "web service"
], ],
"time": "2019-10-23 15:58:00" "time": "2020-06-16 21:01:06"
}, },
{ {
"name": "guzzlehttp/promises", "name": "guzzlehttp/promises",
"version": "v1.3.1", "version": "1.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/promises.git", "url": "https://github.com/guzzle/promises.git",
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" "reference": "60d379c243457e073cff02bc323a2a86cb355631"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631",
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", "reference": "60d379c243457e073cff02bc323a2a86cb355631",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.5.0" "php": ">=5.5"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^4.0" "symfony/phpunit-bridge": "^4.4 || ^5.1"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -1935,20 +1945,20 @@
"keywords": [ "keywords": [
"promise" "promise"
], ],
"time": "2016-12-20 10:07:11" "time": "2020-09-30 07:37:28"
}, },
{ {
"name": "guzzlehttp/psr7", "name": "guzzlehttp/psr7",
"version": "1.6.1", "version": "1.7.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/psr7.git", "url": "https://github.com/guzzle/psr7.git",
"reference": "239400de7a173fe9901b9ac7c06497751f00727a" "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a", "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3",
"reference": "239400de7a173fe9901b9ac7c06497751f00727a", "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1961,15 +1971,15 @@
}, },
"require-dev": { "require-dev": {
"ext-zlib": "*", "ext-zlib": "*",
"phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8" "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10"
}, },
"suggest": { "suggest": {
"zendframework/zend-httphandlerrunner": "Emit PSR-7 responses" "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.6-dev" "dev-master": "1.7-dev"
} }
}, },
"autoload": { "autoload": {
@ -2006,30 +2016,30 @@
"uri", "uri",
"url" "url"
], ],
"time": "2019-07-01 23:21:34" "time": "2020-09-30 07:37:11"
}, },
{ {
"name": "incenteev/composer-parameter-handler", "name": "incenteev/composer-parameter-handler",
"version": "v2.1.3", "version": "v2.1.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Incenteev/ParameterHandler.git", "url": "https://github.com/Incenteev/ParameterHandler.git",
"reference": "933c45a34814f27f2345c11c37d46b3ca7303550" "reference": "084befb11ec21faeadcddefb88b66132775ff59b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/933c45a34814f27f2345c11c37d46b3ca7303550", "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/084befb11ec21faeadcddefb88b66132775ff59b",
"reference": "933c45a34814f27f2345c11c37d46b3ca7303550", "reference": "084befb11ec21faeadcddefb88b66132775ff59b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3", "php": ">=5.3.3",
"symfony/yaml": "^2.3 || ^3.0 || ^4.0" "symfony/yaml": "^2.3 || ^3.0 || ^4.0 || ^5.0"
}, },
"require-dev": { "require-dev": {
"composer/composer": "^1.0@dev", "composer/composer": "^1.0@dev",
"symfony/filesystem": "^2.3 || ^3 || ^4", "symfony/filesystem": "^2.3 || ^3 || ^4 || ^5",
"symfony/phpunit-bridge": "^4.0" "symfony/phpunit-bridge": "^4.0 || ^5.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -2057,28 +2067,30 @@
"keywords": [ "keywords": [
"parameters management" "parameters management"
], ],
"time": "2018-02-13 18:05:56" "time": "2020-03-17 21:10:00"
}, },
{ {
"name": "jasig/phpcas", "name": "jasig/phpcas",
"version": "1.3.8", "version": "1.3.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/apereo/phpCAS.git", "url": "https://github.com/apereo/phpCAS.git",
"reference": "40c0769ce05a30c8172b36ceab11124375c8366e" "reference": "7325865c4cfb5005ed4e4c5cf01823be1726a2a0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/apereo/phpCAS/zipball/40c0769ce05a30c8172b36ceab11124375c8366e", "url": "https://api.github.com/repos/apereo/phpCAS/zipball/7325865c4cfb5005ed4e4c5cf01823be1726a2a0",
"reference": "40c0769ce05a30c8172b36ceab11124375c8366e", "reference": "7325865c4cfb5005ed4e4c5cf01823be1726a2a0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-curl": "*", "ext-curl": "*",
"php": ">=5.4.0" "php": ">=5.4.0",
"psr/log": "^1.0.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "~3.7.10" "monolog/monolog": "^1.0.0",
"phpunit/phpunit": ">=4.8.35 <8"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -2112,7 +2124,7 @@
"cas", "cas",
"jasig" "jasig"
], ],
"time": "2019-08-18 20:01:55" "time": "2021-01-31 21:13:59"
}, },
{ {
"name": "jdorn/sql-formatter", "name": "jdorn/sql-formatter",
@ -2455,16 +2467,16 @@
}, },
{ {
"name": "monolog/monolog", "name": "monolog/monolog",
"version": "1.25.2", "version": "1.26.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Seldaek/monolog.git", "url": "https://github.com/Seldaek/monolog.git",
"reference": "d5e2fb341cb44f7e2ab639d12a1e5901091ec287" "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/d5e2fb341cb44f7e2ab639d12a1e5901091ec287", "url": "https://api.github.com/repos/Seldaek/monolog/zipball/2209ddd84e7ef1256b7af205d0717fb62cfc9c33",
"reference": "d5e2fb341cb44f7e2ab639d12a1e5901091ec287", "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2478,11 +2490,10 @@
"aws/aws-sdk-php": "^2.4.9 || ^3.0", "aws/aws-sdk-php": "^2.4.9 || ^3.0",
"doctrine/couchdb": "~1.0@dev", "doctrine/couchdb": "~1.0@dev",
"graylog2/gelf-php": "~1.0", "graylog2/gelf-php": "~1.0",
"jakub-onderka/php-parallel-lint": "0.9",
"php-amqplib/php-amqplib": "~2.4", "php-amqplib/php-amqplib": "~2.4",
"php-console/php-console": "^3.1.3", "php-console/php-console": "^3.1.3",
"phpstan/phpstan": "^0.12.59",
"phpunit/phpunit": "~4.5", "phpunit/phpunit": "~4.5",
"phpunit/phpunit-mock-objects": "2.3.0",
"ruflin/elastica": ">=0.90 <3.0", "ruflin/elastica": ">=0.90 <3.0",
"sentry/sentry": "^0.13", "sentry/sentry": "^0.13",
"swiftmailer/swiftmailer": "^5.3|^6.0" "swiftmailer/swiftmailer": "^5.3|^6.0"
@ -2501,11 +2512,6 @@
"sentry/sentry": "Allow sending log messages to a Sentry server" "sentry/sentry": "Allow sending log messages to a Sentry server"
}, },
"type": "library", "type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Monolog\\": "src/Monolog" "Monolog\\": "src/Monolog"
@ -2529,7 +2535,7 @@
"logging", "logging",
"psr-3" "psr-3"
], ],
"time": "2019-11-13 10:00:05" "time": "2020-12-14 12:56:38"
}, },
{ {
"name": "ocramius/proxy-manager", "name": "ocramius/proxy-manager",
@ -2596,17 +2602,17 @@
}, },
{ {
"name": "oneup/uploader-bundle", "name": "oneup/uploader-bundle",
"version": "1.9.2", "version": "1.9.4",
"target-dir": "Oneup/UploaderBundle", "target-dir": "Oneup/UploaderBundle",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/1up-lab/OneupUploaderBundle.git", "url": "https://github.com/1up-lab/OneupUploaderBundle.git",
"reference": "a32bc98019abfd51531d08cc79be19f849d87b84" "reference": "8a6dc57c35e12fbc341e52e401a1d286475ec445"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/1up-lab/OneupUploaderBundle/zipball/a32bc98019abfd51531d08cc79be19f849d87b84", "url": "https://api.github.com/repos/1up-lab/OneupUploaderBundle/zipball/8a6dc57c35e12fbc341e52e401a1d286475ec445",
"reference": "a32bc98019abfd51531d08cc79be19f849d87b84", "reference": "8a6dc57c35e12fbc341e52e401a1d286475ec445",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2667,20 +2673,20 @@
"plupload", "plupload",
"upload" "upload"
], ],
"time": "2017-12-18 12:41:59" "time": "2020-02-04 12:08:35"
}, },
{ {
"name": "paragonie/random_compat", "name": "paragonie/random_compat",
"version": "v2.0.18", "version": "v2.0.19",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/paragonie/random_compat.git", "url": "https://github.com/paragonie/random_compat.git",
"reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db" "reference": "446fc9faa5c2a9ddf65eb7121c0af7e857295241"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", "url": "https://api.github.com/repos/paragonie/random_compat/zipball/446fc9faa5c2a9ddf65eb7121c0af7e857295241",
"reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", "reference": "446fc9faa5c2a9ddf65eb7121c0af7e857295241",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2716,7 +2722,7 @@
"pseudorandom", "pseudorandom",
"random" "random"
], ],
"time": "2019-01-03 20:59:08" "time": "2020-10-15 10:06:57"
}, },
{ {
"name": "psr/cache", "name": "psr/cache",
@ -2914,16 +2920,16 @@
}, },
{ {
"name": "psr/log", "name": "psr/log",
"version": "1.1.2", "version": "1.1.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/log.git", "url": "https://github.com/php-fig/log.git",
"reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
"reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2957,7 +2963,7 @@
"psr", "psr",
"psr-3" "psr-3"
], ],
"time": "2019-11-01 11:05:21" "time": "2020-03-23 09:12:05"
}, },
{ {
"name": "psr/simple-cache", "name": "psr/simple-cache",
@ -3049,44 +3055,46 @@
}, },
{ {
"name": "ramsey/uuid", "name": "ramsey/uuid",
"version": "3.8.0", "version": "3.9.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/ramsey/uuid.git", "url": "https://github.com/ramsey/uuid.git",
"reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3" "reference": "7e1633a6964b48589b142d60542f9ed31bd37a92"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/ramsey/uuid/zipball/d09ea80159c1929d75b3f9c60504d613aeb4a1e3", "url": "https://api.github.com/repos/ramsey/uuid/zipball/7e1633a6964b48589b142d60542f9ed31bd37a92",
"reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3", "reference": "7e1633a6964b48589b142d60542f9ed31bd37a92",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"paragonie/random_compat": "^1.0|^2.0|9.99.99", "ext-json": "*",
"php": "^5.4 || ^7.0", "paragonie/random_compat": "^1 | ^2 | 9.99.99",
"php": "^5.4 | ^7 | ^8",
"symfony/polyfill-ctype": "^1.8" "symfony/polyfill-ctype": "^1.8"
}, },
"replace": { "replace": {
"rhumsaa/uuid": "self.version" "rhumsaa/uuid": "self.version"
}, },
"require-dev": { "require-dev": {
"codeception/aspect-mock": "^1.0 | ~2.0.0", "codeception/aspect-mock": "^1 | ^2",
"doctrine/annotations": "~1.2.0", "doctrine/annotations": "^1.2",
"goaop/framework": "1.0.0-alpha.2 | ^1.0 | ~2.1.0", "goaop/framework": "1.0.0-alpha.2 | ^1 | ^2.1",
"ircmaxell/random-lib": "^1.1", "jakub-onderka/php-parallel-lint": "^1",
"jakub-onderka/php-parallel-lint": "^0.9.0", "mockery/mockery": "^0.9.11 | ^1",
"mockery/mockery": "^0.9.9",
"moontoast/math": "^1.1", "moontoast/math": "^1.1",
"php-mock/php-mock-phpunit": "^0.3|^1.1", "paragonie/random-lib": "^2",
"phpunit/phpunit": "^4.7|^5.0|^6.5", "php-mock/php-mock-phpunit": "^0.3 | ^1.1",
"squizlabs/php_codesniffer": "^2.3" "phpunit/phpunit": "^4.8 | ^5.4 | ^6.5",
"squizlabs/php_codesniffer": "^3.5"
}, },
"suggest": { "suggest": {
"ext-ctype": "Provides support for PHP Ctype functions", "ext-ctype": "Provides support for PHP Ctype functions",
"ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator", "ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator",
"ext-openssl": "Provides the OpenSSL extension for use with the OpenSslGenerator",
"ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator", "ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator",
"ircmaxell/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
"moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).", "moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).",
"paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
"ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid", "ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid",
"ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
}, },
@ -3099,13 +3107,21 @@
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Ramsey\\Uuid\\": "src/" "Ramsey\\Uuid\\": "src/"
} },
"files": [
"src/functions.php"
]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "MIT"
], ],
"authors": [ "authors": [
{
"name": "Ben Ramsey",
"email": "ben@benramsey.com",
"homepage": "https://benramsey.com"
},
{ {
"name": "Marijn Huizendveld", "name": "Marijn Huizendveld",
"email": "marijn.huizendveld@gmail.com" "email": "marijn.huizendveld@gmail.com"
@ -3113,11 +3129,6 @@
{ {
"name": "Thibaud Fabre", "name": "Thibaud Fabre",
"email": "thibaud@aztech.io" "email": "thibaud@aztech.io"
},
{
"name": "Ben Ramsey",
"email": "ben@benramsey.com",
"homepage": "https://benramsey.com"
} }
], ],
"description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).", "description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).",
@ -3127,20 +3138,20 @@
"identifier", "identifier",
"uuid" "uuid"
], ],
"time": "2018-07-19 23:38:55" "time": "2020-02-21 04:36:14"
}, },
{ {
"name": "ratchet/rfc6455", "name": "ratchet/rfc6455",
"version": "v0.2.5", "version": "v0.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/ratchetphp/RFC6455.git", "url": "https://github.com/ratchetphp/RFC6455.git",
"reference": "c62f7cd95ffbb6e94fd657be694fc7372ecd6e62" "reference": "c8651c7938651c2d55f5d8c2422ac5e57a183341"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/ratchetphp/RFC6455/zipball/c62f7cd95ffbb6e94fd657be694fc7372ecd6e62", "url": "https://api.github.com/repos/ratchetphp/RFC6455/zipball/c8651c7938651c2d55f5d8c2422ac5e57a183341",
"reference": "c62f7cd95ffbb6e94fd657be694fc7372ecd6e62", "reference": "c8651c7938651c2d55f5d8c2422ac5e57a183341",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3148,9 +3159,8 @@
"php": ">=5.4.2" "php": ">=5.4.2"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "4.8.*", "phpunit/phpunit": "5.7.*",
"react/http": "^0.4.1", "react/socket": "^1.3"
"react/socket-client": "^0.4.3"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3167,6 +3177,10 @@
"name": "Chris Boden", "name": "Chris Boden",
"email": "cboden@gmail.com", "email": "cboden@gmail.com",
"role": "Developer" "role": "Developer"
},
{
"name": "Matt Bonneau",
"role": "Developer"
} }
], ],
"description": "RFC6455 WebSocket protocol handler", "description": "RFC6455 WebSocket protocol handler",
@ -3176,28 +3190,28 @@
"rfc6455", "rfc6455",
"websocket" "websocket"
], ],
"time": "2019-03-10 17:10:42" "time": "2020-05-15 18:31:24"
}, },
{ {
"name": "react/cache", "name": "react/cache",
"version": "v1.0.0", "version": "v1.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/cache.git", "url": "https://github.com/reactphp/cache.git",
"reference": "aa10d63a1b40a36a486bdf527f28bac607ee6466" "reference": "4bf736a2cccec7298bdf745db77585966fc2ca7e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/cache/zipball/aa10d63a1b40a36a486bdf527f28bac607ee6466", "url": "https://api.github.com/repos/reactphp/cache/zipball/4bf736a2cccec7298bdf745db77585966fc2ca7e",
"reference": "aa10d63a1b40a36a486bdf527f28bac607ee6466", "reference": "4bf736a2cccec7298bdf745db77585966fc2ca7e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.0", "php": ">=5.3.0",
"react/promise": "~2.0|~1.1" "react/promise": "^3.0 || ^2.0 || ^1.1"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35" "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3209,6 +3223,28 @@
"license": [ "license": [
"MIT" "MIT"
], ],
"authors": [
{
"name": "Christian Lück",
"email": "christian@clue.engineering",
"homepage": "https://clue.engineering/"
},
{
"name": "Cees-Jan Kiewiet",
"email": "reactphp@ceesjankiewiet.nl",
"homepage": "https://wyrihaximus.net/"
},
{
"name": "Jan Sorgalla",
"email": "jsorgalla@gmail.com",
"homepage": "https://sorgalla.com/"
},
{
"name": "Chris Boden",
"email": "cboden@gmail.com",
"homepage": "https://cboden.dev/"
}
],
"description": "Async, Promise-based cache interface for ReactPHP", "description": "Async, Promise-based cache interface for ReactPHP",
"keywords": [ "keywords": [
"cache", "cache",
@ -3216,32 +3252,32 @@
"promise", "promise",
"reactphp" "reactphp"
], ],
"time": "2019-07-11 13:45:28" "time": "2021-02-02 06:47:52"
}, },
{ {
"name": "react/dns", "name": "react/dns",
"version": "v1.2.0", "version": "v1.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/dns.git", "url": "https://github.com/reactphp/dns.git",
"reference": "a214d90c2884dac18d0cac6176202f247b66d762" "reference": "665260757171e2ab17485b44e7ffffa7acb6ca1f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/dns/zipball/a214d90c2884dac18d0cac6176202f247b66d762", "url": "https://api.github.com/repos/reactphp/dns/zipball/665260757171e2ab17485b44e7ffffa7acb6ca1f",
"reference": "a214d90c2884dac18d0cac6176202f247b66d762", "reference": "665260757171e2ab17485b44e7ffffa7acb6ca1f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.0", "php": ">=5.3.0",
"react/cache": "^1.0 || ^0.6 || ^0.5", "react/cache": "^1.0 || ^0.6 || ^0.5",
"react/event-loop": "^1.0 || ^0.5", "react/event-loop": "^1.0 || ^0.5",
"react/promise": "^2.7 || ^1.2.1", "react/promise": "^3.0 || ^2.7 || ^1.2.1",
"react/promise-timer": "^1.2" "react/promise-timer": "^1.2"
}, },
"require-dev": { "require-dev": {
"clue/block-react": "^1.2", "clue/block-react": "^1.2",
"phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35" "phpunit/phpunit": "^9.3 || ^4.8.35"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3253,6 +3289,28 @@
"license": [ "license": [
"MIT" "MIT"
], ],
"authors": [
{
"name": "Christian Lück",
"email": "christian@clue.engineering",
"homepage": "https://clue.engineering/"
},
{
"name": "Cees-Jan Kiewiet",
"email": "reactphp@ceesjankiewiet.nl",
"homepage": "https://wyrihaximus.net/"
},
{
"name": "Jan Sorgalla",
"email": "jsorgalla@gmail.com",
"homepage": "https://sorgalla.com/"
},
{
"name": "Chris Boden",
"email": "cboden@gmail.com",
"homepage": "https://cboden.dev/"
}
],
"description": "Async DNS resolver for ReactPHP", "description": "Async DNS resolver for ReactPHP",
"keywords": [ "keywords": [
"async", "async",
@ -3260,7 +3318,7 @@
"dns-resolver", "dns-resolver",
"reactphp" "reactphp"
], ],
"time": "2019-08-15 09:06:31" "time": "2020-09-18 12:12:55"
}, },
{ {
"name": "react/event-loop", "name": "react/event-loop",
@ -3305,23 +3363,23 @@
}, },
{ {
"name": "react/promise", "name": "react/promise",
"version": "v2.7.1", "version": "v2.8.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/promise.git", "url": "https://github.com/reactphp/promise.git",
"reference": "31ffa96f8d2ed0341a57848cbb84d88b89dd664d" "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/promise/zipball/31ffa96f8d2ed0341a57848cbb84d88b89dd664d", "url": "https://api.github.com/repos/reactphp/promise/zipball/f3cff96a19736714524ca0dd1d4130de73dbbbc4",
"reference": "31ffa96f8d2ed0341a57848cbb84d88b89dd664d", "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.4.0" "php": ">=5.4.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "~4.8" "phpunit/phpunit": "^7.0 || ^6.5 || ^5.7 || ^4.8.36"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3347,29 +3405,29 @@
"promise", "promise",
"promises" "promises"
], ],
"time": "2019-01-07 21:25:54" "time": "2020-05-12 15:16:56"
}, },
{ {
"name": "react/promise-timer", "name": "react/promise-timer",
"version": "v1.5.1", "version": "v1.6.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/promise-timer.git", "url": "https://github.com/reactphp/promise-timer.git",
"reference": "35fb910604fd86b00023fc5cda477c8074ad0abc" "reference": "daee9baf6ef30c43ea4c86399f828bb5f558f6e6"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/promise-timer/zipball/35fb910604fd86b00023fc5cda477c8074ad0abc", "url": "https://api.github.com/repos/reactphp/promise-timer/zipball/daee9baf6ef30c43ea4c86399f828bb5f558f6e6",
"reference": "35fb910604fd86b00023fc5cda477c8074ad0abc", "reference": "daee9baf6ef30c43ea4c86399f828bb5f558f6e6",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3", "php": ">=5.3",
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5", "react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5",
"react/promise": "^2.7.0 || ^1.2.1" "react/promise": "^3.0 || ^2.7.0 || ^1.2.1"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35" "phpunit/phpunit": "^9.0 || ^5.7 || ^4.8.35"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3400,34 +3458,35 @@
"timeout", "timeout",
"timer" "timer"
], ],
"time": "2019-03-27 18:10:32" "time": "2020-07-10 12:18:06"
}, },
{ {
"name": "react/socket", "name": "react/socket",
"version": "v1.3.0", "version": "v1.6.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/socket.git", "url": "https://github.com/reactphp/socket.git",
"reference": "10f0629ec83ea0fa22597f348623f554227e3ca0" "reference": "e2b96b23a13ca9b41ab343268dbce3f8ef4d524a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/socket/zipball/10f0629ec83ea0fa22597f348623f554227e3ca0", "url": "https://api.github.com/repos/reactphp/socket/zipball/e2b96b23a13ca9b41ab343268dbce3f8ef4d524a",
"reference": "10f0629ec83ea0fa22597f348623f554227e3ca0", "reference": "e2b96b23a13ca9b41ab343268dbce3f8ef4d524a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"evenement/evenement": "^3.0 || ^2.0 || ^1.0", "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
"php": ">=5.3.0", "php": ">=5.3.0",
"react/dns": "^1.0 || ^0.4.13", "react/dns": "^1.1",
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5", "react/event-loop": "^1.0 || ^0.5",
"react/promise": "^2.6.0 || ^1.2.1", "react/promise": "^2.6.0 || ^1.2.1",
"react/promise-timer": "^1.4.0", "react/promise-timer": "^1.4.0",
"react/stream": "^1.1" "react/stream": "^1.1"
}, },
"require-dev": { "require-dev": {
"clue/block-react": "^1.2", "clue/block-react": "^1.2",
"phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35" "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35",
"react/promise-stream": "^1.2"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3439,6 +3498,28 @@
"license": [ "license": [
"MIT" "MIT"
], ],
"authors": [
{
"name": "Christian Lück",
"email": "christian@clue.engineering",
"homepage": "https://clue.engineering/"
},
{
"name": "Cees-Jan Kiewiet",
"email": "reactphp@ceesjankiewiet.nl",
"homepage": "https://wyrihaximus.net/"
},
{
"name": "Jan Sorgalla",
"email": "jsorgalla@gmail.com",
"homepage": "https://sorgalla.com/"
},
{
"name": "Chris Boden",
"email": "cboden@gmail.com",
"homepage": "https://cboden.dev/"
}
],
"description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP", "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP",
"keywords": [ "keywords": [
"Connection", "Connection",
@ -3447,20 +3528,20 @@
"reactphp", "reactphp",
"stream" "stream"
], ],
"time": "2019-07-10 10:11:14" "time": "2020-08-28 12:49:05"
}, },
{ {
"name": "react/stream", "name": "react/stream",
"version": "v1.1.0", "version": "v1.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/stream.git", "url": "https://github.com/reactphp/stream.git",
"reference": "50426855f7a77ddf43b9266c22320df5bf6c6ce6" "reference": "7c02b510ee3f582c810aeccd3a197b9c2f52ff1a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/stream/zipball/50426855f7a77ddf43b9266c22320df5bf6c6ce6", "url": "https://api.github.com/repos/reactphp/stream/zipball/7c02b510ee3f582c810aeccd3a197b9c2f52ff1a",
"reference": "50426855f7a77ddf43b9266c22320df5bf6c6ce6", "reference": "7c02b510ee3f582c810aeccd3a197b9c2f52ff1a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3470,7 +3551,7 @@
}, },
"require-dev": { "require-dev": {
"clue/stream-filter": "~1.2", "clue/stream-filter": "~1.2",
"phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35" "phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3493,20 +3574,20 @@
"stream", "stream",
"writable" "writable"
], ],
"time": "2019-01-01 16:15:09" "time": "2020-05-04 10:17:57"
}, },
{ {
"name": "robrichards/xmlseclibs", "name": "robrichards/xmlseclibs",
"version": "3.0.4", "version": "3.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/robrichards/xmlseclibs.git", "url": "https://github.com/robrichards/xmlseclibs.git",
"reference": "0a53d3c3aa87564910cae4ed01416441d3ae0db5" "reference": "f8f19e58f26cdb42c54b214ff8a820760292f8df"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/0a53d3c3aa87564910cae4ed01416441d3ae0db5", "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/f8f19e58f26cdb42c54b214ff8a820760292f8df",
"reference": "0a53d3c3aa87564910cae4ed01416441d3ae0db5", "reference": "f8f19e58f26cdb42c54b214ff8a820760292f8df",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3531,7 +3612,7 @@
"xml", "xml",
"xmldsig" "xmldsig"
], ],
"time": "2019-11-05 11:44:22" "time": "2020-09-05 13:00:25"
}, },
{ {
"name": "sensio/distribution-bundle", "name": "sensio/distribution-bundle",
@ -3828,16 +3909,16 @@
}, },
{ {
"name": "symfony/monolog-bundle", "name": "symfony/monolog-bundle",
"version": "v3.5.0", "version": "v3.6.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/monolog-bundle.git", "url": "https://github.com/symfony/monolog-bundle.git",
"reference": "dd80460fcfe1fa2050a7103ad818e9d0686ce6fd" "reference": "e495f5c7e4e672ffef4357d4a4d85f010802f940"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/dd80460fcfe1fa2050a7103ad818e9d0686ce6fd", "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/e495f5c7e4e672ffef4357d4a4d85f010802f940",
"reference": "dd80460fcfe1fa2050a7103ad818e9d0686ce6fd", "reference": "e495f5c7e4e672ffef4357d4a4d85f010802f940",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3850,7 +3931,7 @@
}, },
"require-dev": { "require-dev": {
"symfony/console": "~3.4 || ~4.0 || ^5.0", "symfony/console": "~3.4 || ~4.0 || ^5.0",
"symfony/phpunit-bridge": "^3.4.19 || ^4.0 || ^5.0", "symfony/phpunit-bridge": "^4.4 || ^5.0",
"symfony/yaml": "~3.4 || ~4.0 || ^5.0" "symfony/yaml": "~3.4 || ~4.0 || ^5.0"
}, },
"type": "symfony-bundle", "type": "symfony-bundle",
@ -3887,27 +3968,26 @@
"log", "log",
"logging" "logging"
], ],
"time": "2019-11-13 13:11:14" "time": "2020-10-06 15:12:11"
}, },
{ {
"name": "symfony/orm-pack", "name": "symfony/orm-pack",
"version": "v1.0.7", "version": "v1.0.8",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/orm-pack.git", "url": "https://github.com/symfony/orm-pack.git",
"reference": "c57f5e05232ca40626eb9fa52a32bc8565e9231c" "reference": "c9bcc08102061f406dc908192c0f33524a675666"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/orm-pack/zipball/c57f5e05232ca40626eb9fa52a32bc8565e9231c", "url": "https://api.github.com/repos/symfony/orm-pack/zipball/c9bcc08102061f406dc908192c0f33524a675666",
"reference": "c57f5e05232ca40626eb9fa52a32bc8565e9231c", "reference": "c9bcc08102061f406dc908192c0f33524a675666",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"doctrine/doctrine-bundle": "^1.6.10|^2.0", "doctrine/doctrine-bundle": "*",
"doctrine/doctrine-migrations-bundle": "^1.3|^2.0", "doctrine/doctrine-migrations-bundle": "*",
"doctrine/orm": "^2.5.11", "doctrine/orm": "*"
"php": "^7.0"
}, },
"type": "symfony-pack", "type": "symfony-pack",
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
@ -3915,20 +3995,20 @@
"MIT" "MIT"
], ],
"description": "A pack for the Doctrine ORM", "description": "A pack for the Doctrine ORM",
"time": "2019-10-18 05:41:09" "time": "2020-02-10 18:03:48"
}, },
{ {
"name": "symfony/polyfill-apcu", "name": "symfony/polyfill-apcu",
"version": "v1.12.0", "version": "v1.19.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-apcu.git", "url": "https://github.com/symfony/polyfill-apcu.git",
"reference": "71ce80635d5dcd67772b4dda00b86068595f64d5" "reference": "b44b51e7814c23bfbd793a16ead5d7ce43ed23c5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/71ce80635d5dcd67772b4dda00b86068595f64d5", "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/b44b51e7814c23bfbd793a16ead5d7ce43ed23c5",
"reference": "71ce80635d5dcd67772b4dda00b86068595f64d5", "reference": "b44b51e7814c23bfbd793a16ead5d7ce43ed23c5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3937,7 +4017,11 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -3971,20 +4055,20 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-08-06 08:03:45" "time": "2020-10-21 09:57:48"
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
"version": "v1.12.0", "version": "v1.19.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git", "url": "https://github.com/symfony/polyfill-ctype.git",
"reference": "550ebaac289296ce228a706d0867afc34687e3f4" "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4", "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/aed596913b70fae57be53d86faa2e9ef85a2297b",
"reference": "550ebaac289296ce228a706d0867afc34687e3f4", "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3996,7 +4080,11 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -4029,20 +4117,20 @@
"polyfill", "polyfill",
"portable" "portable"
], ],
"time": "2019-08-06 08:03:45" "time": "2020-10-23 09:01:57"
}, },
{ {
"name": "symfony/polyfill-intl-icu", "name": "symfony/polyfill-intl-icu",
"version": "v1.12.0", "version": "v1.19.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-intl-icu.git", "url": "https://github.com/symfony/polyfill-intl-icu.git",
"reference": "66810b9d6eb4af54d543867909d65ab9af654d7e" "reference": "f740dd60a5b5f1511229e107f7e59f404b102084"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/66810b9d6eb4af54d543867909d65ab9af654d7e", "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/f740dd60a5b5f1511229e107f7e59f404b102084",
"reference": "66810b9d6eb4af54d543867909d65ab9af654d7e", "reference": "f740dd60a5b5f1511229e107f7e59f404b102084",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4055,7 +4143,11 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -4087,20 +4179,158 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-08-06 08:03:45" "time": "2020-10-23 09:01:57"
}, },
{ {
"name": "symfony/polyfill-mbstring", "name": "symfony/polyfill-intl-idn",
"version": "v1.12.0", "version": "v1.19.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git", "url": "https://github.com/symfony/polyfill-intl-idn.git",
"reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17" "reference": "4ad5115c0f5d5172a9fe8147675ec6de266d8826"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b42a2f66e8f1b15ccf25652c3424265923eb4f17", "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/4ad5115c0f5d5172a9fe8147675ec6de266d8826",
"reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17", "reference": "4ad5115c0f5d5172a9fe8147675ec6de266d8826",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"symfony/polyfill-intl-normalizer": "^1.10",
"symfony/polyfill-php70": "^1.10",
"symfony/polyfill-php72": "^1.10"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Intl\\Idn\\": ""
},
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Laurent Bassin",
"email": "laurent@bassin.info"
},
{
"name": "Trevor Rowbotham",
"email": "trevor.rowbotham@pm.me"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"idn",
"intl",
"polyfill",
"portable",
"shim"
],
"time": "2020-10-21 09:57:48"
},
{
"name": "symfony/polyfill-intl-normalizer",
"version": "v1.19.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
"reference": "8db0ae7936b42feb370840cf24de1a144fb0ef27"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8db0ae7936b42feb370840cf24de1a144fb0ef27",
"reference": "8db0ae7936b42feb370840cf24de1a144fb0ef27",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Intl\\Normalizer\\": ""
},
"files": [
"bootstrap.php"
],
"classmap": [
"Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill for intl's Normalizer class and related functions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"intl",
"normalizer",
"polyfill",
"portable",
"shim"
],
"time": "2020-10-23 09:01:57"
},
{
"name": "symfony/polyfill-mbstring",
"version": "v1.19.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b5f7b932ee6fa802fc792eabd77c4c88084517ce",
"reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4112,7 +4342,11 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -4146,20 +4380,20 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-08-06 08:03:45" "time": "2020-10-23 09:01:57"
}, },
{ {
"name": "symfony/polyfill-php56", "name": "symfony/polyfill-php56",
"version": "v1.12.0", "version": "v1.19.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php56.git", "url": "https://github.com/symfony/polyfill-php56.git",
"reference": "0e3b212e96a51338639d8ce175c046d7729c3403" "reference": "ea19621731cbd973a6702cfedef3419768bf3372"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/0e3b212e96a51338639d8ce175c046d7729c3403", "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/ea19621731cbd973a6702cfedef3419768bf3372",
"reference": "0e3b212e96a51338639d8ce175c046d7729c3403", "reference": "ea19621731cbd973a6702cfedef3419768bf3372",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4169,7 +4403,11 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -4202,20 +4440,20 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-08-06 08:03:45" "time": "2020-10-23 09:01:57"
}, },
{ {
"name": "symfony/polyfill-php70", "name": "symfony/polyfill-php70",
"version": "v1.12.0", "version": "v1.19.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php70.git", "url": "https://github.com/symfony/polyfill-php70.git",
"reference": "54b4c428a0054e254223797d2713c31e08610831" "reference": "3fe414077251a81a1b15b1c709faf5c2fbae3d4e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/54b4c428a0054e254223797d2713c31e08610831", "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/3fe414077251a81a1b15b1c709faf5c2fbae3d4e",
"reference": "54b4c428a0054e254223797d2713c31e08610831", "reference": "3fe414077251a81a1b15b1c709faf5c2fbae3d4e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4225,7 +4463,11 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -4261,20 +4503,20 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-08-06 08:03:45" "time": "2020-10-23 09:01:57"
}, },
{ {
"name": "symfony/polyfill-util", "name": "symfony/polyfill-php72",
"version": "v1.12.0", "version": "v1.19.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-util.git", "url": "https://github.com/symfony/polyfill-php72.git",
"reference": "4317de1386717b4c22caed7725350a8887ab205c" "reference": "beecef6b463b06954638f02378f52496cb84bacc"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-util/zipball/4317de1386717b4c22caed7725350a8887ab205c", "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/beecef6b463b06954638f02378f52496cb84bacc",
"reference": "4317de1386717b4c22caed7725350a8887ab205c", "reference": "beecef6b463b06954638f02378f52496cb84bacc",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4283,7 +4525,70 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Php72\\": ""
},
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"time": "2020-10-23 09:01:57"
},
{
"name": "symfony/polyfill-util",
"version": "v1.19.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-util.git",
"reference": "8df0c3e6a4b85df9a5c6f3f2f46fba5c5c47058a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-util/zipball/8df0c3e6a4b85df9a5c6f3f2f46fba5c5c47058a",
"reference": "8df0c3e6a4b85df9a5c6f3f2f46fba5c5c47058a",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.19-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -4313,7 +4618,7 @@
"polyfill", "polyfill",
"shim" "shim"
], ],
"time": "2019-08-06 08:03:45" "time": "2020-10-21 09:57:48"
}, },
{ {
"name": "symfony/swiftmailer-bundle", "name": "symfony/swiftmailer-bundle",
@ -4376,16 +4681,16 @@
}, },
{ {
"name": "symfony/symfony", "name": "symfony/symfony",
"version": "v3.4.35", "version": "v3.4.47",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/symfony.git", "url": "https://github.com/symfony/symfony.git",
"reference": "2adc85d49cbe14e346068fa7e9c2e1f08ab31de6" "reference": "83093d5448a7b90fd4cbcce38580ae53898f506f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/symfony/zipball/2adc85d49cbe14e346068fa7e9c2e1f08ab31de6", "url": "https://api.github.com/repos/symfony/symfony/zipball/83093d5448a7b90fd4cbcce38580ae53898f506f",
"reference": "2adc85d49cbe14e346068fa7e9c2e1f08ab31de6", "reference": "83093d5448a7b90fd4cbcce38580ae53898f506f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4407,6 +4712,7 @@
"twig/twig": "^1.41|^2.10" "twig/twig": "^1.41|^2.10"
}, },
"conflict": { "conflict": {
"monolog/monolog": ">=2",
"phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2", "phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2",
"phpdocumentor/type-resolver": "<0.3.0", "phpdocumentor/type-resolver": "<0.3.0",
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0"
@ -4474,7 +4780,7 @@
"cache/integration-tests": "dev-master", "cache/integration-tests": "dev-master",
"doctrine/annotations": "~1.0", "doctrine/annotations": "~1.0",
"doctrine/cache": "~1.6", "doctrine/cache": "~1.6",
"doctrine/data-fixtures": "1.0.*", "doctrine/data-fixtures": "^1.1",
"doctrine/dbal": "~2.4", "doctrine/dbal": "~2.4",
"doctrine/doctrine-bundle": "~1.4", "doctrine/doctrine-bundle": "~1.4",
"doctrine/orm": "~2.4,>=2.4.5", "doctrine/orm": "~2.4,>=2.4.5",
@ -4483,14 +4789,12 @@
"ocramius/proxy-manager": "~0.4|~1.0|~2.0", "ocramius/proxy-manager": "~0.4|~1.0|~2.0",
"phpdocumentor/reflection-docblock": "^3.0|^4.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0",
"predis/predis": "~1.0", "predis/predis": "~1.0",
"symfony/phpunit-bridge": "^3.4.31|^4.3.4|~5.0", "symfony/phpunit-bridge": "^5.2",
"symfony/security-acl": "~2.8|~3.0" "symfony/security-acl": "~2.8|~3.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-version": "3.4"
"dev-master": "3.4-dev"
}
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
@ -4527,7 +4831,7 @@
"keywords": [ "keywords": [
"framework" "framework"
], ],
"time": "2019-11-13 08:45:05" "time": "2020-11-27 08:43:16"
}, },
{ {
"name": "tetranz/select2entity-bundle", "name": "tetranz/select2entity-bundle",
@ -4578,19 +4882,21 @@
}, },
{ {
"name": "thecsea/simple-caldav-client", "name": "thecsea/simple-caldav-client",
"version": "v0.1.10", "version": "v0.1.14",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thecsea/simpleCalDAV.git", "url": "https://github.com/thecsea/simpleCalDAV.git",
"reference": "dae70da0dacd0c8a1e184fbc91ecbe6f7fa5dea9" "reference": "542eda99c5a18c04b3701ebda9ce8d3eb0db7728"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thecsea/simpleCalDAV/zipball/dae70da0dacd0c8a1e184fbc91ecbe6f7fa5dea9", "url": "https://api.github.com/repos/thecsea/simpleCalDAV/zipball/542eda99c5a18c04b3701ebda9ce8d3eb0db7728",
"reference": "dae70da0dacd0c8a1e184fbc91ecbe6f7fa5dea9", "reference": "542eda99c5a18c04b3701ebda9ce8d3eb0db7728",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-curl": "*",
"ext-xml": "*",
"php": ">=5.3.0" "php": ">=5.3.0"
}, },
"type": "library", "type": "library",
@ -4617,20 +4923,20 @@
"Simple", "Simple",
"client" "client"
], ],
"time": "2019-04-25 19:55:16" "time": "2020-09-28 11:55:52"
}, },
{ {
"name": "twig/twig", "name": "twig/twig",
"version": "v2.12.2", "version": "v2.12.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/twigphp/Twig.git", "url": "https://github.com/twigphp/Twig.git",
"reference": "d761fd1f1c6b867ae09a7d8119a6d95d06dc44ed" "reference": "18772e0190734944277ee97a02a9a6c6555fcd94"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/d761fd1f1c6b867ae09a7d8119a6d95d06dc44ed", "url": "https://api.github.com/repos/twigphp/Twig/zipball/18772e0190734944277ee97a02a9a6c6555fcd94",
"reference": "d761fd1f1c6b867ae09a7d8119a6d95d06dc44ed", "reference": "18772e0190734944277ee97a02a9a6c6555fcd94",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4640,8 +4946,7 @@
}, },
"require-dev": { "require-dev": {
"psr/container": "^1.0", "psr/container": "^1.0",
"symfony/debug": "^3.4|^4.2", "symfony/phpunit-bridge": "^4.4|^5.0"
"symfony/phpunit-bridge": "^4.4@dev|^5.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -4670,7 +4975,6 @@
}, },
{ {
"name": "Twig Team", "name": "Twig Team",
"homepage": "https://twig.symfony.com/contributors",
"role": "Contributors" "role": "Contributors"
}, },
{ {
@ -4684,7 +4988,7 @@
"keywords": [ "keywords": [
"templating" "templating"
], ],
"time": "2019-11-11 16:52:09" "time": "2020-02-11 15:31:23"
}, },
{ {
"name": "zendframework/zend-code", "name": "zendframework/zend-code",
@ -4796,16 +5100,16 @@
"packages-dev": [ "packages-dev": [
{ {
"name": "nikic/php-parser", "name": "nikic/php-parser",
"version": "v4.3.0", "version": "v4.10.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nikic/PHP-Parser.git", "url": "https://github.com/nikic/PHP-Parser.git",
"reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc" "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9a9981c347c5c49d6dfe5cf826bb882b824080dc", "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e",
"reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc", "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4813,8 +5117,8 @@
"php": ">=7.0" "php": ">=7.0"
}, },
"require-dev": { "require-dev": {
"ircmaxell/php-yacc": "0.0.5", "ircmaxell/php-yacc": "^0.0.7",
"phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
}, },
"bin": [ "bin": [
"bin/php-parse" "bin/php-parse"
@ -4822,7 +5126,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "4.3-dev" "dev-master": "4.9-dev"
} }
}, },
"autoload": { "autoload": {
@ -4844,7 +5148,7 @@
"parser", "parser",
"php" "php"
], ],
"time": "2019-11-08 13:50:10" "time": "2020-12-20 10:01:03"
}, },
{ {
"name": "sensio/generator-bundle", "name": "sensio/generator-bundle",
@ -4902,16 +5206,16 @@
}, },
{ {
"name": "symfony/maker-bundle", "name": "symfony/maker-bundle",
"version": "v1.14.3", "version": "v1.16.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/maker-bundle.git", "url": "https://github.com/symfony/maker-bundle.git",
"reference": "c864e7f9b8d1e1f5f60acc3beda11299f637aded" "reference": "c8b36ce2aac3635603b4ffc58fbc26717e0a7317"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/maker-bundle/zipball/c864e7f9b8d1e1f5f60acc3beda11299f637aded", "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/c8b36ce2aac3635603b4ffc58fbc26717e0a7317",
"reference": "c864e7f9b8d1e1f5f60acc3beda11299f637aded", "reference": "c8b36ce2aac3635603b4ffc58fbc26717e0a7317",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4966,27 +5270,27 @@
"scaffold", "scaffold",
"scaffolding" "scaffolding"
], ],
"time": "2019-11-07 00:56:03" "time": "2020-05-05 14:21:24"
}, },
{ {
"name": "symfony/phpunit-bridge", "name": "symfony/phpunit-bridge",
"version": "v3.4.35", "version": "v3.4.47",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/phpunit-bridge.git", "url": "https://github.com/symfony/phpunit-bridge.git",
"reference": "cbea8818e9f34e4e9d780bd22bdda21b57d4d5c7" "reference": "120273ad5d03a8deee08ca9260e2598f288f2bac"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/cbea8818e9f34e4e9d780bd22bdda21b57d4d5c7", "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/120273ad5d03a8deee08ca9260e2598f288f2bac",
"reference": "cbea8818e9f34e4e9d780bd22bdda21b57d4d5c7", "reference": "120273ad5d03a8deee08ca9260e2598f288f2bac",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3" "php": ">=5.3.3"
}, },
"conflict": { "conflict": {
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0|<6.4,>=6.0|9.1.2"
}, },
"suggest": { "suggest": {
"symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" "symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader"
@ -4996,9 +5300,6 @@
], ],
"type": "symfony-bridge", "type": "symfony-bridge",
"extra": { "extra": {
"branch-alias": {
"dev-master": "3.4-dev"
},
"thanks": { "thanks": {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"url": "https://github.com/sebastianbergmann/phpunit" "url": "https://github.com/sebastianbergmann/phpunit"
@ -5031,7 +5332,7 @@
], ],
"description": "Symfony PHPUnit Bridge", "description": "Symfony PHPUnit Bridge",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-09-30 20:33:19" "time": "2020-11-13 16:28:59"
} }
], ],
"aliases": [], "aliases": [],
@ -5042,8 +5343,5 @@
"platform": { "platform": {
"php": ">=7" "php": ">=7"
}, },
"platform-dev": [], "platform-dev": []
"platform-overrides": {
"php": "7.0.30"
}
} }

View File

@ -65,9 +65,6 @@
] ]
}, },
"config": { "config": {
"platform": {
"php": "7.2"
},
"sort-packages": true "sort-packages": true
}, },
"extra": { "extra": {

View File

@ -4,29 +4,29 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "83a9e2bee30ea6c8c4a1e3622b0f12dc", "content-hash": "126af2a560491e610bf6530facf116c5",
"packages": [ "packages": [
{ {
"name": "cboden/ratchet", "name": "cboden/ratchet",
"version": "v0.4.1", "version": "v0.4.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/ratchetphp/Ratchet.git", "url": "https://github.com/ratchetphp/Ratchet.git",
"reference": "0d31f3a8ad4795fd48397712709e55cd07f51360" "reference": "466a0ecc83209c75b76645eb823401b5c52e5f21"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/ratchetphp/Ratchet/zipball/0d31f3a8ad4795fd48397712709e55cd07f51360", "url": "https://api.github.com/repos/ratchetphp/Ratchet/zipball/466a0ecc83209c75b76645eb823401b5c52e5f21",
"reference": "0d31f3a8ad4795fd48397712709e55cd07f51360", "reference": "466a0ecc83209c75b76645eb823401b5c52e5f21",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"guzzlehttp/psr7": "^1.0", "guzzlehttp/psr7": "^1.0",
"php": ">=5.4.2", "php": ">=5.4.2",
"ratchet/rfc6455": "^0.2", "ratchet/rfc6455": "^0.3",
"react/socket": "^1.0 || ^0.8 || ^0.7 || ^0.6 || ^0.5", "react/socket": "^1.0 || ^0.8 || ^0.7 || ^0.6 || ^0.5",
"symfony/http-foundation": "^2.6|^3.0|^4.0", "symfony/http-foundation": "^2.6|^3.0|^4.0|^5.0",
"symfony/routing": "^2.6|^3.0|^4.0" "symfony/routing": "^2.6|^3.0|^4.0|^5.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "~4.8" "phpunit/phpunit": "~4.8"
@ -46,6 +46,10 @@
"name": "Chris Boden", "name": "Chris Boden",
"email": "cboden@gmail.com", "email": "cboden@gmail.com",
"role": "Developer" "role": "Developer"
},
{
"name": "Matt Bonneau",
"role": "Developer"
} }
], ],
"description": "PHP WebSocket library", "description": "PHP WebSocket library",
@ -57,32 +61,90 @@
"sockets", "sockets",
"websocket" "websocket"
], ],
"time": "2017-12-12T00:49:31+00:00" "time": "2020-07-07T15:50:14+00:00"
}, },
{ {
"name": "debril/feed-io", "name": "composer/package-versions-deprecated",
"version": "v4.4.1", "version": "1.11.99.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/alexdebril/feed-io.git", "url": "https://github.com/composer/package-versions-deprecated.git",
"reference": "bba403f15f65f274713c61e765dd8bad79c96a0a" "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/alexdebril/feed-io/zipball/bba403f15f65f274713c61e765dd8bad79c96a0a", "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/7413f0b55a051e89485c5cb9f765fe24bb02a7b6",
"reference": "bba403f15f65f274713c61e765dd8bad79c96a0a", "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"guzzlehttp/guzzle": "~6.2", "composer-plugin-api": "^1.1.0 || ^2.0",
"php": "^7 || ^8"
},
"replace": {
"ocramius/package-versions": "1.11.99"
},
"require-dev": {
"composer/composer": "^1.9.3 || ^2.0@dev",
"ext-zip": "^1.13",
"phpunit/phpunit": "^6.5 || ^7"
},
"type": "composer-plugin",
"extra": {
"class": "PackageVersions\\Installer",
"branch-alias": {
"dev-master": "1.x-dev"
}
},
"autoload": {
"psr-4": {
"PackageVersions\\": "src/PackageVersions"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com"
},
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be"
}
],
"description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
"time": "2020-11-11T10:22:58+00:00"
},
{
"name": "debril/feed-io",
"version": "v4.8.0",
"source": {
"type": "git",
"url": "https://github.com/alexdebril/feed-io.git",
"reference": "5239890978c8136668a052fbf3f1302512cd6a9a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/alexdebril/feed-io/zipball/5239890978c8136668a052fbf3f1302512cd6a9a",
"reference": "5239890978c8136668a052fbf3f1302512cd6a9a",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-json": "*",
"ext-libxml": "*",
"guzzlehttp/guzzle": "~6.2|~7.0",
"php": ">=7.1", "php": ">=7.1",
"psr/log": "~1.0", "psr/log": "~1.0",
"symfony/console": "~3.4|~4.0" "symfony/console": "~3.4|~4.0|~5.0"
}, },
"require-dev": { "require-dev": {
"friendsofphp/php-cs-fixer": "^2.4", "friendsofphp/php-cs-fixer": "^2.4",
"monolog/monolog": "1.*", "monolog/monolog": "1.*",
"phpunit/phpunit": "~7.5.0" "phpunit/phpunit": "~9.3.0"
}, },
"suggest": { "suggest": {
"monolog/monolog": "Allows to handle logs" "monolog/monolog": "Allows to handle logs"
@ -117,7 +179,7 @@
"news", "news",
"rss" "rss"
], ],
"time": "2019-11-13T10:31:19+00:00" "time": "2021-01-29T16:42:17+00:00"
}, },
{ {
"name": "debril/rss-atom-bundle", "name": "debril/rss-atom-bundle",
@ -177,30 +239,33 @@
}, },
{ {
"name": "doctrine/annotations", "name": "doctrine/annotations",
"version": "v1.8.0", "version": "1.11.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/annotations.git", "url": "https://github.com/doctrine/annotations.git",
"reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc" "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/annotations/zipball/904dca4eb10715b92569fbcd79e201d5c349b6bc", "url": "https://api.github.com/repos/doctrine/annotations/zipball/ce77a7ba1770462cd705a91a151b6c3746f9c6ad",
"reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc", "reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"doctrine/lexer": "1.*", "doctrine/lexer": "1.*",
"php": "^7.1" "ext-tokenizer": "*",
"php": "^7.1 || ^8.0"
}, },
"require-dev": { "require-dev": {
"doctrine/cache": "1.*", "doctrine/cache": "1.*",
"phpunit/phpunit": "^7.5" "doctrine/coding-standard": "^6.0 || ^8.1",
"phpstan/phpstan": "^0.12.20",
"phpunit/phpunit": "^7.5 || ^9.1.5"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.7.x-dev" "dev-master": "1.11.x-dev"
} }
}, },
"autoload": { "autoload": {
@ -235,30 +300,30 @@
} }
], ],
"description": "Docblock Annotations Parser", "description": "Docblock Annotations Parser",
"homepage": "http://www.doctrine-project.org", "homepage": "https://www.doctrine-project.org/projects/annotations.html",
"keywords": [ "keywords": [
"annotations", "annotations",
"docblock", "docblock",
"parser" "parser"
], ],
"time": "2019-10-01T18:55:10+00:00" "time": "2020-10-26T10:28:16+00:00"
}, },
{ {
"name": "doctrine/cache", "name": "doctrine/cache",
"version": "1.9.1", "version": "1.10.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/cache.git", "url": "https://github.com/doctrine/cache.git",
"reference": "89a5c76c39c292f7798f964ab3c836c3f8192a55" "reference": "13e3381b25847283a91948d04640543941309727"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/cache/zipball/89a5c76c39c292f7798f964ab3c836c3f8192a55", "url": "https://api.github.com/repos/doctrine/cache/zipball/13e3381b25847283a91948d04640543941309727",
"reference": "89a5c76c39c292f7798f964ab3c836c3f8192a55", "reference": "13e3381b25847283a91948d04640543941309727",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "~7.1" "php": "~7.1 || ^8.0"
}, },
"conflict": { "conflict": {
"doctrine/common": ">2.2,<2.4" "doctrine/common": ">2.2,<2.4"
@ -321,40 +386,34 @@
"memcached", "memcached",
"php", "php",
"redis", "redis",
"riak",
"xcache" "xcache"
], ],
"time": "2019-11-15T14:31:57+00:00" "time": "2020-07-07T18:54:01+00:00"
}, },
{ {
"name": "doctrine/collections", "name": "doctrine/collections",
"version": "1.6.4", "version": "1.6.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/collections.git", "url": "https://github.com/doctrine/collections.git",
"reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7" "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/collections/zipball/6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7", "url": "https://api.github.com/repos/doctrine/collections/zipball/55f8b799269a1a472457bd1a41b4f379d4cfba4a",
"reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7", "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1.3" "php": "^7.1.3 || ^8.0"
}, },
"require-dev": { "require-dev": {
"doctrine/coding-standard": "^6.0", "doctrine/coding-standard": "^6.0",
"phpstan/phpstan-shim": "^0.9.2", "phpstan/phpstan-shim": "^0.9.2",
"phpunit/phpunit": "^7.0", "phpunit/phpunit": "^7.0",
"vimeo/psalm": "^3.2.2" "vimeo/psalm": "^3.8.1"
}, },
"type": "library", "type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.6.x-dev"
}
},
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections"
@ -394,20 +453,20 @@
"iterators", "iterators",
"php" "php"
], ],
"time": "2019-11-13T13:07:11+00:00" "time": "2020-07-27T17:53:49+00:00"
}, },
{ {
"name": "doctrine/common", "name": "doctrine/common",
"version": "v2.11.0", "version": "2.13.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/common.git", "url": "https://github.com/doctrine/common.git",
"reference": "b8ca1dcf6b0dc8a2af7a09baac8d0c48345df4ff" "reference": "f3812c026e557892c34ef37f6ab808a6b567da7f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/common/zipball/b8ca1dcf6b0dc8a2af7a09baac8d0c48345df4ff", "url": "https://api.github.com/repos/doctrine/common/zipball/f3812c026e557892c34ef37f6ab808a6b567da7f",
"reference": "b8ca1dcf6b0dc8a2af7a09baac8d0c48345df4ff", "reference": "f3812c026e557892c34ef37f6ab808a6b567da7f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -417,9 +476,9 @@
"doctrine/event-manager": "^1.0", "doctrine/event-manager": "^1.0",
"doctrine/inflector": "^1.0", "doctrine/inflector": "^1.0",
"doctrine/lexer": "^1.0", "doctrine/lexer": "^1.0",
"doctrine/persistence": "^1.1", "doctrine/persistence": "^1.3.3",
"doctrine/reflection": "^1.0", "doctrine/reflection": "^1.0",
"php": "^7.1" "php": "^7.1 || ^8.0"
}, },
"require-dev": { "require-dev": {
"doctrine/coding-standard": "^1.0", "doctrine/coding-standard": "^1.0",
@ -477,49 +536,45 @@
"doctrine", "doctrine",
"php" "php"
], ],
"time": "2019-09-10T10:10:14+00:00" "time": "2020-06-05T16:46:05+00:00"
}, },
{ {
"name": "doctrine/data-fixtures", "name": "doctrine/data-fixtures",
"version": "1.4.0", "version": "1.5.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/data-fixtures.git", "url": "https://github.com/doctrine/data-fixtures.git",
"reference": "608a35a3b5bcc4214d116603095f8b0c51091592" "reference": "51d3d4880d28951fff42a635a2389f8c63baddc5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/608a35a3b5bcc4214d116603095f8b0c51091592", "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/51d3d4880d28951fff42a635a2389f8c63baddc5",
"reference": "608a35a3b5bcc4214d116603095f8b0c51091592", "reference": "51d3d4880d28951fff42a635a2389f8c63baddc5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"doctrine/common": "^2.11", "doctrine/common": "^2.13|^3.0",
"php": "^7.2" "doctrine/persistence": "^1.3.3|^2.0",
"php": "^7.2 || ^8.0"
}, },
"conflict": { "conflict": {
"doctrine/phpcr-odm": "<1.3.0" "doctrine/phpcr-odm": "<1.3.0"
}, },
"require-dev": { "require-dev": {
"alcaeus/mongo-php-adapter": "^1.1", "doctrine/coding-standard": "^8.2",
"doctrine/coding-standard": "^6.0",
"doctrine/dbal": "^2.5.4", "doctrine/dbal": "^2.5.4",
"doctrine/mongodb-odm": "^1.3.0", "doctrine/mongodb-odm": "^1.3.0 || ^2.0.0",
"doctrine/orm": "^2.5.4", "doctrine/orm": "^2.7.0",
"phpunit/phpunit": "^7.0" "ext-sqlite3": "*",
"phpunit/phpunit": "^8.0"
}, },
"suggest": { "suggest": {
"alcaeus/mongo-php-adapter": "For using MongoDB ODM with PHP 7", "alcaeus/mongo-php-adapter": "For using MongoDB ODM 1.3 with PHP 7 (deprecated)",
"doctrine/mongodb-odm": "For loading MongoDB ODM fixtures", "doctrine/mongodb-odm": "For loading MongoDB ODM fixtures",
"doctrine/orm": "For loading ORM fixtures", "doctrine/orm": "For loading ORM fixtures",
"doctrine/phpcr-odm": "For loading PHPCR ODM fixtures" "doctrine/phpcr-odm": "For loading PHPCR ODM fixtures"
}, },
"type": "library", "type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.4.x-dev"
}
},
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Doctrine\\Common\\DataFixtures\\": "lib/Doctrine/Common/DataFixtures" "Doctrine\\Common\\DataFixtures\\": "lib/Doctrine/Common/DataFixtures"
@ -540,20 +595,20 @@
"keywords": [ "keywords": [
"database" "database"
], ],
"time": "2019-10-30T20:03:18+00:00" "time": "2021-01-23T10:20:43+00:00"
}, },
{ {
"name": "doctrine/dbal", "name": "doctrine/dbal",
"version": "v2.10.0", "version": "2.10.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/dbal.git", "url": "https://github.com/doctrine/dbal.git",
"reference": "0c9a646775ef549eb0a213a4f9bd4381d9b4d934" "reference": "47433196b6390d14409a33885ee42b6208160643"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/0c9a646775ef549eb0a213a4f9bd4381d9b4d934", "url": "https://api.github.com/repos/doctrine/dbal/zipball/47433196b6390d14409a33885ee42b6208160643",
"reference": "0c9a646775ef549eb0a213a4f9bd4381d9b4d934", "reference": "47433196b6390d14409a33885ee42b6208160643",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -563,11 +618,14 @@
"php": "^7.2" "php": "^7.2"
}, },
"require-dev": { "require-dev": {
"doctrine/coding-standard": "^6.0", "doctrine/coding-standard": "^8.1",
"jetbrains/phpstorm-stubs": "^2019.1", "jetbrains/phpstorm-stubs": "^2019.1",
"phpstan/phpstan": "^0.11.3", "nikic/php-parser": "^4.4",
"phpunit/phpunit": "^8.4.1", "phpstan/phpstan": "^0.12.40",
"symfony/console": "^2.0.5|^3.0|^4.0|^5.0" "phpunit/phpunit": "^8.5.5",
"psalm/plugin-phpunit": "^0.10.0",
"symfony/console": "^2.0.5|^3.0|^4.0|^5.0",
"vimeo/psalm": "^3.14.2"
}, },
"suggest": { "suggest": {
"symfony/console": "For helpful console commands such as SQL execution and import of files." "symfony/console": "For helpful console commands such as SQL execution and import of files."
@ -632,32 +690,35 @@
"sqlserver", "sqlserver",
"sqlsrv" "sqlsrv"
], ],
"time": "2019-11-03T16:50:43+00:00" "time": "2020-09-12T21:20:41+00:00"
}, },
{ {
"name": "doctrine/doctrine-bundle", "name": "doctrine/doctrine-bundle",
"version": "1.12.0", "version": "1.12.13",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/DoctrineBundle.git", "url": "https://github.com/doctrine/DoctrineBundle.git",
"reference": "a374f3bc54fe7c23ddb722ef6b9ddd2d9dcb9115" "reference": "85460b85edd8f61a16ad311e7ffc5d255d3c937c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/a374f3bc54fe7c23ddb722ef6b9ddd2d9dcb9115", "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/85460b85edd8f61a16ad311e7ffc5d255d3c937c",
"reference": "a374f3bc54fe7c23ddb722ef6b9ddd2d9dcb9115", "reference": "85460b85edd8f61a16ad311e7ffc5d255d3c937c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"doctrine/dbal": "^2.5.12", "doctrine/dbal": "^2.5.12|^3.0",
"doctrine/doctrine-cache-bundle": "~1.2", "doctrine/doctrine-cache-bundle": "~1.2",
"doctrine/persistence": "^1.3.3",
"jdorn/sql-formatter": "^1.2.16", "jdorn/sql-formatter": "^1.2.16",
"php": "^7.1", "php": "^7.1 || ^8.0",
"symfony/cache": "^3.4.30|^4.3.3",
"symfony/config": "^3.4.30|^4.3.3", "symfony/config": "^3.4.30|^4.3.3",
"symfony/console": "^3.4.30|^4.3.3", "symfony/console": "^3.4.30|^4.3.3",
"symfony/dependency-injection": "^3.4.30|^4.3.3", "symfony/dependency-injection": "^3.4.30|^4.3.3",
"symfony/doctrine-bridge": "^3.4.30|^4.3.3", "symfony/doctrine-bridge": "^3.4.30|^4.3.3",
"symfony/framework-bundle": "^3.4.30|^4.3.3" "symfony/framework-bundle": "^3.4.30|^4.3.3",
"symfony/service-contracts": "^1.1.1|^2.0"
}, },
"conflict": { "conflict": {
"doctrine/orm": "<2.6", "doctrine/orm": "<2.6",
@ -666,11 +727,12 @@
"require-dev": { "require-dev": {
"doctrine/coding-standard": "^6.0", "doctrine/coding-standard": "^6.0",
"doctrine/orm": "^2.6", "doctrine/orm": "^2.6",
"ocramius/proxy-manager": "^2.1",
"php-coveralls/php-coveralls": "^2.1", "php-coveralls/php-coveralls": "^2.1",
"phpunit/phpunit": "^7.5", "phpunit/phpunit": "^7.5",
"symfony/cache": "^3.4.30|^4.3.3",
"symfony/phpunit-bridge": "^4.2", "symfony/phpunit-bridge": "^4.2",
"symfony/property-info": "^3.4.30|^4.3.3", "symfony/property-info": "^3.4.30|^4.3.3",
"symfony/proxy-manager-bridge": "^3.4|^4|^5",
"symfony/twig-bridge": "^3.4|^4.1", "symfony/twig-bridge": "^3.4|^4.1",
"symfony/validator": "^3.4.30|^4.3.3", "symfony/validator": "^3.4.30|^4.3.3",
"symfony/web-profiler-bundle": "^3.4.30|^4.3.3", "symfony/web-profiler-bundle": "^3.4.30|^4.3.3",
@ -684,7 +746,7 @@
"type": "symfony-bundle", "type": "symfony-bundle",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12.x-dev" "dev-master": "2.3.x-dev"
} }
}, },
"autoload": { "autoload": {
@ -722,43 +784,43 @@
"orm", "orm",
"persistence" "persistence"
], ],
"time": "2019-11-19T11:42:20+00:00" "time": "2020-11-14T13:38:44+00:00"
}, },
{ {
"name": "doctrine/doctrine-cache-bundle", "name": "doctrine/doctrine-cache-bundle",
"version": "1.3.5", "version": "1.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/DoctrineCacheBundle.git", "url": "https://github.com/doctrine/DoctrineCacheBundle.git",
"reference": "5514c90d9fb595e1095e6d66ebb98ce9ef049927" "reference": "6bee2f9b339847e8a984427353670bad4e7bdccb"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/5514c90d9fb595e1095e6d66ebb98ce9ef049927", "url": "https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/6bee2f9b339847e8a984427353670bad4e7bdccb",
"reference": "5514c90d9fb595e1095e6d66ebb98ce9ef049927", "reference": "6bee2f9b339847e8a984427353670bad4e7bdccb",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"doctrine/cache": "^1.4.2", "doctrine/cache": "^1.4.2",
"doctrine/inflector": "~1.0", "doctrine/inflector": "^1.0",
"php": ">=5.3.2", "php": "^7.1",
"symfony/doctrine-bridge": "~2.7|~3.3|~4.0" "symfony/doctrine-bridge": "^3.4|^4.0"
}, },
"require-dev": { "require-dev": {
"instaclick/coding-standard": "~1.1", "instaclick/coding-standard": "~1.1",
"instaclick/object-calisthenics-sniffs": "dev-master", "instaclick/object-calisthenics-sniffs": "dev-master",
"instaclick/symfony2-coding-standard": "dev-remaster", "instaclick/symfony2-coding-standard": "dev-remaster",
"phpunit/phpunit": "~4.8.36|~5.6|~6.5|~7.0", "phpunit/phpunit": "^7.0",
"predis/predis": "~0.8", "predis/predis": "~0.8",
"satooshi/php-coveralls": "^1.0", "satooshi/php-coveralls": "^1.0",
"squizlabs/php_codesniffer": "~1.5", "squizlabs/php_codesniffer": "~1.5",
"symfony/console": "~2.7|~3.3|~4.0", "symfony/console": "^3.4|^4.0",
"symfony/finder": "~2.7|~3.3|~4.0", "symfony/finder": "^3.4|^4.0",
"symfony/framework-bundle": "~2.7|~3.3|~4.0", "symfony/framework-bundle": "^3.4|^4.0",
"symfony/phpunit-bridge": "~2.7|~3.3|~4.0", "symfony/phpunit-bridge": "^3.4|^4.0",
"symfony/security-acl": "~2.7|~3.3", "symfony/security-acl": "^2.8",
"symfony/validator": "~2.7|~3.3|~4.0", "symfony/validator": "^3.4|^4.0",
"symfony/yaml": "~2.7|~3.3|~4.0" "symfony/yaml": "^3.4|^4.0"
}, },
"suggest": { "suggest": {
"symfony/security-acl": "For using this bundle to cache ACLs" "symfony/security-acl": "For using this bundle to cache ACLs"
@ -766,7 +828,7 @@
"type": "symfony-bundle", "type": "symfony-bundle",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.3.x-dev" "dev-master": "1.4.x-dev"
} }
}, },
"autoload": { "autoload": {
@ -783,8 +845,8 @@
], ],
"authors": [ "authors": [
{ {
"name": "Symfony Community", "name": "Fabien Potencier",
"homepage": "http://symfony.com/contributors" "email": "fabien@symfony.com"
}, },
{ {
"name": "Benjamin Eberlei", "name": "Benjamin Eberlei",
@ -799,12 +861,12 @@
"email": "guilhermeblanco@hotmail.com" "email": "guilhermeblanco@hotmail.com"
}, },
{ {
"name": "Doctrine Project", "name": "Symfony Community",
"homepage": "http://www.doctrine-project.org/" "homepage": "http://symfony.com/contributors"
}, },
{ {
"name": "Fabien Potencier", "name": "Doctrine Project",
"email": "fabien@symfony.com" "homepage": "http://www.doctrine-project.org/"
} }
], ],
"description": "Symfony Bundle for Doctrine Cache", "description": "Symfony Bundle for Doctrine Cache",
@ -813,7 +875,8 @@
"cache", "cache",
"caching" "caching"
], ],
"time": "2018-11-09T06:25:35+00:00" "abandoned": true,
"time": "2019-11-29T11:22:01+00:00"
}, },
{ {
"name": "doctrine/doctrine-fixtures-bundle", "name": "doctrine/doctrine-fixtures-bundle",
@ -935,20 +998,20 @@
}, },
{ {
"name": "doctrine/event-manager", "name": "doctrine/event-manager",
"version": "1.1.0", "version": "1.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/event-manager.git", "url": "https://github.com/doctrine/event-manager.git",
"reference": "629572819973f13486371cb611386eb17851e85c" "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/event-manager/zipball/629572819973f13486371cb611386eb17851e85c", "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f",
"reference": "629572819973f13486371cb611386eb17851e85c", "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1" "php": "^7.1 || ^8.0"
}, },
"conflict": { "conflict": {
"doctrine/common": "<2.9@dev" "doctrine/common": "<2.9@dev"
@ -1007,37 +1070,42 @@
"event system", "event system",
"events" "events"
], ],
"time": "2019-11-10T09:48:07+00:00" "time": "2020-05-29T18:28:51+00:00"
}, },
{ {
"name": "doctrine/inflector", "name": "doctrine/inflector",
"version": "1.3.1", "version": "1.4.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/inflector.git", "url": "https://github.com/doctrine/inflector.git",
"reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1" "reference": "4650c8b30c753a76bf44fb2ed00117d6f367490c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/inflector/zipball/ec3a55242203ffa6a4b27c58176da97ff0a7aec1", "url": "https://api.github.com/repos/doctrine/inflector/zipball/4650c8b30c753a76bf44fb2ed00117d6f367490c",
"reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1", "reference": "4650c8b30c753a76bf44fb2ed00117d6f367490c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1" "php": "^7.2 || ^8.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^6.2" "doctrine/coding-standard": "^7.0",
"phpstan/phpstan": "^0.11",
"phpstan/phpstan-phpunit": "^0.11",
"phpstan/phpstan-strict-rules": "^0.11",
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.3.x-dev" "dev-master": "2.0.x-dev"
} }
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector",
"Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
} }
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
@ -1066,48 +1134,49 @@
"email": "schmittjoh@gmail.com" "email": "schmittjoh@gmail.com"
} }
], ],
"description": "Common String Manipulations with regard to casing and singular/plural rules.", "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
"homepage": "http://www.doctrine-project.org", "homepage": "https://www.doctrine-project.org/projects/inflector.html",
"keywords": [ "keywords": [
"inflection", "inflection",
"pluralize", "inflector",
"singularize", "lowercase",
"string" "manipulation",
"php",
"plural",
"singular",
"strings",
"uppercase",
"words"
], ],
"time": "2019-10-30T19:59:35+00:00" "time": "2020-05-29T07:19:59+00:00"
}, },
{ {
"name": "doctrine/instantiator", "name": "doctrine/instantiator",
"version": "1.3.0", "version": "1.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/instantiator.git", "url": "https://github.com/doctrine/instantiator.git",
"reference": "ae466f726242e637cebdd526a7d991b9433bacf1" "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b",
"reference": "ae466f726242e637cebdd526a7d991b9433bacf1", "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1" "php": "^7.1 || ^8.0"
}, },
"require-dev": { "require-dev": {
"doctrine/coding-standard": "^6.0", "doctrine/coding-standard": "^8.0",
"ext-pdo": "*", "ext-pdo": "*",
"ext-phar": "*", "ext-phar": "*",
"phpbench/phpbench": "^0.13", "phpbench/phpbench": "^0.13 || 1.0.0-alpha2",
"phpstan/phpstan-phpunit": "^0.11", "phpstan/phpstan": "^0.12",
"phpstan/phpstan-shim": "^0.11", "phpstan/phpstan-phpunit": "^0.12",
"phpunit/phpunit": "^7.0" "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
}, },
"type": "library", "type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.2.x-dev"
}
},
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
@ -1121,7 +1190,7 @@
{ {
"name": "Marco Pivetta", "name": "Marco Pivetta",
"email": "ocramius@gmail.com", "email": "ocramius@gmail.com",
"homepage": "http://ocramius.github.com/" "homepage": "https://ocramius.github.io/"
} }
], ],
"description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
@ -1130,24 +1199,24 @@
"constructor", "constructor",
"instantiate" "instantiate"
], ],
"time": "2019-10-21T16:45:58+00:00" "time": "2020-11-10T18:47:58+00:00"
}, },
{ {
"name": "doctrine/lexer", "name": "doctrine/lexer",
"version": "1.2.0", "version": "1.2.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/lexer.git", "url": "https://github.com/doctrine/lexer.git",
"reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6" "reference": "e864bbf5904cb8f5bb334f99209b48018522f042"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/lexer/zipball/5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042",
"reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", "reference": "e864bbf5904cb8f5bb334f99209b48018522f042",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.2" "php": "^7.2 || ^8.0"
}, },
"require-dev": { "require-dev": {
"doctrine/coding-standard": "^6.0", "doctrine/coding-standard": "^6.0",
@ -1192,7 +1261,7 @@
"parser", "parser",
"php" "php"
], ],
"time": "2019-10-30T14:39:59+00:00" "time": "2020-05-25T17:44:05+00:00"
}, },
{ {
"name": "doctrine/migrations", "name": "doctrine/migrations",
@ -1270,35 +1339,40 @@
}, },
{ {
"name": "doctrine/orm", "name": "doctrine/orm",
"version": "v2.7.0", "version": "2.7.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/orm.git", "url": "https://github.com/doctrine/orm.git",
"reference": "4d763ca4c925f647b248b9fa01b5f47aa3685d62" "reference": "01187c9260cd085529ddd1273665217cae659640"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/orm/zipball/4d763ca4c925f647b248b9fa01b5f47aa3685d62", "url": "https://api.github.com/repos/doctrine/orm/zipball/01187c9260cd085529ddd1273665217cae659640",
"reference": "4d763ca4c925f647b248b9fa01b5f47aa3685d62", "reference": "01187c9260cd085529ddd1273665217cae659640",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"doctrine/annotations": "^1.8", "composer/package-versions-deprecated": "^1.8",
"doctrine/annotations": "^1.11.1",
"doctrine/cache": "^1.9.1", "doctrine/cache": "^1.9.1",
"doctrine/collections": "^1.5", "doctrine/collections": "^1.5",
"doctrine/common": "^2.11", "doctrine/common": "^2.11 || ^3.0",
"doctrine/dbal": "^2.9.3", "doctrine/dbal": "^2.9.3",
"doctrine/event-manager": "^1.1", "doctrine/event-manager": "^1.1",
"doctrine/inflector": "^1.0",
"doctrine/instantiator": "^1.3", "doctrine/instantiator": "^1.3",
"doctrine/persistence": "^1.2", "doctrine/lexer": "^1.0",
"doctrine/persistence": "^1.3.3 || ^2.0",
"ext-pdo": "*", "ext-pdo": "*",
"php": "^7.1", "php": "^7.1",
"symfony/console": "^3.0|^4.0|^5.0" "symfony/console": "^3.0|^4.0|^5.0"
}, },
"require-dev": { "require-dev": {
"doctrine/coding-standard": "^5.0", "doctrine/coding-standard": "^6.0",
"phpunit/phpunit": "^7.5", "phpstan/phpstan": "^0.12.18",
"symfony/yaml": "^3.4|^4.0|^5.0" "phpunit/phpunit": "^8.0",
"symfony/yaml": "^3.4|^4.0|^5.0",
"vimeo/psalm": "^3.11"
}, },
"suggest": { "suggest": {
"symfony/yaml": "If you want to use YAML Metadata Mapping Driver" "symfony/yaml": "If you want to use YAML Metadata Mapping Driver"
@ -1349,20 +1423,20 @@
"database", "database",
"orm" "orm"
], ],
"time": "2019-11-19T08:38:05+00:00" "time": "2020-12-03T08:52:14+00:00"
}, },
{ {
"name": "doctrine/persistence", "name": "doctrine/persistence",
"version": "1.2.0", "version": "1.3.8",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/doctrine/persistence.git", "url": "https://github.com/doctrine/persistence.git",
"reference": "43526ae63312942e5316100bb3ed589ba1aba491" "reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/doctrine/persistence/zipball/43526ae63312942e5316100bb3ed589ba1aba491", "url": "https://api.github.com/repos/doctrine/persistence/zipball/7a6eac9fb6f61bba91328f15aa7547f4806ca288",
"reference": "43526ae63312942e5316100bb3ed589ba1aba491", "reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1370,16 +1444,99 @@
"doctrine/cache": "^1.0", "doctrine/cache": "^1.0",
"doctrine/collections": "^1.0", "doctrine/collections": "^1.0",
"doctrine/event-manager": "^1.0", "doctrine/event-manager": "^1.0",
"doctrine/reflection": "^1.0", "doctrine/reflection": "^1.2",
"php": "^7.1" "php": "^7.1 || ^8.0"
}, },
"conflict": { "conflict": {
"doctrine/common": "<2.10@dev" "doctrine/common": "<2.10@dev"
}, },
"require-dev": { "require-dev": {
"doctrine/coding-standard": "^5.0", "doctrine/coding-standard": "^6.0",
"phpstan/phpstan": "^0.8", "phpstan/phpstan": "^0.11",
"phpunit/phpunit": "^7.0" "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
"vimeo/psalm": "^3.11"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.3.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\Common\\": "lib/Doctrine/Common",
"Doctrine\\Persistence\\": "lib/Doctrine/Persistence"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
},
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com"
}
],
"description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.",
"homepage": "https://doctrine-project.org/projects/persistence.html",
"keywords": [
"mapper",
"object",
"odm",
"orm",
"persistence"
],
"time": "2020-06-20T12:56:16+00:00"
},
{
"name": "doctrine/reflection",
"version": "1.2.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/reflection.git",
"reference": "fa587178be682efe90d005e3a322590d6ebb59a5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/reflection/zipball/fa587178be682efe90d005e3a322590d6ebb59a5",
"reference": "fa587178be682efe90d005e3a322590d6ebb59a5",
"shasum": ""
},
"require": {
"doctrine/annotations": "^1.0",
"ext-tokenizer": "*",
"php": "^7.1 || ^8.0"
},
"conflict": {
"doctrine/common": "<2.9"
},
"require-dev": {
"doctrine/coding-standard": "^6.0 || ^8.2.0",
"doctrine/common": "^2.10",
"phpstan/phpstan": "^0.11.0 || ^0.12.20",
"phpstan/phpstan-phpunit": "^0.11.0 || ^0.12.16",
"phpunit/phpunit": "^7.5 || ^9.1.5"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -1422,91 +1579,14 @@
"email": "ocramius@gmail.com" "email": "ocramius@gmail.com"
} }
], ],
"description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", "description": "The Doctrine Reflection project is a simple library used by the various Doctrine projects which adds some additional functionality on top of the reflection functionality that comes with PHP. It allows you to get the reflection information about classes, methods and properties statically.",
"homepage": "https://doctrine-project.org/projects/persistence.html",
"keywords": [
"mapper",
"object",
"odm",
"orm",
"persistence"
],
"time": "2019-04-23T12:39:21+00:00"
},
{
"name": "doctrine/reflection",
"version": "v1.0.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/reflection.git",
"reference": "02538d3f95e88eb397a5f86274deb2c6175c2ab6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/reflection/zipball/02538d3f95e88eb397a5f86274deb2c6175c2ab6",
"reference": "02538d3f95e88eb397a5f86274deb2c6175c2ab6",
"shasum": ""
},
"require": {
"doctrine/annotations": "^1.0",
"ext-tokenizer": "*",
"php": "^7.1"
},
"require-dev": {
"doctrine/coding-standard": "^4.0",
"doctrine/common": "^2.8",
"phpstan/phpstan": "^0.9.2",
"phpstan/phpstan-phpunit": "^0.9.4",
"phpunit/phpunit": "^7.0",
"squizlabs/php_codesniffer": "^3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\Common\\": "lib/Doctrine/Common"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
},
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com"
}
],
"description": "Doctrine Reflection component",
"homepage": "https://www.doctrine-project.org/projects/reflection.html", "homepage": "https://www.doctrine-project.org/projects/reflection.html",
"keywords": [ "keywords": [
"reflection" "reflection",
"static"
], ],
"time": "2018-06-14T14:45:07+00:00" "abandoned": "roave/better-reflection",
"time": "2020-10-27T21:46:55+00:00"
}, },
{ {
"name": "egeloen/ckeditor-bundle", "name": "egeloen/ckeditor-bundle",
@ -1675,22 +1755,25 @@
}, },
{ {
"name": "fig/link-util", "name": "fig/link-util",
"version": "1.0.0", "version": "1.1.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/link-util.git", "url": "https://github.com/php-fig/link-util.git",
"reference": "1a07821801a148be4add11ab0603e4af55a72fac" "reference": "5d7b8d04ed3393b4b59968ca1e906fb7186d81e8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac", "url": "https://api.github.com/repos/php-fig/link-util/zipball/5d7b8d04ed3393b4b59968ca1e906fb7186d81e8",
"reference": "1a07821801a148be4add11ab0603e4af55a72fac", "reference": "5d7b8d04ed3393b4b59968ca1e906fb7186d81e8",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.5.0", "php": ">=5.5.0",
"psr/link": "~1.0@dev" "psr/link": "~1.0@dev"
}, },
"provide": {
"psr/link-implementation": "1.0"
},
"require-dev": { "require-dev": {
"phpunit/phpunit": "^5.1", "phpunit/phpunit": "^5.1",
"squizlabs/php_codesniffer": "^2.3.1" "squizlabs/php_codesniffer": "^2.3.1"
@ -1713,7 +1796,7 @@
"authors": [ "authors": [
{ {
"name": "PHP-FIG", "name": "PHP-FIG",
"homepage": "http://www.php-fig.org/" "homepage": "https://www.php-fig.org/"
} }
], ],
"description": "Common utility implementations for HTTP links", "description": "Common utility implementations for HTTP links",
@ -1725,7 +1808,7 @@
"psr-13", "psr-13",
"rest" "rest"
], ],
"time": "2016-10-17T18:31:11+00:00" "time": "2021-02-03T23:36:04+00:00"
}, },
{ {
"name": "gos/pubsub-router-bundle", "name": "gos/pubsub-router-bundle",
@ -1785,16 +1868,16 @@
}, },
{ {
"name": "gos/web-socket-bundle", "name": "gos/web-socket-bundle",
"version": "v1.10.1", "version": "v1.10.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/GeniusesOfSymfony/WebSocketBundle.git", "url": "https://github.com/GeniusesOfSymfony/WebSocketBundle.git",
"reference": "5515324c608d48ff51892602e4535157a5082cb0" "reference": "2d8dfd9dd49ee9328524f43d3afafbb50e0386b9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/GeniusesOfSymfony/WebSocketBundle/zipball/5515324c608d48ff51892602e4535157a5082cb0", "url": "https://api.github.com/repos/GeniusesOfSymfony/WebSocketBundle/zipball/2d8dfd9dd49ee9328524f43d3afafbb50e0386b9",
"reference": "5515324c608d48ff51892602e4535157a5082cb0", "reference": "2d8dfd9dd49ee9328524f43d3afafbb50e0386b9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1808,6 +1891,7 @@
"symfony/config": "^2.3|^3.0|^4.0", "symfony/config": "^2.3|^3.0|^4.0",
"symfony/console": "^2.3|^3.0|^4.0", "symfony/console": "^2.3|^3.0|^4.0",
"symfony/dependency-injection": "^2.3|^3.0|^4.0", "symfony/dependency-injection": "^2.3|^3.0|^4.0",
"symfony/deprecation-contracts": "^2.1",
"symfony/event-dispatcher": "^2.3|^3.0|^4.0", "symfony/event-dispatcher": "^2.3|^3.0|^4.0",
"symfony/http-foundation": "^2.3|^3.0|^4.0", "symfony/http-foundation": "^2.3|^3.0|^4.0",
"symfony/http-kernel": "^2.3|^3.0|^4.0", "symfony/http-kernel": "^2.3|^3.0|^4.0",
@ -1816,9 +1900,6 @@
"conflict": { "conflict": {
"twig/twig": "<1.34|>=2.0,<2.4" "twig/twig": "<1.34|>=2.0,<2.4"
}, },
"require-dev": {
"phpunit/phpunit": "^8.1"
},
"suggest": { "suggest": {
"doctrine/cache": "^1.0 to use doctrine/cache as a client driver", "doctrine/cache": "^1.0 to use doctrine/cache as a client driver",
"ext-amqp": "* to use the amqp pusher", "ext-amqp": "* to use the amqp pusher",
@ -1866,7 +1947,7 @@
"io", "io",
"websocket" "websocket"
], ],
"time": "2019-11-22T15:55:38+00:00" "time": "2020-07-06T14:08:35+00:00"
}, },
{ {
"name": "gos/websocket-client", "name": "gos/websocket-client",
@ -1920,16 +2001,16 @@
}, },
{ {
"name": "gregwar/captcha", "name": "gregwar/captcha",
"version": "v1.1.7", "version": "v1.1.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Gregwar/Captcha.git", "url": "https://github.com/Gregwar/Captcha.git",
"reference": "cf953dd79748406e0292cea8c565399681e4d345" "reference": "4bb668e6b40e3205a020ca5ee4ca8cff8b8780c5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Gregwar/Captcha/zipball/cf953dd79748406e0292cea8c565399681e4d345", "url": "https://api.github.com/repos/Gregwar/Captcha/zipball/4bb668e6b40e3205a020ca5ee4ca8cff8b8780c5",
"reference": "cf953dd79748406e0292cea8c565399681e4d345", "reference": "4bb668e6b40e3205a020ca5ee4ca8cff8b8780c5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1969,27 +2050,28 @@
"captcha", "captcha",
"spam" "spam"
], ],
"time": "2018-08-17T22:57:28+00:00" "time": "2020-03-24T14:39:05+00:00"
}, },
{ {
"name": "gregwar/captcha-bundle", "name": "gregwar/captcha-bundle",
"version": "v2.0.6", "version": "v2.0.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Gregwar/CaptchaBundle.git", "url": "https://github.com/Gregwar/CaptchaBundle.git",
"reference": "c2d5468556890dd25e0b53bd345fc205562c86f7" "reference": "3ccfdf1c9324acbdfbcccea2c454075115741b3a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Gregwar/CaptchaBundle/zipball/c2d5468556890dd25e0b53bd345fc205562c86f7", "url": "https://api.github.com/repos/Gregwar/CaptchaBundle/zipball/3ccfdf1c9324acbdfbcccea2c454075115741b3a",
"reference": "c2d5468556890dd25e0b53bd345fc205562c86f7", "reference": "3ccfdf1c9324acbdfbcccea2c454075115741b3a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"gregwar/captcha": "~1.1", "gregwar/captcha": "~1.1",
"php": ">=5.3.9", "php": ">=5.3.9",
"symfony/form": "~2.8|~3.0|~4.0", "symfony/form": "~2.8|~3.0|~4.0",
"symfony/framework-bundle": "~2.8|~3.0|~4.0" "symfony/framework-bundle": "~2.8|~3.0|~4.0",
"twig/twig": "^1.40|^2.9"
}, },
"type": "captcha-bundle", "type": "captcha-bundle",
"autoload": { "autoload": {
@ -2023,40 +2105,47 @@
"spam", "spam",
"visual" "visual"
], ],
"time": "2018-11-20T10:41:34+00:00" "time": "2019-09-23T13:07:46+00:00"
}, },
{ {
"name": "guzzlehttp/guzzle", "name": "guzzlehttp/guzzle",
"version": "6.4.1", "version": "7.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/guzzle.git", "url": "https://github.com/guzzle/guzzle.git",
"reference": "0895c932405407fd3a7368b6910c09a24d26db11" "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/0895c932405407fd3a7368b6910c09a24d26db11", "url": "https://api.github.com/repos/guzzle/guzzle/zipball/0aa74dfb41ae110835923ef10a9d803a22d50e79",
"reference": "0895c932405407fd3a7368b6910c09a24d26db11", "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-json": "*", "ext-json": "*",
"guzzlehttp/promises": "^1.0", "guzzlehttp/promises": "^1.4",
"guzzlehttp/psr7": "^1.6.1", "guzzlehttp/psr7": "^1.7",
"php": ">=5.5" "php": "^7.2.5 || ^8.0",
"psr/http-client": "^1.0"
},
"provide": {
"psr/http-client-implementation": "1.0"
}, },
"require-dev": { "require-dev": {
"ext-curl": "*", "ext-curl": "*",
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", "php-http/client-integration-tests": "^3.0",
"phpunit/phpunit": "^8.5.5 || ^9.3.5",
"psr/log": "^1.1" "psr/log": "^1.1"
}, },
"suggest": { "suggest": {
"ext-curl": "Required for CURL handler support",
"ext-intl": "Required for Internationalized Domain Name (IDN) support",
"psr/log": "Required for using the Log middleware" "psr/log": "Required for using the Log middleware"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "6.3-dev" "dev-master": "7.1-dev"
} }
}, },
"autoload": { "autoload": {
@ -2076,6 +2165,11 @@
"name": "Michael Dowling", "name": "Michael Dowling",
"email": "mtdowling@gmail.com", "email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling" "homepage": "https://github.com/mtdowling"
},
{
"name": "Márk Sági-Kazár",
"email": "mark.sagikazar@gmail.com",
"homepage": "https://sagikazarmark.hu"
} }
], ],
"description": "Guzzle is a PHP HTTP client library", "description": "Guzzle is a PHP HTTP client library",
@ -2086,30 +2180,32 @@
"framework", "framework",
"http", "http",
"http client", "http client",
"psr-18",
"psr-7",
"rest", "rest",
"web service" "web service"
], ],
"time": "2019-10-23T15:58:00+00:00" "time": "2020-10-10T11:47:56+00:00"
}, },
{ {
"name": "guzzlehttp/promises", "name": "guzzlehttp/promises",
"version": "v1.3.1", "version": "1.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/promises.git", "url": "https://github.com/guzzle/promises.git",
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" "reference": "60d379c243457e073cff02bc323a2a86cb355631"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631",
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", "reference": "60d379c243457e073cff02bc323a2a86cb355631",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.5.0" "php": ">=5.5"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^4.0" "symfony/phpunit-bridge": "^4.4 || ^5.1"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -2140,20 +2236,20 @@
"keywords": [ "keywords": [
"promise" "promise"
], ],
"time": "2016-12-20T10:07:11+00:00" "time": "2020-09-30T07:37:28+00:00"
}, },
{ {
"name": "guzzlehttp/psr7", "name": "guzzlehttp/psr7",
"version": "1.6.1", "version": "1.7.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/psr7.git", "url": "https://github.com/guzzle/psr7.git",
"reference": "239400de7a173fe9901b9ac7c06497751f00727a" "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a", "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3",
"reference": "239400de7a173fe9901b9ac7c06497751f00727a", "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2166,15 +2262,15 @@
}, },
"require-dev": { "require-dev": {
"ext-zlib": "*", "ext-zlib": "*",
"phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8" "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10"
}, },
"suggest": { "suggest": {
"zendframework/zend-httphandlerrunner": "Emit PSR-7 responses" "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.6-dev" "dev-master": "1.7-dev"
} }
}, },
"autoload": { "autoload": {
@ -2211,30 +2307,30 @@
"uri", "uri",
"url" "url"
], ],
"time": "2019-07-01T23:21:34+00:00" "time": "2020-09-30T07:37:11+00:00"
}, },
{ {
"name": "incenteev/composer-parameter-handler", "name": "incenteev/composer-parameter-handler",
"version": "v2.1.3", "version": "v2.1.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Incenteev/ParameterHandler.git", "url": "https://github.com/Incenteev/ParameterHandler.git",
"reference": "933c45a34814f27f2345c11c37d46b3ca7303550" "reference": "084befb11ec21faeadcddefb88b66132775ff59b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/933c45a34814f27f2345c11c37d46b3ca7303550", "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/084befb11ec21faeadcddefb88b66132775ff59b",
"reference": "933c45a34814f27f2345c11c37d46b3ca7303550", "reference": "084befb11ec21faeadcddefb88b66132775ff59b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3", "php": ">=5.3.3",
"symfony/yaml": "^2.3 || ^3.0 || ^4.0" "symfony/yaml": "^2.3 || ^3.0 || ^4.0 || ^5.0"
}, },
"require-dev": { "require-dev": {
"composer/composer": "^1.0@dev", "composer/composer": "^1.0@dev",
"symfony/filesystem": "^2.3 || ^3 || ^4", "symfony/filesystem": "^2.3 || ^3 || ^4 || ^5",
"symfony/phpunit-bridge": "^4.0" "symfony/phpunit-bridge": "^4.0 || ^5.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -2262,28 +2358,30 @@
"keywords": [ "keywords": [
"parameters management" "parameters management"
], ],
"time": "2018-02-13T18:05:56+00:00" "time": "2020-03-17T21:10:00+00:00"
}, },
{ {
"name": "jasig/phpcas", "name": "jasig/phpcas",
"version": "1.3.8", "version": "1.3.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/apereo/phpCAS.git", "url": "https://github.com/apereo/phpCAS.git",
"reference": "40c0769ce05a30c8172b36ceab11124375c8366e" "reference": "7325865c4cfb5005ed4e4c5cf01823be1726a2a0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/apereo/phpCAS/zipball/40c0769ce05a30c8172b36ceab11124375c8366e", "url": "https://api.github.com/repos/apereo/phpCAS/zipball/7325865c4cfb5005ed4e4c5cf01823be1726a2a0",
"reference": "40c0769ce05a30c8172b36ceab11124375c8366e", "reference": "7325865c4cfb5005ed4e4c5cf01823be1726a2a0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-curl": "*", "ext-curl": "*",
"php": ">=5.4.0" "php": ">=5.4.0",
"psr/log": "^1.0.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "~3.7.10" "monolog/monolog": "^1.0.0",
"phpunit/phpunit": ">=4.8.35 <8"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -2317,7 +2415,7 @@
"cas", "cas",
"jasig" "jasig"
], ],
"time": "2019-08-18T20:01:55+00:00" "time": "2021-01-31T21:13:59+00:00"
}, },
{ {
"name": "jdorn/sql-formatter", "name": "jdorn/sql-formatter",
@ -2660,16 +2758,16 @@
}, },
{ {
"name": "monolog/monolog", "name": "monolog/monolog",
"version": "1.25.2", "version": "1.26.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Seldaek/monolog.git", "url": "https://github.com/Seldaek/monolog.git",
"reference": "d5e2fb341cb44f7e2ab639d12a1e5901091ec287" "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/d5e2fb341cb44f7e2ab639d12a1e5901091ec287", "url": "https://api.github.com/repos/Seldaek/monolog/zipball/2209ddd84e7ef1256b7af205d0717fb62cfc9c33",
"reference": "d5e2fb341cb44f7e2ab639d12a1e5901091ec287", "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2683,11 +2781,10 @@
"aws/aws-sdk-php": "^2.4.9 || ^3.0", "aws/aws-sdk-php": "^2.4.9 || ^3.0",
"doctrine/couchdb": "~1.0@dev", "doctrine/couchdb": "~1.0@dev",
"graylog2/gelf-php": "~1.0", "graylog2/gelf-php": "~1.0",
"jakub-onderka/php-parallel-lint": "0.9",
"php-amqplib/php-amqplib": "~2.4", "php-amqplib/php-amqplib": "~2.4",
"php-console/php-console": "^3.1.3", "php-console/php-console": "^3.1.3",
"phpstan/phpstan": "^0.12.59",
"phpunit/phpunit": "~4.5", "phpunit/phpunit": "~4.5",
"phpunit/phpunit-mock-objects": "2.3.0",
"ruflin/elastica": ">=0.90 <3.0", "ruflin/elastica": ">=0.90 <3.0",
"sentry/sentry": "^0.13", "sentry/sentry": "^0.13",
"swiftmailer/swiftmailer": "^5.3|^6.0" "swiftmailer/swiftmailer": "^5.3|^6.0"
@ -2706,11 +2803,6 @@
"sentry/sentry": "Allow sending log messages to a Sentry server" "sentry/sentry": "Allow sending log messages to a Sentry server"
}, },
"type": "library", "type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Monolog\\": "src/Monolog" "Monolog\\": "src/Monolog"
@ -2734,57 +2826,7 @@
"logging", "logging",
"psr-3" "psr-3"
], ],
"time": "2019-11-13T10:00:05+00:00" "time": "2020-12-14T12:56:38+00:00"
},
{
"name": "ocramius/package-versions",
"version": "1.4.2",
"source": {
"type": "git",
"url": "https://github.com/Ocramius/PackageVersions.git",
"reference": "44af6f3a2e2e04f2af46bcb302ad9600cba41c7d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/44af6f3a2e2e04f2af46bcb302ad9600cba41c7d",
"reference": "44af6f3a2e2e04f2af46bcb302ad9600cba41c7d",
"shasum": ""
},
"require": {
"composer-plugin-api": "^1.0.0",
"php": "^7.1.0"
},
"require-dev": {
"composer/composer": "^1.6.3",
"doctrine/coding-standard": "^5.0.1",
"ext-zip": "*",
"infection/infection": "^0.7.1",
"phpunit/phpunit": "^7.5.17"
},
"type": "composer-plugin",
"extra": {
"class": "PackageVersions\\Installer",
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"autoload": {
"psr-4": {
"PackageVersions\\": "src/PackageVersions"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com"
}
],
"description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
"time": "2019-11-15T16:17:10+00:00"
}, },
{ {
"name": "ocramius/proxy-manager", "name": "ocramius/proxy-manager",
@ -2858,17 +2900,17 @@
}, },
{ {
"name": "oneup/uploader-bundle", "name": "oneup/uploader-bundle",
"version": "1.9.2", "version": "1.9.4",
"target-dir": "Oneup/UploaderBundle", "target-dir": "Oneup/UploaderBundle",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/1up-lab/OneupUploaderBundle.git", "url": "https://github.com/1up-lab/OneupUploaderBundle.git",
"reference": "a32bc98019abfd51531d08cc79be19f849d87b84" "reference": "8a6dc57c35e12fbc341e52e401a1d286475ec445"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/1up-lab/OneupUploaderBundle/zipball/a32bc98019abfd51531d08cc79be19f849d87b84", "url": "https://api.github.com/repos/1up-lab/OneupUploaderBundle/zipball/8a6dc57c35e12fbc341e52e401a1d286475ec445",
"reference": "a32bc98019abfd51531d08cc79be19f849d87b84", "reference": "8a6dc57c35e12fbc341e52e401a1d286475ec445",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2929,20 +2971,20 @@
"plupload", "plupload",
"upload" "upload"
], ],
"time": "2017-12-18T12:41:59+00:00" "time": "2020-02-04T12:08:35+00:00"
}, },
{ {
"name": "paragonie/random_compat", "name": "paragonie/random_compat",
"version": "v2.0.18", "version": "v2.0.19",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/paragonie/random_compat.git", "url": "https://github.com/paragonie/random_compat.git",
"reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db" "reference": "446fc9faa5c2a9ddf65eb7121c0af7e857295241"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", "url": "https://api.github.com/repos/paragonie/random_compat/zipball/446fc9faa5c2a9ddf65eb7121c0af7e857295241",
"reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", "reference": "446fc9faa5c2a9ddf65eb7121c0af7e857295241",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2978,7 +3020,7 @@
"pseudorandom", "pseudorandom",
"random" "random"
], ],
"time": "2019-01-03T20:59:08+00:00" "time": "2020-10-15T10:06:57+00:00"
}, },
{ {
"name": "psr/cache", "name": "psr/cache",
@ -3075,6 +3117,55 @@
], ],
"time": "2017-02-14T16:28:37+00:00" "time": "2017-02-14T16:28:37+00:00"
}, },
{
"name": "psr/http-client",
"version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-client.git",
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
"shasum": ""
},
"require": {
"php": "^7.0 || ^8.0",
"psr/http-message": "^1.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Http\\Client\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for HTTP clients",
"homepage": "https://github.com/php-fig/http-client",
"keywords": [
"http",
"http-client",
"psr",
"psr-18"
],
"time": "2020-06-29T06:28:15+00:00"
},
{ {
"name": "psr/http-message", "name": "psr/http-message",
"version": "1.0.1", "version": "1.0.1",
@ -3176,16 +3267,16 @@
}, },
{ {
"name": "psr/log", "name": "psr/log",
"version": "1.1.2", "version": "1.1.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/log.git", "url": "https://github.com/php-fig/log.git",
"reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
"reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3219,7 +3310,7 @@
"psr", "psr",
"psr-3" "psr-3"
], ],
"time": "2019-11-01T11:05:21+00:00" "time": "2020-03-23T09:12:05+00:00"
}, },
{ {
"name": "psr/simple-cache", "name": "psr/simple-cache",
@ -3311,44 +3402,46 @@
}, },
{ {
"name": "ramsey/uuid", "name": "ramsey/uuid",
"version": "3.8.0", "version": "3.9.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/ramsey/uuid.git", "url": "https://github.com/ramsey/uuid.git",
"reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3" "reference": "7e1633a6964b48589b142d60542f9ed31bd37a92"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/ramsey/uuid/zipball/d09ea80159c1929d75b3f9c60504d613aeb4a1e3", "url": "https://api.github.com/repos/ramsey/uuid/zipball/7e1633a6964b48589b142d60542f9ed31bd37a92",
"reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3", "reference": "7e1633a6964b48589b142d60542f9ed31bd37a92",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"paragonie/random_compat": "^1.0|^2.0|9.99.99", "ext-json": "*",
"php": "^5.4 || ^7.0", "paragonie/random_compat": "^1 | ^2 | 9.99.99",
"php": "^5.4 | ^7 | ^8",
"symfony/polyfill-ctype": "^1.8" "symfony/polyfill-ctype": "^1.8"
}, },
"replace": { "replace": {
"rhumsaa/uuid": "self.version" "rhumsaa/uuid": "self.version"
}, },
"require-dev": { "require-dev": {
"codeception/aspect-mock": "^1.0 | ~2.0.0", "codeception/aspect-mock": "^1 | ^2",
"doctrine/annotations": "~1.2.0", "doctrine/annotations": "^1.2",
"goaop/framework": "1.0.0-alpha.2 | ^1.0 | ~2.1.0", "goaop/framework": "1.0.0-alpha.2 | ^1 | ^2.1",
"ircmaxell/random-lib": "^1.1", "jakub-onderka/php-parallel-lint": "^1",
"jakub-onderka/php-parallel-lint": "^0.9.0", "mockery/mockery": "^0.9.11 | ^1",
"mockery/mockery": "^0.9.9",
"moontoast/math": "^1.1", "moontoast/math": "^1.1",
"php-mock/php-mock-phpunit": "^0.3|^1.1", "paragonie/random-lib": "^2",
"phpunit/phpunit": "^4.7|^5.0|^6.5", "php-mock/php-mock-phpunit": "^0.3 | ^1.1",
"squizlabs/php_codesniffer": "^2.3" "phpunit/phpunit": "^4.8 | ^5.4 | ^6.5",
"squizlabs/php_codesniffer": "^3.5"
}, },
"suggest": { "suggest": {
"ext-ctype": "Provides support for PHP Ctype functions", "ext-ctype": "Provides support for PHP Ctype functions",
"ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator", "ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator",
"ext-openssl": "Provides the OpenSSL extension for use with the OpenSslGenerator",
"ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator", "ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator",
"ircmaxell/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
"moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).", "moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).",
"paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
"ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid", "ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid",
"ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
}, },
@ -3361,13 +3454,21 @@
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Ramsey\\Uuid\\": "src/" "Ramsey\\Uuid\\": "src/"
} },
"files": [
"src/functions.php"
]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "MIT"
], ],
"authors": [ "authors": [
{
"name": "Ben Ramsey",
"email": "ben@benramsey.com",
"homepage": "https://benramsey.com"
},
{ {
"name": "Marijn Huizendveld", "name": "Marijn Huizendveld",
"email": "marijn.huizendveld@gmail.com" "email": "marijn.huizendveld@gmail.com"
@ -3375,11 +3476,6 @@
{ {
"name": "Thibaud Fabre", "name": "Thibaud Fabre",
"email": "thibaud@aztech.io" "email": "thibaud@aztech.io"
},
{
"name": "Ben Ramsey",
"email": "ben@benramsey.com",
"homepage": "https://benramsey.com"
} }
], ],
"description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).", "description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).",
@ -3389,20 +3485,20 @@
"identifier", "identifier",
"uuid" "uuid"
], ],
"time": "2018-07-19T23:38:55+00:00" "time": "2020-02-21T04:36:14+00:00"
}, },
{ {
"name": "ratchet/rfc6455", "name": "ratchet/rfc6455",
"version": "v0.2.5", "version": "v0.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/ratchetphp/RFC6455.git", "url": "https://github.com/ratchetphp/RFC6455.git",
"reference": "c62f7cd95ffbb6e94fd657be694fc7372ecd6e62" "reference": "c8651c7938651c2d55f5d8c2422ac5e57a183341"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/ratchetphp/RFC6455/zipball/c62f7cd95ffbb6e94fd657be694fc7372ecd6e62", "url": "https://api.github.com/repos/ratchetphp/RFC6455/zipball/c8651c7938651c2d55f5d8c2422ac5e57a183341",
"reference": "c62f7cd95ffbb6e94fd657be694fc7372ecd6e62", "reference": "c8651c7938651c2d55f5d8c2422ac5e57a183341",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3410,9 +3506,8 @@
"php": ">=5.4.2" "php": ">=5.4.2"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "4.8.*", "phpunit/phpunit": "5.7.*",
"react/http": "^0.4.1", "react/socket": "^1.3"
"react/socket-client": "^0.4.3"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3429,6 +3524,10 @@
"name": "Chris Boden", "name": "Chris Boden",
"email": "cboden@gmail.com", "email": "cboden@gmail.com",
"role": "Developer" "role": "Developer"
},
{
"name": "Matt Bonneau",
"role": "Developer"
} }
], ],
"description": "RFC6455 WebSocket protocol handler", "description": "RFC6455 WebSocket protocol handler",
@ -3438,28 +3537,28 @@
"rfc6455", "rfc6455",
"websocket" "websocket"
], ],
"time": "2019-03-10T17:10:42+00:00" "time": "2020-05-15T18:31:24+00:00"
}, },
{ {
"name": "react/cache", "name": "react/cache",
"version": "v1.0.0", "version": "v1.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/cache.git", "url": "https://github.com/reactphp/cache.git",
"reference": "aa10d63a1b40a36a486bdf527f28bac607ee6466" "reference": "4bf736a2cccec7298bdf745db77585966fc2ca7e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/cache/zipball/aa10d63a1b40a36a486bdf527f28bac607ee6466", "url": "https://api.github.com/repos/reactphp/cache/zipball/4bf736a2cccec7298bdf745db77585966fc2ca7e",
"reference": "aa10d63a1b40a36a486bdf527f28bac607ee6466", "reference": "4bf736a2cccec7298bdf745db77585966fc2ca7e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.0", "php": ">=5.3.0",
"react/promise": "~2.0|~1.1" "react/promise": "^3.0 || ^2.0 || ^1.1"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35" "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3471,6 +3570,28 @@
"license": [ "license": [
"MIT" "MIT"
], ],
"authors": [
{
"name": "Christian Lück",
"email": "christian@clue.engineering",
"homepage": "https://clue.engineering/"
},
{
"name": "Cees-Jan Kiewiet",
"email": "reactphp@ceesjankiewiet.nl",
"homepage": "https://wyrihaximus.net/"
},
{
"name": "Jan Sorgalla",
"email": "jsorgalla@gmail.com",
"homepage": "https://sorgalla.com/"
},
{
"name": "Chris Boden",
"email": "cboden@gmail.com",
"homepage": "https://cboden.dev/"
}
],
"description": "Async, Promise-based cache interface for ReactPHP", "description": "Async, Promise-based cache interface for ReactPHP",
"keywords": [ "keywords": [
"cache", "cache",
@ -3478,32 +3599,32 @@
"promise", "promise",
"reactphp" "reactphp"
], ],
"time": "2019-07-11T13:45:28+00:00" "time": "2021-02-02T06:47:52+00:00"
}, },
{ {
"name": "react/dns", "name": "react/dns",
"version": "v1.2.0", "version": "v1.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/dns.git", "url": "https://github.com/reactphp/dns.git",
"reference": "a214d90c2884dac18d0cac6176202f247b66d762" "reference": "665260757171e2ab17485b44e7ffffa7acb6ca1f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/dns/zipball/a214d90c2884dac18d0cac6176202f247b66d762", "url": "https://api.github.com/repos/reactphp/dns/zipball/665260757171e2ab17485b44e7ffffa7acb6ca1f",
"reference": "a214d90c2884dac18d0cac6176202f247b66d762", "reference": "665260757171e2ab17485b44e7ffffa7acb6ca1f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.0", "php": ">=5.3.0",
"react/cache": "^1.0 || ^0.6 || ^0.5", "react/cache": "^1.0 || ^0.6 || ^0.5",
"react/event-loop": "^1.0 || ^0.5", "react/event-loop": "^1.0 || ^0.5",
"react/promise": "^2.7 || ^1.2.1", "react/promise": "^3.0 || ^2.7 || ^1.2.1",
"react/promise-timer": "^1.2" "react/promise-timer": "^1.2"
}, },
"require-dev": { "require-dev": {
"clue/block-react": "^1.2", "clue/block-react": "^1.2",
"phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35" "phpunit/phpunit": "^9.3 || ^4.8.35"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3515,6 +3636,28 @@
"license": [ "license": [
"MIT" "MIT"
], ],
"authors": [
{
"name": "Christian Lück",
"email": "christian@clue.engineering",
"homepage": "https://clue.engineering/"
},
{
"name": "Cees-Jan Kiewiet",
"email": "reactphp@ceesjankiewiet.nl",
"homepage": "https://wyrihaximus.net/"
},
{
"name": "Jan Sorgalla",
"email": "jsorgalla@gmail.com",
"homepage": "https://sorgalla.com/"
},
{
"name": "Chris Boden",
"email": "cboden@gmail.com",
"homepage": "https://cboden.dev/"
}
],
"description": "Async DNS resolver for ReactPHP", "description": "Async DNS resolver for ReactPHP",
"keywords": [ "keywords": [
"async", "async",
@ -3522,20 +3665,20 @@
"dns-resolver", "dns-resolver",
"reactphp" "reactphp"
], ],
"time": "2019-08-15T09:06:31+00:00" "time": "2020-09-18T12:12:55+00:00"
}, },
{ {
"name": "react/event-loop", "name": "react/event-loop",
"version": "v1.1.0", "version": "v1.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/event-loop.git", "url": "https://github.com/reactphp/event-loop.git",
"reference": "a0ecac955c67b57c40fe4a1b88a7cca1b58c982d" "reference": "6d24de090cd59cfc830263cfba965be77b563c13"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/event-loop/zipball/a0ecac955c67b57c40fe4a1b88a7cca1b58c982d", "url": "https://api.github.com/repos/reactphp/event-loop/zipball/6d24de090cd59cfc830263cfba965be77b563c13",
"reference": "a0ecac955c67b57c40fe4a1b88a7cca1b58c982d", "reference": "6d24de090cd59cfc830263cfba965be77b563c13",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3564,27 +3707,27 @@
"asynchronous", "asynchronous",
"event-loop" "event-loop"
], ],
"time": "2019-02-07T16:19:49+00:00" "time": "2020-01-01T18:39:52+00:00"
}, },
{ {
"name": "react/promise", "name": "react/promise",
"version": "v2.7.1", "version": "v2.8.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/promise.git", "url": "https://github.com/reactphp/promise.git",
"reference": "31ffa96f8d2ed0341a57848cbb84d88b89dd664d" "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/promise/zipball/31ffa96f8d2ed0341a57848cbb84d88b89dd664d", "url": "https://api.github.com/repos/reactphp/promise/zipball/f3cff96a19736714524ca0dd1d4130de73dbbbc4",
"reference": "31ffa96f8d2ed0341a57848cbb84d88b89dd664d", "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.4.0" "php": ">=5.4.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "~4.8" "phpunit/phpunit": "^7.0 || ^6.5 || ^5.7 || ^4.8.36"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3610,29 +3753,29 @@
"promise", "promise",
"promises" "promises"
], ],
"time": "2019-01-07T21:25:54+00:00" "time": "2020-05-12T15:16:56+00:00"
}, },
{ {
"name": "react/promise-timer", "name": "react/promise-timer",
"version": "v1.5.1", "version": "v1.6.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/promise-timer.git", "url": "https://github.com/reactphp/promise-timer.git",
"reference": "35fb910604fd86b00023fc5cda477c8074ad0abc" "reference": "daee9baf6ef30c43ea4c86399f828bb5f558f6e6"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/promise-timer/zipball/35fb910604fd86b00023fc5cda477c8074ad0abc", "url": "https://api.github.com/repos/reactphp/promise-timer/zipball/daee9baf6ef30c43ea4c86399f828bb5f558f6e6",
"reference": "35fb910604fd86b00023fc5cda477c8074ad0abc", "reference": "daee9baf6ef30c43ea4c86399f828bb5f558f6e6",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3", "php": ">=5.3",
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5", "react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5",
"react/promise": "^2.7.0 || ^1.2.1" "react/promise": "^3.0 || ^2.7.0 || ^1.2.1"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35" "phpunit/phpunit": "^9.0 || ^5.7 || ^4.8.35"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3663,34 +3806,35 @@
"timeout", "timeout",
"timer" "timer"
], ],
"time": "2019-03-27T18:10:32+00:00" "time": "2020-07-10T12:18:06+00:00"
}, },
{ {
"name": "react/socket", "name": "react/socket",
"version": "v1.3.0", "version": "v1.6.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/socket.git", "url": "https://github.com/reactphp/socket.git",
"reference": "10f0629ec83ea0fa22597f348623f554227e3ca0" "reference": "e2b96b23a13ca9b41ab343268dbce3f8ef4d524a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/socket/zipball/10f0629ec83ea0fa22597f348623f554227e3ca0", "url": "https://api.github.com/repos/reactphp/socket/zipball/e2b96b23a13ca9b41ab343268dbce3f8ef4d524a",
"reference": "10f0629ec83ea0fa22597f348623f554227e3ca0", "reference": "e2b96b23a13ca9b41ab343268dbce3f8ef4d524a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"evenement/evenement": "^3.0 || ^2.0 || ^1.0", "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
"php": ">=5.3.0", "php": ">=5.3.0",
"react/dns": "^1.0 || ^0.4.13", "react/dns": "^1.1",
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5", "react/event-loop": "^1.0 || ^0.5",
"react/promise": "^2.6.0 || ^1.2.1", "react/promise": "^2.6.0 || ^1.2.1",
"react/promise-timer": "^1.4.0", "react/promise-timer": "^1.4.0",
"react/stream": "^1.1" "react/stream": "^1.1"
}, },
"require-dev": { "require-dev": {
"clue/block-react": "^1.2", "clue/block-react": "^1.2",
"phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35" "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35",
"react/promise-stream": "^1.2"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3702,6 +3846,28 @@
"license": [ "license": [
"MIT" "MIT"
], ],
"authors": [
{
"name": "Christian Lück",
"email": "christian@clue.engineering",
"homepage": "https://clue.engineering/"
},
{
"name": "Cees-Jan Kiewiet",
"email": "reactphp@ceesjankiewiet.nl",
"homepage": "https://wyrihaximus.net/"
},
{
"name": "Jan Sorgalla",
"email": "jsorgalla@gmail.com",
"homepage": "https://sorgalla.com/"
},
{
"name": "Chris Boden",
"email": "cboden@gmail.com",
"homepage": "https://cboden.dev/"
}
],
"description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP", "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP",
"keywords": [ "keywords": [
"Connection", "Connection",
@ -3710,20 +3876,20 @@
"reactphp", "reactphp",
"stream" "stream"
], ],
"time": "2019-07-10T10:11:14+00:00" "time": "2020-08-28T12:49:05+00:00"
}, },
{ {
"name": "react/stream", "name": "react/stream",
"version": "v1.1.0", "version": "v1.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/stream.git", "url": "https://github.com/reactphp/stream.git",
"reference": "50426855f7a77ddf43b9266c22320df5bf6c6ce6" "reference": "7c02b510ee3f582c810aeccd3a197b9c2f52ff1a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/stream/zipball/50426855f7a77ddf43b9266c22320df5bf6c6ce6", "url": "https://api.github.com/repos/reactphp/stream/zipball/7c02b510ee3f582c810aeccd3a197b9c2f52ff1a",
"reference": "50426855f7a77ddf43b9266c22320df5bf6c6ce6", "reference": "7c02b510ee3f582c810aeccd3a197b9c2f52ff1a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3733,7 +3899,7 @@
}, },
"require-dev": { "require-dev": {
"clue/stream-filter": "~1.2", "clue/stream-filter": "~1.2",
"phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35" "phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -3756,20 +3922,20 @@
"stream", "stream",
"writable" "writable"
], ],
"time": "2019-01-01T16:15:09+00:00" "time": "2020-05-04T10:17:57+00:00"
}, },
{ {
"name": "robrichards/xmlseclibs", "name": "robrichards/xmlseclibs",
"version": "3.0.4", "version": "3.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/robrichards/xmlseclibs.git", "url": "https://github.com/robrichards/xmlseclibs.git",
"reference": "0a53d3c3aa87564910cae4ed01416441d3ae0db5" "reference": "f8f19e58f26cdb42c54b214ff8a820760292f8df"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/0a53d3c3aa87564910cae4ed01416441d3ae0db5", "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/f8f19e58f26cdb42c54b214ff8a820760292f8df",
"reference": "0a53d3c3aa87564910cae4ed01416441d3ae0db5", "reference": "f8f19e58f26cdb42c54b214ff8a820760292f8df",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3794,7 +3960,7 @@
"xml", "xml",
"xmldsig" "xmldsig"
], ],
"time": "2019-11-05T11:44:22+00:00" "time": "2020-09-05T13:00:25+00:00"
}, },
{ {
"name": "sensio/distribution-bundle", "name": "sensio/distribution-bundle",
@ -3846,6 +4012,7 @@
"configuration", "configuration",
"distribution" "distribution"
], ],
"abandoned": true,
"time": "2019-06-18T15:43:58+00:00" "time": "2019-06-18T15:43:58+00:00"
}, },
{ {
@ -3967,6 +4134,7 @@
} }
], ],
"description": "A security checker for your composer.lock", "description": "A security checker for your composer.lock",
"abandoned": "https://github.com/fabpot/local-php-security-checker",
"time": "2019-11-01T13:20:14+00:00" "time": "2019-11-01T13:20:14+00:00"
}, },
{ {
@ -4095,41 +4263,98 @@
"time": "2017-07-14T07:26:46+00:00" "time": "2017-07-14T07:26:46+00:00"
}, },
{ {
"name": "symfony/http-client", "name": "symfony/deprecation-contracts",
"version": "v4.3.8", "version": "v2.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-client.git", "url": "https://github.com/symfony/deprecation-contracts.git",
"reference": "ae3a9cd491f1aadb5583f34a6bda5cca34081ce8" "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-client/zipball/ae3a9cd491f1aadb5583f34a6bda5cca34081ce8", "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665",
"reference": "ae3a9cd491f1aadb5583f34a6bda5cca34081ce8", "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1.3", "php": ">=7.1"
"psr/log": "^1.0",
"symfony/http-client-contracts": "^1.1.7",
"symfony/polyfill-php73": "^1.11"
},
"provide": {
"psr/http-client-implementation": "1.0",
"symfony/http-client-implementation": "1.1"
},
"require-dev": {
"nyholm/psr7": "^1.0",
"psr/http-client": "^1.0",
"symfony/http-kernel": "^4.3",
"symfony/process": "^4.2"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "4.3-dev" "dev-master": "2.2-dev"
},
"thanks": {
"name": "symfony/contracts",
"url": "https://github.com/symfony/contracts"
} }
}, },
"autoload": {
"files": [
"function.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"time": "2020-09-07T11:33:47+00:00"
},
{
"name": "symfony/http-client",
"version": "v5.2.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client.git",
"reference": "22cb1a7844fff206cc5186409776e78865405ea5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-client/zipball/22cb1a7844fff206cc5186409776e78865405ea5",
"reference": "22cb1a7844fff206cc5186409776e78865405ea5",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"psr/log": "^1.0",
"symfony/http-client-contracts": "^2.2",
"symfony/polyfill-php73": "^1.11",
"symfony/polyfill-php80": "^1.15",
"symfony/service-contracts": "^1.0|^2"
},
"provide": {
"php-http/async-client-implementation": "*",
"php-http/client-implementation": "*",
"psr/http-client-implementation": "1.0",
"symfony/http-client-implementation": "1.1"
},
"require-dev": {
"amphp/amp": "^2.5",
"amphp/http-client": "^4.2.1",
"amphp/http-tunnel": "^1.0",
"amphp/socket": "^1.1",
"guzzlehttp/promises": "^1.4",
"nyholm/psr7": "^1.0",
"php-http/httplug": "^1.0|^2.0",
"psr/http-client": "^1.0",
"symfony/dependency-injection": "^4.4|^5.0",
"symfony/http-kernel": "^4.4.13|^5.1.5",
"symfony/process": "^4.4|^5.0",
"symfony/stopwatch": "^4.4|^5.0"
},
"type": "library",
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Symfony\\Component\\HttpClient\\": "" "Symfony\\Component\\HttpClient\\": ""
@ -4152,34 +4377,39 @@
"homepage": "https://symfony.com/contributors" "homepage": "https://symfony.com/contributors"
} }
], ],
"description": "Symfony HttpClient component", "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-11-08T08:23:45+00:00" "time": "2021-01-27T10:15:41+00:00"
}, },
{ {
"name": "symfony/http-client-contracts", "name": "symfony/http-client-contracts",
"version": "v1.1.8", "version": "v2.3.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-client-contracts.git", "url": "https://github.com/symfony/http-client-contracts.git",
"reference": "088bae75cfa2ec5eb6d33dce17dbd8613150ce6e" "reference": "41db680a15018f9c1d4b23516059633ce280ca33"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/088bae75cfa2ec5eb6d33dce17dbd8613150ce6e", "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/41db680a15018f9c1d4b23516059633ce280ca33",
"reference": "088bae75cfa2ec5eb6d33dce17dbd8613150ce6e", "reference": "41db680a15018f9c1d4b23516059633ce280ca33",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1.3" "php": ">=7.2.5"
}, },
"suggest": { "suggest": {
"symfony/http-client-implementation": "" "symfony/http-client-implementation": ""
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-version": "2.3",
"branch-alias": { "branch-alias": {
"dev-master": "1.1-dev" "dev-main": "2.3-dev"
},
"thanks": {
"name": "symfony/contracts",
"url": "https://github.com/symfony/contracts"
} }
}, },
"autoload": { "autoload": {
@ -4211,40 +4441,43 @@
"interoperability", "interoperability",
"standards" "standards"
], ],
"time": "2019-11-07T12:44:51+00:00" "time": "2020-10-14T17:08:19+00:00"
}, },
{ {
"name": "symfony/mime", "name": "symfony/mime",
"version": "v4.4.0", "version": "v5.2.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/mime.git", "url": "https://github.com/symfony/mime.git",
"reference": "89da7b68b7149aab065c09b97f938753ab52831f" "reference": "7dee6a43493f39b51ff6c5bb2bd576fe40a76c86"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/mime/zipball/89da7b68b7149aab065c09b97f938753ab52831f", "url": "https://api.github.com/repos/symfony/mime/zipball/7dee6a43493f39b51ff6c5bb2bd576fe40a76c86",
"reference": "89da7b68b7149aab065c09b97f938753ab52831f", "reference": "7dee6a43493f39b51ff6c5bb2bd576fe40a76c86",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1.3", "php": ">=7.2.5",
"symfony/deprecation-contracts": "^2.1",
"symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-intl-idn": "^1.10",
"symfony/polyfill-mbstring": "^1.0" "symfony/polyfill-mbstring": "^1.0",
"symfony/polyfill-php80": "^1.15"
}, },
"conflict": { "conflict": {
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
"symfony/mailer": "<4.4" "symfony/mailer": "<4.4"
}, },
"require-dev": { "require-dev": {
"egulias/email-validator": "^2.1.10", "egulias/email-validator": "^2.1.10",
"symfony/dependency-injection": "^3.4|^4.1|^5.0" "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
"symfony/dependency-injection": "^4.4|^5.0",
"symfony/property-access": "^4.4|^5.1",
"symfony/property-info": "^4.4|^5.1",
"symfony/serializer": "^5.2"
}, },
"type": "library", "type": "library",
"extra": {
"branch-alias": {
"dev-master": "4.4-dev"
}
},
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Symfony\\Component\\Mime\\": "" "Symfony\\Component\\Mime\\": ""
@ -4267,13 +4500,13 @@
"homepage": "https://symfony.com/contributors" "homepage": "https://symfony.com/contributors"
} }
], ],
"description": "A library to manipulate MIME messages", "description": "Allows manipulating MIME messages",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"keywords": [ "keywords": [
"mime", "mime",
"mime-type" "mime-type"
], ],
"time": "2019-11-13T07:39:40+00:00" "time": "2021-02-02T06:10:15+00:00"
}, },
{ {
"name": "symfony/monolog-bundle", "name": "symfony/monolog-bundle",
@ -4340,23 +4573,22 @@
}, },
{ {
"name": "symfony/orm-pack", "name": "symfony/orm-pack",
"version": "v1.0.7", "version": "v1.0.8",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/orm-pack.git", "url": "https://github.com/symfony/orm-pack.git",
"reference": "c57f5e05232ca40626eb9fa52a32bc8565e9231c" "reference": "c9bcc08102061f406dc908192c0f33524a675666"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/orm-pack/zipball/c57f5e05232ca40626eb9fa52a32bc8565e9231c", "url": "https://api.github.com/repos/symfony/orm-pack/zipball/c9bcc08102061f406dc908192c0f33524a675666",
"reference": "c57f5e05232ca40626eb9fa52a32bc8565e9231c", "reference": "c9bcc08102061f406dc908192c0f33524a675666",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"doctrine/doctrine-bundle": "^1.6.10|^2.0", "doctrine/doctrine-bundle": "*",
"doctrine/doctrine-migrations-bundle": "^1.3|^2.0", "doctrine/doctrine-migrations-bundle": "*",
"doctrine/orm": "^2.5.11", "doctrine/orm": "*"
"php": "^7.0"
}, },
"type": "symfony-pack", "type": "symfony-pack",
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
@ -4364,29 +4596,33 @@
"MIT" "MIT"
], ],
"description": "A pack for the Doctrine ORM", "description": "A pack for the Doctrine ORM",
"time": "2019-10-18T05:41:09+00:00" "time": "2020-02-10T18:03:48+00:00"
}, },
{ {
"name": "symfony/polyfill-apcu", "name": "symfony/polyfill-apcu",
"version": "v1.12.0", "version": "v1.22.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-apcu.git", "url": "https://github.com/symfony/polyfill-apcu.git",
"reference": "71ce80635d5dcd67772b4dda00b86068595f64d5" "reference": "3b3944f40987b9d3f9b9147f86c32df87d9f3505"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/71ce80635d5dcd67772b4dda00b86068595f64d5", "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/3b3944f40987b9d3f9b9147f86c32df87d9f3505",
"reference": "71ce80635d5dcd67772b4dda00b86068595f64d5", "reference": "3b3944f40987b9d3f9b9147f86c32df87d9f3505",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3" "php": ">=7.1"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -4420,24 +4656,24 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-08-06T08:03:45+00:00" "time": "2021-01-07T16:49:33+00:00"
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
"version": "v1.12.0", "version": "v1.22.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git", "url": "https://github.com/symfony/polyfill-ctype.git",
"reference": "550ebaac289296ce228a706d0867afc34687e3f4" "reference": "c6c942b1ac76c82448322025e084cadc56048b4e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4", "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e",
"reference": "550ebaac289296ce228a706d0867afc34687e3f4", "reference": "c6c942b1ac76c82448322025e084cadc56048b4e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3" "php": ">=7.1"
}, },
"suggest": { "suggest": {
"ext-ctype": "For best performance" "ext-ctype": "For best performance"
@ -4445,7 +4681,11 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -4478,38 +4718,50 @@
"polyfill", "polyfill",
"portable" "portable"
], ],
"time": "2019-08-06T08:03:45+00:00" "time": "2021-01-07T16:49:33+00:00"
}, },
{ {
"name": "symfony/polyfill-intl-icu", "name": "symfony/polyfill-intl-icu",
"version": "v1.12.0", "version": "v1.22.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-intl-icu.git", "url": "https://github.com/symfony/polyfill-intl-icu.git",
"reference": "66810b9d6eb4af54d543867909d65ab9af654d7e" "reference": "b2b1e732a6c039f1a3ea3414b3379a2433e183d6"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/66810b9d6eb4af54d543867909d65ab9af654d7e", "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/b2b1e732a6c039f1a3ea3414b3379a2433e183d6",
"reference": "66810b9d6eb4af54d543867909d65ab9af654d7e", "reference": "b2b1e732a6c039f1a3ea3414b3379a2433e183d6",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3", "php": ">=7.1"
"symfony/intl": "~2.3|~3.0|~4.0|~5.0"
}, },
"suggest": { "suggest": {
"ext-intl": "For best performance" "ext-intl": "For best performance and support of other locales than \"en\""
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
"files": [ "files": [
"bootstrap.php" "bootstrap.php"
],
"psr-4": {
"Symfony\\Polyfill\\Intl\\Icu\\": ""
},
"classmap": [
"Resources/stubs"
],
"exclude-from-classmap": [
"/Tests/"
] ]
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
@ -4536,26 +4788,26 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-08-06T08:03:45+00:00" "time": "2021-01-07T16:49:33+00:00"
}, },
{ {
"name": "symfony/polyfill-intl-idn", "name": "symfony/polyfill-intl-idn",
"version": "v1.12.0", "version": "v1.22.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git", "url": "https://github.com/symfony/polyfill-intl-idn.git",
"reference": "6af626ae6fa37d396dc90a399c0ff08e5cfc45b2" "reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6af626ae6fa37d396dc90a399c0ff08e5cfc45b2", "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44",
"reference": "6af626ae6fa37d396dc90a399c0ff08e5cfc45b2", "reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3", "php": ">=7.1",
"symfony/polyfill-mbstring": "^1.3", "symfony/polyfill-intl-normalizer": "^1.10",
"symfony/polyfill-php72": "^1.9" "symfony/polyfill-php72": "^1.10"
}, },
"suggest": { "suggest": {
"ext-intl": "For best performance" "ext-intl": "For best performance"
@ -4563,7 +4815,11 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -4583,6 +4839,10 @@
"name": "Laurent Bassin", "name": "Laurent Bassin",
"email": "laurent@bassin.info" "email": "laurent@bassin.info"
}, },
{
"name": "Trevor Rowbotham",
"email": "trevor.rowbotham@pm.me"
},
{ {
"name": "Symfony Community", "name": "Symfony Community",
"homepage": "https://symfony.com/contributors" "homepage": "https://symfony.com/contributors"
@ -4598,24 +4858,91 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-08-06T08:03:45+00:00" "time": "2021-01-07T16:49:33+00:00"
}, },
{ {
"name": "symfony/polyfill-mbstring", "name": "symfony/polyfill-intl-normalizer",
"version": "v1.12.0", "version": "v1.22.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
"reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17" "reference": "6e971c891537eb617a00bb07a43d182a6915faba"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b42a2f66e8f1b15ccf25652c3424265923eb4f17", "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/6e971c891537eb617a00bb07a43d182a6915faba",
"reference": "b42a2f66e8f1b15ccf25652c3424265923eb4f17", "reference": "6e971c891537eb617a00bb07a43d182a6915faba",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3" "php": ">=7.1"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Intl\\Normalizer\\": ""
},
"files": [
"bootstrap.php"
],
"classmap": [
"Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill for intl's Normalizer class and related functions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"intl",
"normalizer",
"polyfill",
"portable",
"shim"
],
"time": "2021-01-07T17:09:11+00:00"
},
{
"name": "symfony/polyfill-mbstring",
"version": "v1.22.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f377a3dd1fde44d37b9831d68dc8dea3ffd28e13",
"reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13",
"shasum": ""
},
"require": {
"php": ">=7.1"
}, },
"suggest": { "suggest": {
"ext-mbstring": "For best performance" "ext-mbstring": "For best performance"
@ -4623,7 +4950,11 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -4657,40 +4988,35 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-08-06T08:03:45+00:00" "time": "2021-01-07T16:49:33+00:00"
}, },
{ {
"name": "symfony/polyfill-php56", "name": "symfony/polyfill-php56",
"version": "v1.12.0", "version": "v1.20.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php56.git", "url": "https://github.com/symfony/polyfill-php56.git",
"reference": "0e3b212e96a51338639d8ce175c046d7729c3403" "reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/0e3b212e96a51338639d8ce175c046d7729c3403", "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675",
"reference": "0e3b212e96a51338639d8ce175c046d7729c3403", "reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3", "php": ">=7.1"
"symfony/polyfill-util": "~1.0"
}, },
"type": "library", "type": "metapackage",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.20-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Php56\\": ""
},
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "MIT"
@ -4713,43 +5039,35 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-08-06T08:03:45+00:00" "time": "2020-10-23T14:02:19+00:00"
}, },
{ {
"name": "symfony/polyfill-php70", "name": "symfony/polyfill-php70",
"version": "v1.12.0", "version": "v1.20.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php70.git", "url": "https://github.com/symfony/polyfill-php70.git",
"reference": "54b4c428a0054e254223797d2713c31e08610831" "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/54b4c428a0054e254223797d2713c31e08610831", "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644",
"reference": "54b4c428a0054e254223797d2713c31e08610831", "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"paragonie/random_compat": "~1.0|~2.0|~9.99", "php": ">=7.1"
"php": ">=5.3.3"
}, },
"type": "library", "type": "metapackage",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.20-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Php70\\": ""
},
"files": [
"bootstrap.php"
],
"classmap": [
"Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"MIT" "MIT"
@ -4772,29 +5090,33 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-08-06T08:03:45+00:00" "time": "2020-10-23T14:02:19+00:00"
}, },
{ {
"name": "symfony/polyfill-php72", "name": "symfony/polyfill-php72",
"version": "v1.12.0", "version": "v1.22.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php72.git", "url": "https://github.com/symfony/polyfill-php72.git",
"reference": "04ce3335667451138df4307d6a9b61565560199e" "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/04ce3335667451138df4307d6a9b61565560199e", "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
"reference": "04ce3335667451138df4307d6a9b61565560199e", "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3" "php": ">=7.1"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -4827,29 +5149,33 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-08-06T08:03:45+00:00" "time": "2021-01-07T16:49:33+00:00"
}, },
{ {
"name": "symfony/polyfill-php73", "name": "symfony/polyfill-php73",
"version": "v1.12.0", "version": "v1.22.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php73.git", "url": "https://github.com/symfony/polyfill-php73.git",
"reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188" "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/2ceb49eaccb9352bff54d22570276bb75ba4a188", "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2",
"reference": "2ceb49eaccb9352bff54d22570276bb75ba4a188", "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3" "php": ">=7.1"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
@ -4885,34 +5211,108 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2019-08-06T08:03:45+00:00" "time": "2021-01-07T16:49:33+00:00"
}, },
{ {
"name": "symfony/polyfill-util", "name": "symfony/polyfill-php80",
"version": "v1.12.0", "version": "v1.22.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-util.git", "url": "https://github.com/symfony/polyfill-php80.git",
"reference": "4317de1386717b4c22caed7725350a8887ab205c" "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-util/zipball/4317de1386717b4c22caed7725350a8887ab205c", "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91",
"reference": "4317de1386717b4c22caed7725350a8887ab205c", "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3" "php": ">=7.1"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.12-dev" "dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
} }
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Symfony\\Polyfill\\Util\\": "" "Symfony\\Polyfill\\Php80\\": ""
},
"files": [
"bootstrap.php"
],
"classmap": [
"Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ion Bazan",
"email": "ion.bazan@gmail.com"
},
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"time": "2021-01-07T16:49:33+00:00"
},
{
"name": "symfony/service-contracts",
"version": "v2.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
"reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1",
"reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"psr/container": "^1.0"
},
"suggest": {
"symfony/service-implementation": ""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.2-dev"
},
"thanks": {
"name": "symfony/contracts",
"url": "https://github.com/symfony/contracts"
}
},
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Service\\": ""
} }
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
@ -4929,15 +5329,17 @@
"homepage": "https://symfony.com/contributors" "homepage": "https://symfony.com/contributors"
} }
], ],
"description": "Symfony utilities for portability of PHP codes", "description": "Generic abstractions related to writing services",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"keywords": [ "keywords": [
"compat", "abstractions",
"compatibility", "contracts",
"polyfill", "decoupling",
"shim" "interfaces",
"interoperability",
"standards"
], ],
"time": "2019-08-06T08:03:45+00:00" "time": "2020-09-07T11:33:47+00:00"
}, },
{ {
"name": "symfony/swiftmailer-bundle", "name": "symfony/swiftmailer-bundle",
@ -5000,16 +5402,16 @@
}, },
{ {
"name": "symfony/symfony", "name": "symfony/symfony",
"version": "v3.4.35", "version": "v3.4.47",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/symfony.git", "url": "https://github.com/symfony/symfony.git",
"reference": "2adc85d49cbe14e346068fa7e9c2e1f08ab31de6" "reference": "83093d5448a7b90fd4cbcce38580ae53898f506f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/symfony/zipball/2adc85d49cbe14e346068fa7e9c2e1f08ab31de6", "url": "https://api.github.com/repos/symfony/symfony/zipball/83093d5448a7b90fd4cbcce38580ae53898f506f",
"reference": "2adc85d49cbe14e346068fa7e9c2e1f08ab31de6", "reference": "83093d5448a7b90fd4cbcce38580ae53898f506f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5031,6 +5433,7 @@
"twig/twig": "^1.41|^2.10" "twig/twig": "^1.41|^2.10"
}, },
"conflict": { "conflict": {
"monolog/monolog": ">=2",
"phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2", "phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2",
"phpdocumentor/type-resolver": "<0.3.0", "phpdocumentor/type-resolver": "<0.3.0",
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0"
@ -5098,7 +5501,7 @@
"cache/integration-tests": "dev-master", "cache/integration-tests": "dev-master",
"doctrine/annotations": "~1.0", "doctrine/annotations": "~1.0",
"doctrine/cache": "~1.6", "doctrine/cache": "~1.6",
"doctrine/data-fixtures": "1.0.*", "doctrine/data-fixtures": "^1.1",
"doctrine/dbal": "~2.4", "doctrine/dbal": "~2.4",
"doctrine/doctrine-bundle": "~1.4", "doctrine/doctrine-bundle": "~1.4",
"doctrine/orm": "~2.4,>=2.4.5", "doctrine/orm": "~2.4,>=2.4.5",
@ -5107,14 +5510,12 @@
"ocramius/proxy-manager": "~0.4|~1.0|~2.0", "ocramius/proxy-manager": "~0.4|~1.0|~2.0",
"phpdocumentor/reflection-docblock": "^3.0|^4.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0",
"predis/predis": "~1.0", "predis/predis": "~1.0",
"symfony/phpunit-bridge": "^3.4.31|^4.3.4|~5.0", "symfony/phpunit-bridge": "^5.2",
"symfony/security-acl": "~2.8|~3.0" "symfony/security-acl": "~2.8|~3.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-version": "3.4"
"dev-master": "3.4-dev"
}
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
@ -5151,7 +5552,7 @@
"keywords": [ "keywords": [
"framework" "framework"
], ],
"time": "2019-11-13T08:45:05+00:00" "time": "2020-11-27T08:43:16+00:00"
}, },
{ {
"name": "tetranz/select2entity-bundle", "name": "tetranz/select2entity-bundle",
@ -5202,19 +5603,21 @@
}, },
{ {
"name": "thecsea/simple-caldav-client", "name": "thecsea/simple-caldav-client",
"version": "v0.1.10", "version": "v0.1.14",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thecsea/simpleCalDAV.git", "url": "https://github.com/thecsea/simpleCalDAV.git",
"reference": "dae70da0dacd0c8a1e184fbc91ecbe6f7fa5dea9" "reference": "542eda99c5a18c04b3701ebda9ce8d3eb0db7728"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thecsea/simpleCalDAV/zipball/dae70da0dacd0c8a1e184fbc91ecbe6f7fa5dea9", "url": "https://api.github.com/repos/thecsea/simpleCalDAV/zipball/542eda99c5a18c04b3701ebda9ce8d3eb0db7728",
"reference": "dae70da0dacd0c8a1e184fbc91ecbe6f7fa5dea9", "reference": "542eda99c5a18c04b3701ebda9ce8d3eb0db7728",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-curl": "*",
"ext-xml": "*",
"php": ">=5.3.0" "php": ">=5.3.0"
}, },
"type": "library", "type": "library",
@ -5241,36 +5644,35 @@
"Simple", "Simple",
"client" "client"
], ],
"time": "2019-04-25T19:55:16+00:00" "time": "2020-09-28T11:55:52+00:00"
}, },
{ {
"name": "twig/twig", "name": "twig/twig",
"version": "v2.12.2", "version": "v2.14.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/twigphp/Twig.git", "url": "https://github.com/twigphp/Twig.git",
"reference": "d761fd1f1c6b867ae09a7d8119a6d95d06dc44ed" "reference": "8bc568d460d88b25c00c046256ec14a787ea60d9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/d761fd1f1c6b867ae09a7d8119a6d95d06dc44ed", "url": "https://api.github.com/repos/twigphp/Twig/zipball/8bc568d460d88b25c00c046256ec14a787ea60d9",
"reference": "d761fd1f1c6b867ae09a7d8119a6d95d06dc44ed", "reference": "8bc568d460d88b25c00c046256ec14a787ea60d9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.0", "php": ">=7.2.5",
"symfony/polyfill-ctype": "^1.8", "symfony/polyfill-ctype": "^1.8",
"symfony/polyfill-mbstring": "^1.3" "symfony/polyfill-mbstring": "^1.3"
}, },
"require-dev": { "require-dev": {
"psr/container": "^1.0", "psr/container": "^1.0",
"symfony/debug": "^3.4|^4.2", "symfony/phpunit-bridge": "^4.4.9|^5.0.9"
"symfony/phpunit-bridge": "^4.4@dev|^5.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "2.12-dev" "dev-master": "2.14-dev"
} }
}, },
"autoload": { "autoload": {
@ -5294,7 +5696,6 @@
}, },
{ {
"name": "Twig Team", "name": "Twig Team",
"homepage": "https://twig.symfony.com/contributors",
"role": "Contributors" "role": "Contributors"
}, },
{ {
@ -5308,28 +5709,31 @@
"keywords": [ "keywords": [
"templating" "templating"
], ],
"time": "2019-11-11T16:52:09+00:00" "time": "2021-01-05T15:34:33+00:00"
}, },
{ {
"name": "zendframework/zend-code", "name": "zendframework/zend-code",
"version": "3.4.0", "version": "3.4.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/zendframework/zend-code.git", "url": "https://github.com/zendframework/zend-code.git",
"reference": "46feaeecea14161734b56c1ace74f28cb329f194" "reference": "268040548f92c2bfcba164421c1add2ba43abaaa"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/zendframework/zend-code/zipball/46feaeecea14161734b56c1ace74f28cb329f194", "url": "https://api.github.com/repos/zendframework/zend-code/zipball/268040548f92c2bfcba164421c1add2ba43abaaa",
"reference": "46feaeecea14161734b56c1ace74f28cb329f194", "reference": "268040548f92c2bfcba164421c1add2ba43abaaa",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.1", "php": "^7.1",
"zendframework/zend-eventmanager": "^2.6 || ^3.0" "zendframework/zend-eventmanager": "^2.6 || ^3.0"
}, },
"conflict": {
"phpspec/prophecy": "<1.9.0"
},
"require-dev": { "require-dev": {
"doctrine/annotations": "^1.0", "doctrine/annotations": "^1.7",
"ext-phar": "*", "ext-phar": "*",
"phpunit/phpunit": "^7.5.16 || ^8.4", "phpunit/phpunit": "^7.5.16 || ^8.4",
"zendframework/zend-coding-standard": "^1.0", "zendframework/zend-coding-standard": "^1.0",
@ -5343,7 +5747,8 @@
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.4.x-dev", "dev-master": "3.4.x-dev",
"dev-develop": "3.5.x-dev" "dev-develop": "3.5.x-dev",
"dev-dev-4.0": "4.0.x-dev"
} }
}, },
"autoload": { "autoload": {
@ -5361,7 +5766,8 @@
"code", "code",
"zf" "zf"
], ],
"time": "2019-10-05T23:18:22+00:00" "abandoned": "laminas/laminas-code",
"time": "2019-12-10T19:21:15+00:00"
}, },
{ {
"name": "zendframework/zend-eventmanager", "name": "zendframework/zend-eventmanager",
@ -5415,22 +5821,23 @@
"events", "events",
"zf2" "zf2"
], ],
"abandoned": "laminas/laminas-eventmanager",
"time": "2018-04-25T15:33:34+00:00" "time": "2018-04-25T15:33:34+00:00"
} }
], ],
"packages-dev": [ "packages-dev": [
{ {
"name": "nikic/php-parser", "name": "nikic/php-parser",
"version": "v4.3.0", "version": "v4.10.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nikic/PHP-Parser.git", "url": "https://github.com/nikic/PHP-Parser.git",
"reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc" "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9a9981c347c5c49d6dfe5cf826bb882b824080dc", "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e",
"reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc", "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5438,8 +5845,8 @@
"php": ">=7.0" "php": ">=7.0"
}, },
"require-dev": { "require-dev": {
"ircmaxell/php-yacc": "0.0.5", "ircmaxell/php-yacc": "^0.0.7",
"phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
}, },
"bin": [ "bin": [
"bin/php-parse" "bin/php-parse"
@ -5447,7 +5854,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "4.3-dev" "dev-master": "4.9-dev"
} }
}, },
"autoload": { "autoload": {
@ -5469,7 +5876,7 @@
"parser", "parser",
"php" "php"
], ],
"time": "2019-11-08T13:50:10+00:00" "time": "2020-12-20T10:01:03+00:00"
}, },
{ {
"name": "sensio/generator-bundle", "name": "sensio/generator-bundle",
@ -5527,31 +5934,33 @@
}, },
{ {
"name": "symfony/maker-bundle", "name": "symfony/maker-bundle",
"version": "v1.14.3", "version": "v1.29.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/maker-bundle.git", "url": "https://github.com/symfony/maker-bundle.git",
"reference": "c864e7f9b8d1e1f5f60acc3beda11299f637aded" "reference": "9a9e3f4253ca0d923ad49b327db6f89a8f74fe4c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/maker-bundle/zipball/c864e7f9b8d1e1f5f60acc3beda11299f637aded", "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/9a9e3f4253ca0d923ad49b327db6f89a8f74fe4c",
"reference": "c864e7f9b8d1e1f5f60acc3beda11299f637aded", "reference": "9a9e3f4253ca0d923ad49b327db6f89a8f74fe4c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"doctrine/inflector": "^1.2", "doctrine/inflector": "^1.2|^2.0",
"nikic/php-parser": "^4.0", "nikic/php-parser": "^4.0",
"php": "^7.0.8", "php": ">=7.1.3",
"symfony/config": "^3.4|^4.0|^5.0", "symfony/config": "^3.4|^4.0|^5.0",
"symfony/console": "^3.4|^4.0|^5.0", "symfony/console": "^3.4|^4.0|^5.0",
"symfony/dependency-injection": "^3.4|^4.0|^5.0", "symfony/dependency-injection": "^3.4|^4.0|^5.0",
"symfony/deprecation-contracts": "^2.2",
"symfony/filesystem": "^3.4|^4.0|^5.0", "symfony/filesystem": "^3.4|^4.0|^5.0",
"symfony/finder": "^3.4|^4.0|^5.0", "symfony/finder": "^3.4|^4.0|^5.0",
"symfony/framework-bundle": "^3.4|^4.0|^5.0", "symfony/framework-bundle": "^3.4|^4.0|^5.0",
"symfony/http-kernel": "^3.4|^4.0|^5.0" "symfony/http-kernel": "^3.4|^4.0|^5.0"
}, },
"require-dev": { "require-dev": {
"composer/semver": "^3.0@dev",
"doctrine/doctrine-bundle": "^1.8|^2.0", "doctrine/doctrine-bundle": "^1.8|^2.0",
"doctrine/orm": "^2.3", "doctrine/orm": "^2.3",
"friendsofphp/php-cs-fixer": "^2.8", "friendsofphp/php-cs-fixer": "^2.8",
@ -5565,7 +5974,7 @@
"type": "symfony-bundle", "type": "symfony-bundle",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.0-dev" "dev-main": "1.0-dev"
} }
}, },
"autoload": { "autoload": {
@ -5591,27 +6000,27 @@
"scaffold", "scaffold",
"scaffolding" "scaffolding"
], ],
"time": "2019-11-07T00:56:03+00:00" "time": "2021-02-07T01:02:28+00:00"
}, },
{ {
"name": "symfony/phpunit-bridge", "name": "symfony/phpunit-bridge",
"version": "v3.4.35", "version": "v3.4.47",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/phpunit-bridge.git", "url": "https://github.com/symfony/phpunit-bridge.git",
"reference": "cbea8818e9f34e4e9d780bd22bdda21b57d4d5c7" "reference": "120273ad5d03a8deee08ca9260e2598f288f2bac"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/cbea8818e9f34e4e9d780bd22bdda21b57d4d5c7", "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/120273ad5d03a8deee08ca9260e2598f288f2bac",
"reference": "cbea8818e9f34e4e9d780bd22bdda21b57d4d5c7", "reference": "120273ad5d03a8deee08ca9260e2598f288f2bac",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.3" "php": ">=5.3.3"
}, },
"conflict": { "conflict": {
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0|<6.4,>=6.0|9.1.2"
}, },
"suggest": { "suggest": {
"symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" "symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader"
@ -5621,9 +6030,6 @@
], ],
"type": "symfony-bridge", "type": "symfony-bridge",
"extra": { "extra": {
"branch-alias": {
"dev-master": "3.4-dev"
},
"thanks": { "thanks": {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"url": "https://github.com/sebastianbergmann/phpunit" "url": "https://github.com/sebastianbergmann/phpunit"
@ -5656,7 +6062,7 @@
], ],
"description": "Symfony PHPUnit Bridge", "description": "Symfony PHPUnit Bridge",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2019-09-30T20:33:19+00:00" "time": "2020-11-13T16:28:59+00:00"
} }
], ],
"aliases": [], "aliases": [],
@ -5667,8 +6073,5 @@
"platform": { "platform": {
"php": ">=7" "php": ">=7"
}, },
"platform-dev": [], "platform-dev": []
"platform-overrides": {
"php": "7.2"
}
} }

View File

@ -0,0 +1,84 @@
{
"name": "symfony/framework-standard-edition",
"license": "MIT",
"type": "project",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
"psr-4": {
"": "src/"
},
"classmap": [ "app/AppKernel.php", "app/AppCache.php" ]
},
"autoload-dev": {
"psr-4": { "Tests\\": "tests/" },
"files": [ "vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php" ]
},
"require": {
"php": ">=7",
"debril/rss-atom-bundle": "^4.0",
"doctrine/doctrine-bundle": "^1.6",
"doctrine/doctrine-cache-bundle": "^1.2",
"doctrine/doctrine-fixtures-bundle": "^2.3",
"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",
"lightsaml/sp-bundle": "^1.2",
"oneup/uploader-bundle": "^1.7",
"ramsey/uuid": "^3.7",
"sensio/distribution-bundle": "^5.0.19",
"sensio/framework-extra-bundle": "^5.0.0",
"symfony/assetic-bundle": "^2.8",
"symfony/ldap": "^3.4",
"symfony/monolog-bundle": "3.4.*",
"symfony/orm-pack": "^1.0",
"symfony/polyfill-apcu": "^1.0",
"symfony/swiftmailer-bundle": "^2.6.4",
"symfony/symfony": "3.4.*",
"tetranz/select2entity-bundle": "2.*",
"thecsea/simple-caldav-client": "^0.1.10",
"mashape/unirest-php": "3.*",
"twig/twig": "^1.0||^2.0"
},
"require-dev": {
"sensio/generator-bundle": "^3.0",
"symfony/maker-bundle": "^1.5",
"symfony/phpunit-bridge": "^3.0"
},
"scripts": {
"symfony-scripts": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
],
"post-install-cmd": [
"@symfony-scripts"
],
"post-update-cmd": [
"@symfony-scripts"
]
},
"config": {
"sort-packages": true
},
"extra": {
"symfony-app-dir": "app",
"symfony-bin-dir": "bin",
"symfony-var-dir": "var",
"symfony-web-dir": "web",
"symfony-tests-dir": "tests",
"symfony-assets-install": "relative",
"incenteev-parameters": {
"file": "app/config/parameters.yml"
},
"branch-alias": {
"dev-master": "3.4-dev"
}
}
}

View File

@ -0,0 +1,6239 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "126af2a560491e610bf6530facf116c5",
"packages": [
{
"name": "cboden/ratchet",
"version": "v0.4.3",
"source": {
"type": "git",
"url": "https://github.com/ratchetphp/Ratchet.git",
"reference": "466a0ecc83209c75b76645eb823401b5c52e5f21"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ratchetphp/Ratchet/zipball/466a0ecc83209c75b76645eb823401b5c52e5f21",
"reference": "466a0ecc83209c75b76645eb823401b5c52e5f21",
"shasum": ""
},
"require": {
"guzzlehttp/psr7": "^1.0",
"php": ">=5.4.2",
"ratchet/rfc6455": "^0.3",
"react/socket": "^1.0 || ^0.8 || ^0.7 || ^0.6 || ^0.5",
"symfony/http-foundation": "^2.6|^3.0|^4.0|^5.0",
"symfony/routing": "^2.6|^3.0|^4.0|^5.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"
},
{
"name": "Matt Bonneau",
"role": "Developer"
}
],
"description": "PHP WebSocket library",
"homepage": "http://socketo.me",
"keywords": [
"Ratchet",
"WebSockets",
"server",
"sockets",
"websocket"
],
"time": "2020-07-07T15:50:14+00:00"
},
{
"name": "composer/package-versions-deprecated",
"version": "1.8.2",
"source": {
"type": "git",
"url": "https://github.com/composer/package-versions-deprecated.git",
"reference": "7a8001fe2c9befad9d001bf54ef0b4a17d950d0f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/7a8001fe2c9befad9d001bf54ef0b4a17d950d0f",
"reference": "7a8001fe2c9befad9d001bf54ef0b4a17d950d0f",
"shasum": ""
},
"require": {
"composer-plugin-api": "^1.1.0 || ^2.0",
"php": "^7"
},
"replace": {
"ocramius/package-versions": "1.8.99"
},
"require-dev": {
"composer/composer": "^1.9.3 || ^2.0@dev",
"ext-zip": "^1.13",
"phpunit/phpunit": "^6.5 || ^7"
},
"type": "composer-plugin",
"extra": {
"class": "PackageVersions\\Installer",
"branch-alias": {
"dev-master": "1.x-dev"
}
},
"autoload": {
"psr-4": {
"PackageVersions\\": "src/PackageVersions"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com"
},
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be"
}
],
"description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
"funding": [
{
"url": "https://packagist.com",
"type": "custom"
},
{
"url": "https://github.com/composer",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
"type": "tidelift"
}
],
"time": "2020-07-10T14:10:26+00:00"
},
{
"name": "debril/feed-io",
"version": "v4.8.0",
"source": {
"type": "git",
"url": "https://github.com/alexdebril/feed-io.git",
"reference": "5239890978c8136668a052fbf3f1302512cd6a9a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/alexdebril/feed-io/zipball/5239890978c8136668a052fbf3f1302512cd6a9a",
"reference": "5239890978c8136668a052fbf3f1302512cd6a9a",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-json": "*",
"ext-libxml": "*",
"guzzlehttp/guzzle": "~6.2|~7.0",
"php": ">=7.1",
"psr/log": "~1.0",
"symfony/console": "~3.4|~4.0|~5.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^2.4",
"monolog/monolog": "1.*",
"phpunit/phpunit": "~9.3.0"
},
"suggest": {
"monolog/monolog": "Allows to handle logs"
},
"bin": [
"bin/feedio"
],
"type": "library",
"autoload": {
"psr-4": {
"FeedIo\\": "src/FeedIo"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Alexandre Debril",
"email": "alex.debril@gmail.com"
}
],
"description": "PHP library built to consume and serve JSONFeed / RSS / Atom feeds",
"homepage": "https://feed-io.net",
"keywords": [
"atom",
"cli",
"client",
"feed",
"jsonfeed",
"news",
"rss"
],
"time": "2021-01-29T16:42:17+00:00"
},
{
"name": "debril/rss-atom-bundle",
"version": "v4.3.0",
"target-dir": "Debril/RssAtomBundle",
"source": {
"type": "git",
"url": "https://github.com/alexdebril/rss-atom-bundle.git",
"reference": "5c0ef9b1f6a9ca058904c2adadb94cd306df9278"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/alexdebril/rss-atom-bundle/zipball/5c0ef9b1f6a9ca058904c2adadb94cd306df9278",
"reference": "5c0ef9b1f6a9ca058904c2adadb94cd306df9278",
"shasum": ""
},
"require": {
"debril/feed-io": "~3.0|~4.0",
"php": ">=7.1",
"symfony/config": "~3.4|~4.0",
"symfony/dependency-injection": "~3.4|~4.0",
"symfony/http-foundation": "~3.4|~4.0",
"symfony/http-kernel": "~3.4|~4.0"
},
"require-dev": {
"doctrine/common": "~2.3",
"doctrine/doctrine-bundle": "~1.2",
"phpunit/phpunit": "~7.0",
"symfony/browser-kit": ">3.0",
"symfony/finder": ">3.0",
"symfony/validator": ">3.0",
"symfony/yaml": "^4.0"
},
"suggest": {
"doctrine/doctrine-bundle": "allow to provide feeds' content from database"
},
"type": "symfony-bundle",
"autoload": {
"psr-0": {
"Debril\\RssAtomBundle": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "RSS / Atom and JSONFeed support for Symfony",
"homepage": "http://debril.org/category/rss-atom-bundle/",
"keywords": [
"Syndication",
"atom",
"feed",
"jsonfeed",
"rss"
],
"time": "2019-08-09T13:22:15+00:00"
},
{
"name": "doctrine/annotations",
"version": "1.11.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/annotations.git",
"reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/annotations/zipball/ce77a7ba1770462cd705a91a151b6c3746f9c6ad",
"reference": "ce77a7ba1770462cd705a91a151b6c3746f9c6ad",
"shasum": ""
},
"require": {
"doctrine/lexer": "1.*",
"ext-tokenizer": "*",
"php": "^7.1 || ^8.0"
},
"require-dev": {
"doctrine/cache": "1.*",
"doctrine/coding-standard": "^6.0 || ^8.1",
"phpstan/phpstan": "^0.12.20",
"phpunit/phpunit": "^7.5 || ^9.1.5"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.11.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
}
],
"description": "Docblock Annotations Parser",
"homepage": "https://www.doctrine-project.org/projects/annotations.html",
"keywords": [
"annotations",
"docblock",
"parser"
],
"time": "2020-10-26T10:28:16+00:00"
},
{
"name": "doctrine/cache",
"version": "1.10.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/cache.git",
"reference": "13e3381b25847283a91948d04640543941309727"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/cache/zipball/13e3381b25847283a91948d04640543941309727",
"reference": "13e3381b25847283a91948d04640543941309727",
"shasum": ""
},
"require": {
"php": "~7.1 || ^8.0"
},
"conflict": {
"doctrine/common": ">2.2,<2.4"
},
"require-dev": {
"alcaeus/mongo-php-adapter": "^1.1",
"doctrine/coding-standard": "^6.0",
"mongodb/mongodb": "^1.1",
"phpunit/phpunit": "^7.0",
"predis/predis": "~1.0"
},
"suggest": {
"alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.9.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
}
],
"description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.",
"homepage": "https://www.doctrine-project.org/projects/cache.html",
"keywords": [
"abstraction",
"apcu",
"cache",
"caching",
"couchdb",
"memcached",
"php",
"redis",
"xcache"
],
"time": "2020-07-07T18:54:01+00:00"
},
{
"name": "doctrine/collections",
"version": "1.6.7",
"source": {
"type": "git",
"url": "https://github.com/doctrine/collections.git",
"reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/collections/zipball/55f8b799269a1a472457bd1a41b4f379d4cfba4a",
"reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a",
"shasum": ""
},
"require": {
"php": "^7.1.3 || ^8.0"
},
"require-dev": {
"doctrine/coding-standard": "^6.0",
"phpstan/phpstan-shim": "^0.9.2",
"phpunit/phpunit": "^7.0",
"vimeo/psalm": "^3.8.1"
},
"type": "library",
"autoload": {
"psr-4": {
"Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
}
],
"description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.",
"homepage": "https://www.doctrine-project.org/projects/collections.html",
"keywords": [
"array",
"collections",
"iterators",
"php"
],
"time": "2020-07-27T17:53:49+00:00"
},
{
"name": "doctrine/common",
"version": "2.13.3",
"source": {
"type": "git",
"url": "https://github.com/doctrine/common.git",
"reference": "f3812c026e557892c34ef37f6ab808a6b567da7f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/common/zipball/f3812c026e557892c34ef37f6ab808a6b567da7f",
"reference": "f3812c026e557892c34ef37f6ab808a6b567da7f",
"shasum": ""
},
"require": {
"doctrine/annotations": "^1.0",
"doctrine/cache": "^1.0",
"doctrine/collections": "^1.0",
"doctrine/event-manager": "^1.0",
"doctrine/inflector": "^1.0",
"doctrine/lexer": "^1.0",
"doctrine/persistence": "^1.3.3",
"doctrine/reflection": "^1.0",
"php": "^7.1 || ^8.0"
},
"require-dev": {
"doctrine/coding-standard": "^1.0",
"phpstan/phpstan": "^0.11",
"phpstan/phpstan-phpunit": "^0.11",
"phpunit/phpunit": "^7.0",
"squizlabs/php_codesniffer": "^3.0",
"symfony/phpunit-bridge": "^4.0.5"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.11.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\Common\\": "lib/Doctrine/Common"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
},
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com"
}
],
"description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, persistence interfaces, proxies, event system and much more.",
"homepage": "https://www.doctrine-project.org/projects/common.html",
"keywords": [
"common",
"doctrine",
"php"
],
"time": "2020-06-05T16:46:05+00:00"
},
{
"name": "doctrine/data-fixtures",
"version": "1.5.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/data-fixtures.git",
"reference": "51d3d4880d28951fff42a635a2389f8c63baddc5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/51d3d4880d28951fff42a635a2389f8c63baddc5",
"reference": "51d3d4880d28951fff42a635a2389f8c63baddc5",
"shasum": ""
},
"require": {
"doctrine/common": "^2.13|^3.0",
"doctrine/persistence": "^1.3.3|^2.0",
"php": "^7.2 || ^8.0"
},
"conflict": {
"doctrine/phpcr-odm": "<1.3.0"
},
"require-dev": {
"doctrine/coding-standard": "^8.2",
"doctrine/dbal": "^2.5.4",
"doctrine/mongodb-odm": "^1.3.0 || ^2.0.0",
"doctrine/orm": "^2.7.0",
"ext-sqlite3": "*",
"phpunit/phpunit": "^8.0"
},
"suggest": {
"alcaeus/mongo-php-adapter": "For using MongoDB ODM 1.3 with PHP 7 (deprecated)",
"doctrine/mongodb-odm": "For loading MongoDB ODM fixtures",
"doctrine/orm": "For loading ORM fixtures",
"doctrine/phpcr-odm": "For loading PHPCR ODM fixtures"
},
"type": "library",
"autoload": {
"psr-4": {
"Doctrine\\Common\\DataFixtures\\": "lib/Doctrine/Common/DataFixtures"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
}
],
"description": "Data Fixtures for all Doctrine Object Managers",
"homepage": "http://www.doctrine-project.org",
"keywords": [
"database"
],
"time": "2021-01-23T10:20:43+00:00"
},
{
"name": "doctrine/dbal",
"version": "2.12.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
"reference": "adce7a954a1c2f14f85e94aed90c8489af204086"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/adce7a954a1c2f14f85e94aed90c8489af204086",
"reference": "adce7a954a1c2f14f85e94aed90c8489af204086",
"shasum": ""
},
"require": {
"doctrine/cache": "^1.0",
"doctrine/event-manager": "^1.0",
"ext-pdo": "*",
"php": "^7.3 || ^8"
},
"require-dev": {
"doctrine/coding-standard": "^8.1",
"jetbrains/phpstorm-stubs": "^2019.1",
"phpstan/phpstan": "^0.12.40",
"phpunit/phpunit": "^9.4",
"psalm/plugin-phpunit": "^0.10.0",
"symfony/console": "^2.0.5|^3.0|^4.0|^5.0",
"vimeo/psalm": "^3.17.2"
},
"suggest": {
"symfony/console": "For helpful console commands such as SQL execution and import of files."
},
"bin": [
"bin/doctrine-dbal"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "4.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\DBAL\\": "lib/Doctrine/DBAL"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
}
],
"description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
"homepage": "https://www.doctrine-project.org/projects/dbal.html",
"keywords": [
"abstraction",
"database",
"db2",
"dbal",
"mariadb",
"mssql",
"mysql",
"oci8",
"oracle",
"pdo",
"pgsql",
"postgresql",
"queryobject",
"sasql",
"sql",
"sqlanywhere",
"sqlite",
"sqlserver",
"sqlsrv"
],
"funding": [
{
"url": "https://www.doctrine-project.org/sponsorship.html",
"type": "custom"
},
{
"url": "https://www.patreon.com/phpdoctrine",
"type": "patreon"
},
{
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal",
"type": "tidelift"
}
],
"time": "2020-11-14T20:26:58+00:00"
},
{
"name": "doctrine/doctrine-bundle",
"version": "1.12.13",
"source": {
"type": "git",
"url": "https://github.com/doctrine/DoctrineBundle.git",
"reference": "85460b85edd8f61a16ad311e7ffc5d255d3c937c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/85460b85edd8f61a16ad311e7ffc5d255d3c937c",
"reference": "85460b85edd8f61a16ad311e7ffc5d255d3c937c",
"shasum": ""
},
"require": {
"doctrine/dbal": "^2.5.12|^3.0",
"doctrine/doctrine-cache-bundle": "~1.2",
"doctrine/persistence": "^1.3.3",
"jdorn/sql-formatter": "^1.2.16",
"php": "^7.1 || ^8.0",
"symfony/cache": "^3.4.30|^4.3.3",
"symfony/config": "^3.4.30|^4.3.3",
"symfony/console": "^3.4.30|^4.3.3",
"symfony/dependency-injection": "^3.4.30|^4.3.3",
"symfony/doctrine-bridge": "^3.4.30|^4.3.3",
"symfony/framework-bundle": "^3.4.30|^4.3.3",
"symfony/service-contracts": "^1.1.1|^2.0"
},
"conflict": {
"doctrine/orm": "<2.6",
"twig/twig": "<1.34|>=2.0,<2.4"
},
"require-dev": {
"doctrine/coding-standard": "^6.0",
"doctrine/orm": "^2.6",
"ocramius/proxy-manager": "^2.1",
"php-coveralls/php-coveralls": "^2.1",
"phpunit/phpunit": "^7.5",
"symfony/phpunit-bridge": "^4.2",
"symfony/property-info": "^3.4.30|^4.3.3",
"symfony/proxy-manager-bridge": "^3.4|^4|^5",
"symfony/twig-bridge": "^3.4|^4.1",
"symfony/validator": "^3.4.30|^4.3.3",
"symfony/web-profiler-bundle": "^3.4.30|^4.3.3",
"symfony/yaml": "^3.4.30|^4.3.3",
"twig/twig": "^1.34|^2.12"
},
"suggest": {
"doctrine/orm": "The Doctrine ORM integration is optional in the bundle.",
"symfony/web-profiler-bundle": "To use the data collector."
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "2.3.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\Bundle\\DoctrineBundle\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Doctrine Project",
"homepage": "http://www.doctrine-project.org/"
}
],
"description": "Symfony DoctrineBundle",
"homepage": "http://www.doctrine-project.org",
"keywords": [
"database",
"dbal",
"orm",
"persistence"
],
"time": "2020-11-14T13:38:44+00:00"
},
{
"name": "doctrine/doctrine-cache-bundle",
"version": "1.4.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/DoctrineCacheBundle.git",
"reference": "6bee2f9b339847e8a984427353670bad4e7bdccb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/6bee2f9b339847e8a984427353670bad4e7bdccb",
"reference": "6bee2f9b339847e8a984427353670bad4e7bdccb",
"shasum": ""
},
"require": {
"doctrine/cache": "^1.4.2",
"doctrine/inflector": "^1.0",
"php": "^7.1",
"symfony/doctrine-bridge": "^3.4|^4.0"
},
"require-dev": {
"instaclick/coding-standard": "~1.1",
"instaclick/object-calisthenics-sniffs": "dev-master",
"instaclick/symfony2-coding-standard": "dev-remaster",
"phpunit/phpunit": "^7.0",
"predis/predis": "~0.8",
"satooshi/php-coveralls": "^1.0",
"squizlabs/php_codesniffer": "~1.5",
"symfony/console": "^3.4|^4.0",
"symfony/finder": "^3.4|^4.0",
"symfony/framework-bundle": "^3.4|^4.0",
"symfony/phpunit-bridge": "^3.4|^4.0",
"symfony/security-acl": "^2.8",
"symfony/validator": "^3.4|^4.0",
"symfony/yaml": "^3.4|^4.0"
},
"suggest": {
"symfony/security-acl": "For using this bundle to cache ACLs"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "1.4.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\Bundle\\DoctrineCacheBundle\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Fabio B. Silva",
"email": "fabio.bat.silva@gmail.com"
},
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@hotmail.com"
},
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Doctrine Project",
"homepage": "http://www.doctrine-project.org/"
}
],
"description": "Symfony Bundle for Doctrine Cache",
"homepage": "https://www.doctrine-project.org",
"keywords": [
"cache",
"caching"
],
"abandoned": true,
"time": "2019-11-29T11:22:01+00:00"
},
{
"name": "doctrine/doctrine-fixtures-bundle",
"version": "v2.4.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/DoctrineFixturesBundle.git",
"reference": "74b8cc70a4a25b774628ee59f4cdf3623a146273"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/74b8cc70a4a25b774628ee59f4cdf3623a146273",
"reference": "74b8cc70a4a25b774628ee59f4cdf3623a146273",
"shasum": ""
},
"require": {
"doctrine/data-fixtures": "~1.0",
"doctrine/doctrine-bundle": "~1.0",
"php": ">=5.3.2",
"symfony/doctrine-bridge": "~2.7|~3.0|~4.0"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "2.4.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\Bundle\\FixturesBundle\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Doctrine Project",
"homepage": "http://www.doctrine-project.org"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Symfony DoctrineFixturesBundle",
"homepage": "http://www.doctrine-project.org",
"keywords": [
"Fixture",
"persistence"
],
"time": "2017-10-30T19:26:42+00:00"
},
{
"name": "doctrine/doctrine-migrations-bundle",
"version": "v1.3.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/DoctrineMigrationsBundle.git",
"reference": "49fa399181db4bf4f9f725126bd1cb65c4398dce"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/49fa399181db4bf4f9f725126bd1cb65c4398dce",
"reference": "49fa399181db4bf4f9f725126bd1cb65c4398dce",
"shasum": ""
},
"require": {
"doctrine/doctrine-bundle": "~1.0",
"doctrine/migrations": "^1.1",
"php": ">=5.4.0",
"symfony/framework-bundle": "~2.7|~3.3|~4.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^7.4"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "1.3-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\Bundle\\MigrationsBundle\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Doctrine Project",
"homepage": "http://www.doctrine-project.org"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Symfony DoctrineMigrationsBundle",
"homepage": "http://www.doctrine-project.org",
"keywords": [
"dbal",
"migrations",
"schema"
],
"time": "2018-12-03T11:55:33+00:00"
},
{
"name": "doctrine/event-manager",
"version": "1.1.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/event-manager.git",
"reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f",
"reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f",
"shasum": ""
},
"require": {
"php": "^7.1 || ^8.0"
},
"conflict": {
"doctrine/common": "<2.9@dev"
},
"require-dev": {
"doctrine/coding-standard": "^6.0",
"phpunit/phpunit": "^7.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\Common\\": "lib/Doctrine/Common"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
},
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com"
}
],
"description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.",
"homepage": "https://www.doctrine-project.org/projects/event-manager.html",
"keywords": [
"event",
"event dispatcher",
"event manager",
"event system",
"events"
],
"time": "2020-05-29T18:28:51+00:00"
},
{
"name": "doctrine/inflector",
"version": "1.4.3",
"source": {
"type": "git",
"url": "https://github.com/doctrine/inflector.git",
"reference": "4650c8b30c753a76bf44fb2ed00117d6f367490c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/inflector/zipball/4650c8b30c753a76bf44fb2ed00117d6f367490c",
"reference": "4650c8b30c753a76bf44fb2ed00117d6f367490c",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8.0"
},
"require-dev": {
"doctrine/coding-standard": "^7.0",
"phpstan/phpstan": "^0.11",
"phpstan/phpstan-phpunit": "^0.11",
"phpstan/phpstan-strict-rules": "^0.11",
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector",
"Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
}
],
"description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
"homepage": "https://www.doctrine-project.org/projects/inflector.html",
"keywords": [
"inflection",
"inflector",
"lowercase",
"manipulation",
"php",
"plural",
"singular",
"strings",
"uppercase",
"words"
],
"time": "2020-05-29T07:19:59+00:00"
},
{
"name": "doctrine/instantiator",
"version": "1.4.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/instantiator.git",
"reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b",
"reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b",
"shasum": ""
},
"require": {
"php": "^7.1 || ^8.0"
},
"require-dev": {
"doctrine/coding-standard": "^8.0",
"ext-pdo": "*",
"ext-phar": "*",
"phpbench/phpbench": "^0.13 || 1.0.0-alpha2",
"phpstan/phpstan": "^0.12",
"phpstan/phpstan-phpunit": "^0.12",
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com",
"homepage": "https://ocramius.github.io/"
}
],
"description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
"homepage": "https://www.doctrine-project.org/projects/instantiator.html",
"keywords": [
"constructor",
"instantiate"
],
"time": "2020-11-10T18:47:58+00:00"
},
{
"name": "doctrine/lexer",
"version": "1.2.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/lexer.git",
"reference": "e864bbf5904cb8f5bb334f99209b48018522f042"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042",
"reference": "e864bbf5904cb8f5bb334f99209b48018522f042",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8.0"
},
"require-dev": {
"doctrine/coding-standard": "^6.0",
"phpstan/phpstan": "^0.11.8",
"phpunit/phpunit": "^8.2"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.2.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
}
],
"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",
"php"
],
"time": "2020-05-25T17:44:05+00:00"
},
{
"name": "doctrine/migrations",
"version": "v1.8.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/migrations.git",
"reference": "215438c0eef3e5f9b7da7d09c6b90756071b43e6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/migrations/zipball/215438c0eef3e5f9b7da7d09c6b90756071b43e6",
"reference": "215438c0eef3e5f9b7da7d09c6b90756071b43e6",
"shasum": ""
},
"require": {
"doctrine/dbal": "~2.6",
"ocramius/proxy-manager": "^1.0|^2.0",
"php": "^7.1",
"symfony/console": "~3.3|^4.0"
},
"require-dev": {
"doctrine/coding-standard": "^1.0",
"doctrine/orm": "~2.5",
"jdorn/sql-formatter": "~1.1",
"mikey179/vfsstream": "^1.6",
"phpunit/phpunit": "~7.0",
"squizlabs/php_codesniffer": "^3.0",
"symfony/yaml": "~3.3|^4.0"
},
"suggest": {
"jdorn/sql-formatter": "Allows to generate formatted SQL with the diff command.",
"symfony/yaml": "Allows the use of yaml for migration configuration files."
},
"bin": [
"bin/doctrine-migrations"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "v1.8.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\DBAL\\Migrations\\": "lib/Doctrine/DBAL/Migrations",
"Doctrine\\Migrations\\": "lib/Doctrine/Migrations"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Michael Simonson",
"email": "contact@mikesimonson.com"
}
],
"description": "Database Schema migrations using Doctrine DBAL",
"homepage": "https://www.doctrine-project.org/projects/migrations.html",
"keywords": [
"database",
"migrations"
],
"time": "2018-06-06T21:00:30+00:00"
},
{
"name": "doctrine/orm",
"version": "2.7.5",
"source": {
"type": "git",
"url": "https://github.com/doctrine/orm.git",
"reference": "01187c9260cd085529ddd1273665217cae659640"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/orm/zipball/01187c9260cd085529ddd1273665217cae659640",
"reference": "01187c9260cd085529ddd1273665217cae659640",
"shasum": ""
},
"require": {
"composer/package-versions-deprecated": "^1.8",
"doctrine/annotations": "^1.11.1",
"doctrine/cache": "^1.9.1",
"doctrine/collections": "^1.5",
"doctrine/common": "^2.11 || ^3.0",
"doctrine/dbal": "^2.9.3",
"doctrine/event-manager": "^1.1",
"doctrine/inflector": "^1.0",
"doctrine/instantiator": "^1.3",
"doctrine/lexer": "^1.0",
"doctrine/persistence": "^1.3.3 || ^2.0",
"ext-pdo": "*",
"php": "^7.1",
"symfony/console": "^3.0|^4.0|^5.0"
},
"require-dev": {
"doctrine/coding-standard": "^6.0",
"phpstan/phpstan": "^0.12.18",
"phpunit/phpunit": "^8.0",
"symfony/yaml": "^3.4|^4.0|^5.0",
"vimeo/psalm": "^3.11"
},
"suggest": {
"symfony/yaml": "If you want to use YAML Metadata Mapping Driver"
},
"bin": [
"bin/doctrine"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.7.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\ORM\\": "lib/Doctrine/ORM"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com"
}
],
"description": "Object-Relational-Mapper for PHP",
"homepage": "https://www.doctrine-project.org/projects/orm.html",
"keywords": [
"database",
"orm"
],
"time": "2020-12-03T08:52:14+00:00"
},
{
"name": "doctrine/persistence",
"version": "1.3.8",
"source": {
"type": "git",
"url": "https://github.com/doctrine/persistence.git",
"reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/persistence/zipball/7a6eac9fb6f61bba91328f15aa7547f4806ca288",
"reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288",
"shasum": ""
},
"require": {
"doctrine/annotations": "^1.0",
"doctrine/cache": "^1.0",
"doctrine/collections": "^1.0",
"doctrine/event-manager": "^1.0",
"doctrine/reflection": "^1.2",
"php": "^7.1 || ^8.0"
},
"conflict": {
"doctrine/common": "<2.10@dev"
},
"require-dev": {
"doctrine/coding-standard": "^6.0",
"phpstan/phpstan": "^0.11",
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
"vimeo/psalm": "^3.11"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.3.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\Common\\": "lib/Doctrine/Common",
"Doctrine\\Persistence\\": "lib/Doctrine/Persistence"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
},
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com"
}
],
"description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.",
"homepage": "https://doctrine-project.org/projects/persistence.html",
"keywords": [
"mapper",
"object",
"odm",
"orm",
"persistence"
],
"time": "2020-06-20T12:56:16+00:00"
},
{
"name": "doctrine/reflection",
"version": "1.2.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/reflection.git",
"reference": "fa587178be682efe90d005e3a322590d6ebb59a5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/reflection/zipball/fa587178be682efe90d005e3a322590d6ebb59a5",
"reference": "fa587178be682efe90d005e3a322590d6ebb59a5",
"shasum": ""
},
"require": {
"doctrine/annotations": "^1.0",
"ext-tokenizer": "*",
"php": "^7.1 || ^8.0"
},
"conflict": {
"doctrine/common": "<2.9"
},
"require-dev": {
"doctrine/coding-standard": "^6.0 || ^8.2.0",
"doctrine/common": "^2.10",
"phpstan/phpstan": "^0.11.0 || ^0.12.20",
"phpstan/phpstan-phpunit": "^0.11.0 || ^0.12.16",
"phpunit/phpunit": "^7.5 || ^9.1.5"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.2.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\Common\\": "lib/Doctrine/Common"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
},
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com"
}
],
"description": "The Doctrine Reflection project is a simple library used by the various Doctrine projects which adds some additional functionality on top of the reflection functionality that comes with PHP. It allows you to get the reflection information about classes, methods and properties statically.",
"homepage": "https://www.doctrine-project.org/projects/reflection.html",
"keywords": [
"reflection",
"static"
],
"abandoned": "roave/better-reflection",
"time": "2020-10-27T21:46:55+00:00"
},
{
"name": "egeloen/ckeditor-bundle",
"version": "6.0.1",
"source": {
"type": "git",
"url": "https://github.com/egeloen/IvoryCKEditorBundle.git",
"reference": "9c9926918d3ae4b4d89ca2db578766ab9829ee7a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/egeloen/IvoryCKEditorBundle/zipball/9c9926918d3ae4b4d89ca2db578766ab9829ee7a",
"reference": "9c9926918d3ae4b4d89ca2db578766ab9829ee7a",
"shasum": ""
},
"require": {
"egeloen/json-builder": "^2.0|^3.0",
"php": "^5.6|^7.0",
"symfony/dependency-injection": "^2.7|^3.0",
"symfony/form": "^2.7|^3.0",
"symfony/framework-bundle": "^2.7|^3.0"
},
"require-dev": {
"composer/composer": "^1.0",
"friendsofphp/php-cs-fixer": "^2.0",
"phpunit/phpunit": "^5.0|^6.0",
"sensio/distribution-bundle": "^3.0.12|^4.0|^5.0",
"symfony/asset": "^2.7|^3.0",
"symfony/console": "^2.7|^3.0",
"symfony/phpunit-bridge": "^2.7|^3.0",
"symfony/templating": "^2.7|^3.0",
"symfony/twig-bridge": "^2.7|^3.0",
"symfony/yaml": "^2.7|^3.0",
"twig/twig": "^1.12"
},
"suggest": {
"egeloen/form-extra-bundle": "Allows to load CKEditor asynchronously",
"sensio/distribution-bundle": "Allows to install CKEditor via a script handler",
"symfony/asset": "Allows to rewrite/version assets",
"symfony/templating": "Allows to use PHP templates",
"symfony/twig-bridge": "Allows to use Twig templates",
"twig/twig": "Allows to use Twig templates"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "6.0-dev"
}
},
"autoload": {
"psr-4": {
"Ivory\\CKEditorBundle\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Eric GELOEN",
"email": "geloen.eric@gmail.com"
}
],
"description": "Provides a CKEditor integration for your Symfony2 Project.",
"keywords": [
"CKEditor"
],
"time": "2017-08-18T08:19:45+00:00"
},
{
"name": "egeloen/json-builder",
"version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/egeloen/ivory-json-builder.git",
"reference": "3e70bc681891d8aca88dd72164caea659739f284"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/egeloen/ivory-json-builder/zipball/3e70bc681891d8aca88dd72164caea659739f284",
"reference": "3e70bc681891d8aca88dd72164caea659739f284",
"shasum": ""
},
"require": {
"ext-json": "*",
"php": "^5.6|^7.0",
"symfony/property-access": "^2.7|^3.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^2.0",
"phpunit/phpunit": "^5.0",
"symfony/phpunit-bridge": "^2.7|^3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.0-dev"
}
},
"autoload": {
"psr-4": {
"Ivory\\JsonBuilder\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Eric GELOEN",
"email": "geloen.eric@gmail.com"
}
],
"description": "JSON builder with escaping control for PHP 5.6+",
"keywords": [
"Escape",
"builder",
"json"
],
"time": "2017-02-27T20:18:54+00:00"
},
{
"name": "evenement/evenement",
"version": "v3.0.1",
"source": {
"type": "git",
"url": "https://github.com/igorw/evenement.git",
"reference": "531bfb9d15f8aa57454f5f0285b18bec903b8fb7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/igorw/evenement/zipball/531bfb9d15f8aa57454f5f0285b18bec903b8fb7",
"reference": "531bfb9d15f8aa57454f5f0285b18bec903b8fb7",
"shasum": ""
},
"require": {
"php": ">=7.0"
},
"require-dev": {
"phpunit/phpunit": "^6.0"
},
"type": "library",
"autoload": {
"psr-0": {
"Evenement": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Igor Wiedler",
"email": "igor@wiedler.ch"
}
],
"description": "Événement is a very simple event dispatching library for PHP",
"keywords": [
"event-dispatcher",
"event-emitter"
],
"time": "2017-07-23T21:35:13+00:00"
},
{
"name": "fig/link-util",
"version": "1.1.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/link-util.git",
"reference": "5d7b8d04ed3393b4b59968ca1e906fb7186d81e8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/link-util/zipball/5d7b8d04ed3393b4b59968ca1e906fb7186d81e8",
"reference": "5d7b8d04ed3393b4b59968ca1e906fb7186d81e8",
"shasum": ""
},
"require": {
"php": ">=5.5.0",
"psr/link": "~1.0@dev"
},
"provide": {
"psr/link-implementation": "1.0"
},
"require-dev": {
"phpunit/phpunit": "^5.1",
"squizlabs/php_codesniffer": "^2.3.1"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Fig\\Link\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common utility implementations for HTTP links",
"keywords": [
"http",
"http-link",
"link",
"psr",
"psr-13",
"rest"
],
"time": "2021-02-03T23:36:04+00:00"
},
{
"name": "gos/pubsub-router-bundle",
"version": "v0.3.5",
"source": {
"type": "git",
"url": "https://github.com/GeniusesOfSymfony/PubSubRouterBundle.git",
"reference": "a3f9666455dc42f38a7ce31ca2fc55bd27421ea0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/GeniusesOfSymfony/PubSubRouterBundle/zipball/a3f9666455dc42f38a7ce31ca2fc55bd27421ea0",
"reference": "a3f9666455dc42f38a7ce31ca2fc55bd27421ea0",
"shasum": ""
},
"require": {
"doctrine/cache": "~1.4",
"php": ">=5.5",
"symfony/console": "~3.4|~4.0",
"symfony/framework-bundle": "~3.4|~4.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "0.3.x-dev"
}
},
"autoload": {
"psr-4": {
"Gos\\Bundle\\PubSubRouterBundle\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Johann Saunier",
"email": "johann_27@hotmail.fr"
}
],
"description": "Symfony PubSub Router Bundle",
"homepage": "https://github.com/GeniusesOfSymfony/PubSubRouterBundle",
"keywords": [
"PubSub Bundle",
"WAMP",
"bundle",
"pubsub",
"redis",
"zmq"
],
"time": "2018-10-04T17:09:23+00:00"
},
{
"name": "gos/web-socket-bundle",
"version": "v1.10.4",
"source": {
"type": "git",
"url": "https://github.com/GeniusesOfSymfony/WebSocketBundle.git",
"reference": "2d8dfd9dd49ee9328524f43d3afafbb50e0386b9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/GeniusesOfSymfony/WebSocketBundle/zipball/2d8dfd9dd49ee9328524f43d3afafbb50e0386b9",
"reference": "2d8dfd9dd49ee9328524f43d3afafbb50e0386b9",
"shasum": ""
},
"require": {
"cboden/ratchet": "^0.4.1",
"gos/pubsub-router-bundle": "^0.3",
"gos/websocket-client": "^0.1",
"ocramius/proxy-manager": "^1.0|^2.1",
"php": ">=7.2",
"psr/log": "^1.0",
"react/event-loop": "^1.0",
"symfony/config": "^2.3|^3.0|^4.0",
"symfony/console": "^2.3|^3.0|^4.0",
"symfony/dependency-injection": "^2.3|^3.0|^4.0",
"symfony/deprecation-contracts": "^2.1",
"symfony/event-dispatcher": "^2.3|^3.0|^4.0",
"symfony/http-foundation": "^2.3|^3.0|^4.0",
"symfony/http-kernel": "^2.3|^3.0|^4.0",
"symfony/security-core": "^2.3|^3.0|^4.0"
},
"conflict": {
"twig/twig": "<1.34|>=2.0,<2.4"
},
"suggest": {
"doctrine/cache": "^1.0 to use doctrine/cache as a client driver",
"ext-amqp": "* to use the amqp pusher",
"ext-zmq": "* to use the zmq pusher",
"gos/react-amqp": "^0.2 to use the amqp server push handler",
"predis/predis": "^1.0 to use Predis as a client driver",
"react/zmq": "^0.4 to use zmq server push handler",
"symfony/cache": "^3.1|^4.0 to use symfony/cache as a client driver",
"symfony/options-resolver": "^2.3|^3.0|^4.0 to use the pushers",
"symfony/serializer": "^2.3|^3.0|^4.0 to use the pushers",
"symfony/stopwatch": "^2.3|^3.0|^4.0 to use the data collectors",
"twig/twig": "^1.34|^2.4|^3.0 to use the Twig extension"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-1.x": "1.x-dev"
}
},
"autoload": {
"psr-4": {
"Gos\\Bundle\\WebSocketBundle\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jeremy Dare",
"email": "jeremy.d.dare@gmail.com"
},
{
"name": "Johann Saunier",
"email": "johann_27@hotmail.fr"
}
],
"description": "Symfony Web Socket Bundle",
"homepage": "https://github.com/GeniusesOfSymfony/WebSocketBundle",
"keywords": [
"Ratchet",
"WAMP",
"Web Socket Bundle",
"io",
"websocket"
],
"time": "2020-07-06T14:08:35+00:00"
},
{
"name": "gos/websocket-client",
"version": "v0.1.2",
"source": {
"type": "git",
"url": "https://github.com/GeniusesOfSymfony/WebSocketPhpClient.git",
"reference": "13bb38cb01acee648fea1a6ca4ad3dc6148da7fe"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/GeniusesOfSymfony/WebSocketPhpClient/zipball/13bb38cb01acee648fea1a6ca4ad3dc6148da7fe",
"reference": "13bb38cb01acee648fea1a6ca4ad3dc6148da7fe",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "0.1.x-dev"
}
},
"autoload": {
"psr-4": {
"Gos\\Component\\WebSocketClient\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Johann Saunier",
"email": "johann_27@hotmail.fr"
},
{
"name": "Martin Bažík",
"email": "martin@bazo.sk"
}
],
"description": "WAMP client in PHP",
"keywords": [
"Ratchet",
"WAMP",
"websocket"
],
"time": "2015-08-04T11:43:11+00:00"
},
{
"name": "gregwar/captcha",
"version": "v1.1.9",
"source": {
"type": "git",
"url": "https://github.com/Gregwar/Captcha.git",
"reference": "4bb668e6b40e3205a020ca5ee4ca8cff8b8780c5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Gregwar/Captcha/zipball/4bb668e6b40e3205a020ca5ee4ca8cff8b8780c5",
"reference": "4bb668e6b40e3205a020ca5ee4ca8cff8b8780c5",
"shasum": ""
},
"require": {
"ext-gd": "*",
"ext-mbstring": "*",
"php": ">=5.3.0",
"symfony/finder": "*"
},
"require-dev": {
"phpunit/phpunit": "^6.4"
},
"type": "captcha",
"autoload": {
"psr-4": {
"Gregwar\\": "src/Gregwar"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Grégoire Passault",
"email": "g.passault@gmail.com",
"homepage": "http://www.gregwar.com/"
},
{
"name": "Jeremy Livingston",
"email": "jeremy.j.livingston@gmail.com"
}
],
"description": "Captcha generator",
"homepage": "https://github.com/Gregwar/Captcha",
"keywords": [
"bot",
"captcha",
"spam"
],
"time": "2020-03-24T14:39:05+00:00"
},
{
"name": "gregwar/captcha-bundle",
"version": "v2.0.7",
"source": {
"type": "git",
"url": "https://github.com/Gregwar/CaptchaBundle.git",
"reference": "3ccfdf1c9324acbdfbcccea2c454075115741b3a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Gregwar/CaptchaBundle/zipball/3ccfdf1c9324acbdfbcccea2c454075115741b3a",
"reference": "3ccfdf1c9324acbdfbcccea2c454075115741b3a",
"shasum": ""
},
"require": {
"gregwar/captcha": "~1.1",
"php": ">=5.3.9",
"symfony/form": "~2.8|~3.0|~4.0",
"symfony/framework-bundle": "~2.8|~3.0|~4.0",
"twig/twig": "^1.40|^2.9"
},
"type": "captcha-bundle",
"autoload": {
"psr-4": {
"Gregwar\\CaptchaBundle\\": "/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Grégoire Passault",
"email": "g.passault@gmail.com",
"homepage": "http://www.gregwar.com/"
},
{
"name": "Jeremy Livingston",
"email": "jeremy.j.livingston@gmail.com"
}
],
"description": "Captcha bundle",
"homepage": "https://github.com/Gregwar/CaptchaBundle",
"keywords": [
"Symfony2",
"bot",
"captcha",
"code",
"security",
"spam",
"visual"
],
"time": "2019-09-23T13:07:46+00:00"
},
{
"name": "guzzlehttp/guzzle",
"version": "7.2.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
"reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/0aa74dfb41ae110835923ef10a9d803a22d50e79",
"reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79",
"shasum": ""
},
"require": {
"ext-json": "*",
"guzzlehttp/promises": "^1.4",
"guzzlehttp/psr7": "^1.7",
"php": "^7.2.5 || ^8.0",
"psr/http-client": "^1.0"
},
"provide": {
"psr/http-client-implementation": "1.0"
},
"require-dev": {
"ext-curl": "*",
"php-http/client-integration-tests": "^3.0",
"phpunit/phpunit": "^8.5.5 || ^9.3.5",
"psr/log": "^1.1"
},
"suggest": {
"ext-curl": "Required for CURL handler support",
"ext-intl": "Required for Internationalized Domain Name (IDN) support",
"psr/log": "Required for using the Log middleware"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "7.1-dev"
}
},
"autoload": {
"psr-4": {
"GuzzleHttp\\": "src/"
},
"files": [
"src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
{
"name": "Márk Sági-Kazár",
"email": "mark.sagikazar@gmail.com",
"homepage": "https://sagikazarmark.hu"
}
],
"description": "Guzzle is a PHP HTTP client library",
"homepage": "http://guzzlephp.org/",
"keywords": [
"client",
"curl",
"framework",
"http",
"http client",
"psr-18",
"psr-7",
"rest",
"web service"
],
"time": "2020-10-10T11:47:56+00:00"
},
{
"name": "guzzlehttp/promises",
"version": "1.4.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
"reference": "60d379c243457e073cff02bc323a2a86cb355631"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631",
"reference": "60d379c243457e073cff02bc323a2a86cb355631",
"shasum": ""
},
"require": {
"php": ">=5.5"
},
"require-dev": {
"symfony/phpunit-bridge": "^4.4 || ^5.1"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.4-dev"
}
},
"autoload": {
"psr-4": {
"GuzzleHttp\\Promise\\": "src/"
},
"files": [
"src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
}
],
"description": "Guzzle promises library",
"keywords": [
"promise"
],
"time": "2020-09-30T07:37:28+00:00"
},
{
"name": "guzzlehttp/psr7",
"version": "1.7.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
"reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3",
"reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3",
"shasum": ""
},
"require": {
"php": ">=5.4.0",
"psr/http-message": "~1.0",
"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.14 || ^7.5.20 || ^8.5.8 || ^9.3.10"
},
"suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.7-dev"
}
},
"autoload": {
"psr-4": {
"GuzzleHttp\\Psr7\\": "src/"
},
"files": [
"src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
{
"name": "Tobias Schultze",
"homepage": "https://github.com/Tobion"
}
],
"description": "PSR-7 message implementation that also provides common utility methods",
"keywords": [
"http",
"message",
"psr-7",
"request",
"response",
"stream",
"uri",
"url"
],
"time": "2020-09-30T07:37:11+00:00"
},
{
"name": "incenteev/composer-parameter-handler",
"version": "v2.1.4",
"source": {
"type": "git",
"url": "https://github.com/Incenteev/ParameterHandler.git",
"reference": "084befb11ec21faeadcddefb88b66132775ff59b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/084befb11ec21faeadcddefb88b66132775ff59b",
"reference": "084befb11ec21faeadcddefb88b66132775ff59b",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"symfony/yaml": "^2.3 || ^3.0 || ^4.0 || ^5.0"
},
"require-dev": {
"composer/composer": "^1.0@dev",
"symfony/filesystem": "^2.3 || ^3 || ^4 || ^5",
"symfony/phpunit-bridge": "^4.0 || ^5.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.1.x-dev"
}
},
"autoload": {
"psr-4": {
"Incenteev\\ParameterHandler\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Christophe Coevoet",
"email": "stof@notk.org"
}
],
"description": "Composer script handling your ignored parameter file",
"homepage": "https://github.com/Incenteev/ParameterHandler",
"keywords": [
"parameters management"
],
"time": "2020-03-17T21:10:00+00:00"
},
{
"name": "jasig/phpcas",
"version": "1.3.9",
"source": {
"type": "git",
"url": "https://github.com/apereo/phpCAS.git",
"reference": "7325865c4cfb5005ed4e4c5cf01823be1726a2a0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/apereo/phpCAS/zipball/7325865c4cfb5005ed4e4c5cf01823be1726a2a0",
"reference": "7325865c4cfb5005ed4e4c5cf01823be1726a2a0",
"shasum": ""
},
"require": {
"ext-curl": "*",
"php": ">=5.4.0",
"psr/log": "^1.0.0"
},
"require-dev": {
"monolog/monolog": "^1.0.0",
"phpunit/phpunit": ">=4.8.35 <8"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.3.x-dev"
}
},
"autoload": {
"classmap": [
"source/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"authors": [
{
"name": "Joachim Fritschi",
"homepage": "https://wiki.jasig.org/display/~fritschi"
},
{
"name": "Adam Franco",
"homepage": "https://wiki.jasig.org/display/~adamfranco"
}
],
"description": "Provides a simple API for authenticating users against a CAS server",
"homepage": "https://wiki.jasig.org/display/CASC/phpCAS",
"keywords": [
"apereo",
"cas",
"jasig"
],
"time": "2021-01-31T21:13:59+00:00"
},
{
"name": "jdorn/sql-formatter",
"version": "v1.2.17",
"source": {
"type": "git",
"url": "https://github.com/jdorn/sql-formatter.git",
"reference": "64990d96e0959dff8e059dfcdc1af130728d92bc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc",
"reference": "64990d96e0959dff8e059dfcdc1af130728d92bc",
"shasum": ""
},
"require": {
"php": ">=5.2.4"
},
"require-dev": {
"phpunit/phpunit": "3.7.*"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.3.x-dev"
}
},
"autoload": {
"classmap": [
"lib"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jeremy Dorn",
"email": "jeremy@jeremydorn.com",
"homepage": "http://jeremydorn.com/"
}
],
"description": "a PHP SQL highlighting library",
"homepage": "https://github.com/jdorn/sql-formatter/",
"keywords": [
"highlight",
"sql"
],
"time": "2014-01-12T16:20:24+00:00"
},
{
"name": "kriswallsmith/assetic",
"version": "v1.4.0",
"source": {
"type": "git",
"url": "https://github.com/kriswallsmith/assetic.git",
"reference": "e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/kriswallsmith/assetic/zipball/e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1",
"reference": "e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1",
"shasum": ""
},
"require": {
"php": ">=5.3.1",
"symfony/process": "~2.1|~3.0"
},
"conflict": {
"twig/twig": "<1.27"
},
"require-dev": {
"leafo/lessphp": "^0.3.7",
"leafo/scssphp": "~0.1",
"meenie/javascript-packer": "^1.1",
"mrclay/minify": "<2.3",
"natxet/cssmin": "3.0.4",
"patchwork/jsqueeze": "~1.0|~2.0",
"phpunit/phpunit": "~4.8 || ^5.6",
"psr/log": "~1.0",
"ptachoire/cssembed": "~1.0",
"symfony/phpunit-bridge": "~2.7|~3.0",
"twig/twig": "~1.23|~2.0",
"yfix/packager": "dev-master"
},
"suggest": {
"leafo/lessphp": "Assetic provides the integration with the lessphp LESS compiler",
"leafo/scssphp": "Assetic provides the integration with the scssphp SCSS compiler",
"leafo/scssphp-compass": "Assetic provides the integration with the SCSS compass plugin",
"patchwork/jsqueeze": "Assetic provides the integration with the JSqueeze JavaScript compressor",
"ptachoire/cssembed": "Assetic provides the integration with phpcssembed to embed data uris",
"twig/twig": "Assetic provides the integration with the Twig templating engine"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.4-dev"
}
},
"autoload": {
"psr-0": {
"Assetic": "src/"
},
"files": [
"src/functions.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Kris Wallsmith",
"email": "kris.wallsmith@gmail.com",
"homepage": "http://kriswallsmith.net/"
}
],
"description": "Asset Management for PHP",
"homepage": "https://github.com/kriswallsmith/assetic",
"keywords": [
"assets",
"compression",
"minification"
],
"time": "2016-11-11T18:43:20+00:00"
},
{
"name": "laminas/laminas-code",
"version": "3.5.1",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-code.git",
"reference": "b549b70c0bb6e935d497f84f750c82653326ac77"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laminas/laminas-code/zipball/b549b70c0bb6e935d497f84f750c82653326ac77",
"reference": "b549b70c0bb6e935d497f84f750c82653326ac77",
"shasum": ""
},
"require": {
"laminas/laminas-eventmanager": "^3.3",
"laminas/laminas-zendframework-bridge": "^1.1",
"php": "^7.3 || ~8.0.0"
},
"conflict": {
"phpspec/prophecy": "<1.9.0"
},
"replace": {
"zendframework/zend-code": "^3.4.1"
},
"require-dev": {
"doctrine/annotations": "^1.10.4",
"ext-phar": "*",
"laminas/laminas-coding-standard": "^1.0.0",
"laminas/laminas-stdlib": "^3.3.0",
"phpunit/phpunit": "^9.4.2"
},
"suggest": {
"doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features",
"laminas/laminas-stdlib": "Laminas\\Stdlib component"
},
"type": "library",
"autoload": {
"psr-4": {
"Laminas\\Code\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"description": "Extensions to the PHP Reflection API, static code scanning, and code generation",
"homepage": "https://laminas.dev",
"keywords": [
"code",
"laminas"
],
"funding": [
{
"url": "https://funding.communitybridge.org/projects/laminas-project",
"type": "community_bridge"
}
],
"time": "2020-11-30T20:16:31+00:00"
},
{
"name": "laminas/laminas-eventmanager",
"version": "3.3.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-eventmanager.git",
"reference": "1940ccf30e058b2fd66f5a9d696f1b5e0027b082"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laminas/laminas-eventmanager/zipball/1940ccf30e058b2fd66f5a9d696f1b5e0027b082",
"reference": "1940ccf30e058b2fd66f5a9d696f1b5e0027b082",
"shasum": ""
},
"require": {
"laminas/laminas-zendframework-bridge": "^1.0",
"php": "^7.3 || ^8.0"
},
"replace": {
"zendframework/zend-eventmanager": "^3.2.1"
},
"require-dev": {
"container-interop/container-interop": "^1.1",
"laminas/laminas-coding-standard": "~1.0.0",
"laminas/laminas-stdlib": "^2.7.3 || ^3.0",
"phpbench/phpbench": "^0.17.1",
"phpunit/phpunit": "^8.5.8"
},
"suggest": {
"container-interop/container-interop": "^1.1, to use the lazy listeners feature",
"laminas/laminas-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.3.x-dev",
"dev-develop": "3.4.x-dev"
}
},
"autoload": {
"psr-4": {
"Laminas\\EventManager\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"description": "Trigger and listen to events within a PHP application",
"homepage": "https://laminas.dev",
"keywords": [
"event",
"eventmanager",
"events",
"laminas"
],
"funding": [
{
"url": "https://funding.communitybridge.org/projects/laminas-project",
"type": "community_bridge"
}
],
"time": "2020-08-25T11:10:44+00:00"
},
{
"name": "laminas/laminas-zendframework-bridge",
"version": "1.1.1",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-zendframework-bridge.git",
"reference": "6ede70583e101030bcace4dcddd648f760ddf642"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/6ede70583e101030bcace4dcddd648f760ddf642",
"reference": "6ede70583e101030bcace4dcddd648f760ddf642",
"shasum": ""
},
"require": {
"php": "^5.6 || ^7.0 || ^8.0"
},
"require-dev": {
"phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.1 || ^9.3",
"squizlabs/php_codesniffer": "^3.5"
},
"type": "library",
"extra": {
"laminas": {
"module": "Laminas\\ZendFrameworkBridge"
}
},
"autoload": {
"files": [
"src/autoload.php"
],
"psr-4": {
"Laminas\\ZendFrameworkBridge\\": "src//"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"description": "Alias legacy ZF class names to Laminas Project equivalents.",
"keywords": [
"ZendFramework",
"autoloading",
"laminas",
"zf"
],
"funding": [
{
"url": "https://funding.communitybridge.org/projects/laminas-project",
"type": "community_bridge"
}
],
"time": "2020-09-14T14:23:00+00:00"
},
{
"name": "lightsaml/lightsaml",
"version": "1.4.1",
"source": {
"type": "git",
"url": "https://github.com/lightSAML/lightSAML.git",
"reference": "377f04d1fb25f2fb2e72dabeff10b336f1cbe4c5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/lightSAML/lightSAML/zipball/377f04d1fb25f2fb2e72dabeff10b336f1cbe4c5",
"reference": "377f04d1fb25f2fb2e72dabeff10b336f1cbe4c5",
"shasum": ""
},
"require": {
"php": ">=5.6",
"robrichards/xmlseclibs": "~2.0|~3.0|~4.0",
"symfony/event-dispatcher": "~2.3|~3.0|~4.0",
"symfony/http-foundation": "~2.3|~3.0|~4.0"
},
"require-dev": {
"monolog/monolog": "~1.3",
"phpunit/phpunit": ">=5.7",
"pimple/pimple": "~3.0",
"symfony/css-selector": "~2.3|~3.0|~4.0",
"symfony/dom-crawler": "~2.3|~3.0|~4.0"
},
"suggest": {
"lightsaml/sp-bundle": "Symfony 2 SP security bundle",
"lightsaml/symfony-bridge": "Symfony 2 build container bridge"
},
"type": "library",
"autoload": {
"psr-0": {
"LightSaml\\Tests\\": "tests/",
"LightSaml\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Milos Tomic",
"email": "tmilos@gmail.com",
"homepage": "https://github.com/tmilos/",
"role": "Developer"
}
],
"description": "Light SAML 2.0 PHP library",
"homepage": "https://www.lightsaml.com/",
"keywords": [
"SAML 2.0",
"Single Logout",
"Single SignOn",
"library",
"lightSAML",
"php"
],
"time": "2018-05-28T11:21:22+00:00"
},
{
"name": "lightsaml/sp-bundle",
"version": "1.2.1",
"source": {
"type": "git",
"url": "https://github.com/lightSAML/SpBundle.git",
"reference": "2150175dd2a5ad9cccfa7892e8c4af04503f5881"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/lightSAML/SpBundle/zipball/2150175dd2a5ad9cccfa7892e8c4af04503f5881",
"reference": "2150175dd2a5ad9cccfa7892e8c4af04503f5881",
"shasum": ""
},
"require": {
"lightsaml/symfony-bridge": "~1.3",
"php": ">=5.6",
"symfony/framework-bundle": "~2.7|~3.0|~4.0",
"symfony/security-bundle": "~2.7|~3.0|~4.0"
},
"require-dev": {
"phpunit/phpunit": "^5.7",
"sebastian/comparator": "^1.2.4|~2.0|~3.0",
"symfony/monolog-bundle": "~2.7|~3.0|~4.0",
"symfony/symfony": "~2.7|~3.0|~4.0"
},
"type": "symfony-bundle",
"autoload": {
"psr-0": {
"LightSaml\\SpBundle\\Tests\\": "tests/",
"LightSaml\\SpBundle\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Milos Tomic",
"email": "tmilos@gmail.com",
"homepage": "http://github.com/tmilos",
"role": "Developer"
}
],
"description": "Light SAML2 SP Symfony Bundle",
"homepage": "http://www.lightsaml.com/SP-Bundle/",
"time": "2019-11-13T19:05:47+00:00"
},
{
"name": "lightsaml/symfony-bridge",
"version": "1.3.0",
"source": {
"type": "git",
"url": "https://github.com/lightSAML/SymfonyBridgeBundle.git",
"reference": "8d3120825032a7468e894d0ae68630f21cd6035b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/lightSAML/SymfonyBridgeBundle/zipball/8d3120825032a7468e894d0ae68630f21cd6035b",
"reference": "8d3120825032a7468e894d0ae68630f21cd6035b",
"shasum": ""
},
"require": {
"lightsaml/lightsaml": "~1.1",
"php": ">=5.5.1",
"symfony/dependency-injection": "~2.7|~3.0|~4.0",
"symfony/framework-bundle": "~2.7|~3.0|~4.0",
"symfony/yaml": "~2.7|~3.0|~4.0"
},
"require-dev": {
"php-coveralls/php-coveralls": "~2.0",
"phpunit/phpunit": "^5.7",
"symfony/browser-kit": "~2.7|~3.0|~4.0",
"symfony/filesystem": "~2.7|~3.0|~4.0",
"symfony/finder": "~2.7|~3.0|~4.0",
"symfony/routing": "~2.7|~3.0|~4.0"
},
"suggest": {
"lightsaml/lightsamp-idp": "If you will be using IDP LightSAML services"
},
"type": "symfony-bundle",
"autoload": {
"psr-0": {
"LightSaml\\SymfonyBridgeBundle\\Tests\\": "tests/",
"LightSaml\\SymfonyBridgeBundle\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Milos Tomic",
"email": "tmilos@gmail.com",
"homepage": "http://github.com/tmilos",
"role": "Developer"
}
],
"description": "Light SAML Symfony bridge bundle",
"homepage": "http://www.lightsaml.com",
"time": "2018-05-23T08:11:59+00:00"
},
{
"name": "mashape/unirest-php",
"version": "v3.0.4",
"source": {
"type": "git",
"url": "https://github.com/Mashape/unirest-php.git",
"reference": "842c0f242dfaaf85f16b72e217bf7f7c19ab12cb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Mashape/unirest-php/zipball/842c0f242dfaaf85f16b72e217bf7f7c19ab12cb",
"reference": "842c0f242dfaaf85f16b72e217bf7f7c19ab12cb",
"shasum": ""
},
"require": {
"ext-curl": "*",
"php": ">=5.4.0"
},
"require-dev": {
"codeclimate/php-test-reporter": "0.1.*",
"phpunit/phpunit": "~4.4"
},
"suggest": {
"ext-json": "Allows using JSON Bodies for sending and parsing requests"
},
"type": "library",
"autoload": {
"psr-0": {
"Unirest\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "Unirest PHP",
"homepage": "https://github.com/Mashape/unirest-php",
"keywords": [
"client",
"curl",
"http",
"https",
"rest"
],
"time": "2016-08-11T17:49:21+00:00"
},
{
"name": "monolog/monolog",
"version": "1.26.0",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
"reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/2209ddd84e7ef1256b7af205d0717fb62cfc9c33",
"reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33",
"shasum": ""
},
"require": {
"php": ">=5.3.0",
"psr/log": "~1.0"
},
"provide": {
"psr/log-implementation": "1.0.0"
},
"require-dev": {
"aws/aws-sdk-php": "^2.4.9 || ^3.0",
"doctrine/couchdb": "~1.0@dev",
"graylog2/gelf-php": "~1.0",
"php-amqplib/php-amqplib": "~2.4",
"php-console/php-console": "^3.1.3",
"phpstan/phpstan": "^0.12.59",
"phpunit/phpunit": "~4.5",
"ruflin/elastica": ">=0.90 <3.0",
"sentry/sentry": "^0.13",
"swiftmailer/swiftmailer": "^5.3|^6.0"
},
"suggest": {
"aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
"doctrine/couchdb": "Allow sending log messages to a CouchDB server",
"ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
"ext-mongo": "Allow sending log messages to a MongoDB server",
"graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
"mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
"php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
"php-console/php-console": "Allow sending log messages to Google Chrome",
"rollbar/rollbar": "Allow sending log messages to Rollbar",
"ruflin/elastica": "Allow sending log messages to an Elastic Search server",
"sentry/sentry": "Allow sending log messages to a Sentry server"
},
"type": "library",
"autoload": {
"psr-4": {
"Monolog\\": "src/Monolog"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be",
"homepage": "http://seld.be"
}
],
"description": "Sends your logs to files, sockets, inboxes, databases and various web services",
"homepage": "http://github.com/Seldaek/monolog",
"keywords": [
"log",
"logging",
"psr-3"
],
"time": "2020-12-14T12:56:38+00:00"
},
{
"name": "ocramius/proxy-manager",
"version": "2.8.1",
"source": {
"type": "git",
"url": "https://github.com/Ocramius/ProxyManager.git",
"reference": "371c8f2d9d1e888ce1f8f2137d9187252b07ee94"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/371c8f2d9d1e888ce1f8f2137d9187252b07ee94",
"reference": "371c8f2d9d1e888ce1f8f2137d9187252b07ee94",
"shasum": ""
},
"require": {
"laminas/laminas-code": "^3.4.1",
"ocramius/package-versions": "^1.8.0,<1.10.0",
"php": "~7.4.1",
"webimpress/safe-writer": "^2.0.1"
},
"conflict": {
"doctrine/annotations": "<1.6.1",
"laminas/laminas-stdlib": "<3.2.1",
"zendframework/zend-stdlib": "<3.2.1"
},
"require-dev": {
"doctrine/coding-standard": "^6.0.0",
"ext-phar": "*",
"infection/infection": "^0.16.2",
"nikic/php-parser": "^4.4.0",
"phpbench/phpbench": "^0.17.0",
"phpunit/phpunit": "^9.1.1",
"slevomat/coding-standard": "^5.0.4",
"squizlabs/php_codesniffer": "^3.5.4",
"vimeo/psalm": "^3.11.1"
},
"suggest": {
"laminas/laminas-json": "To have the JsonRpc adapter (Remote Object feature)",
"laminas/laminas-soap": "To have the Soap adapter (Remote Object feature)",
"laminas/laminas-xmlrpc": "To have the XmlRpc adapter (Remote Object feature)",
"ocramius/generated-hydrator": "To have very fast object to array to object conversion for ghost objects"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.0.x-dev"
}
},
"autoload": {
"psr-4": {
"ProxyManager\\": "src/ProxyManager"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com",
"homepage": "http://ocramius.github.io/"
}
],
"description": "A library providing utilities to generate, instantiate and generally operate with Object Proxies",
"homepage": "https://github.com/Ocramius/ProxyManager",
"keywords": [
"aop",
"lazy loading",
"proxy",
"proxy pattern",
"service proxies"
],
"funding": [
{
"url": "https://github.com/Ocramius",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/ocramius/proxy-manager",
"type": "tidelift"
}
],
"time": "2020-07-13T19:23:57+00:00"
},
{
"name": "oneup/uploader-bundle",
"version": "1.9.4",
"target-dir": "Oneup/UploaderBundle",
"source": {
"type": "git",
"url": "https://github.com/1up-lab/OneupUploaderBundle.git",
"reference": "8a6dc57c35e12fbc341e52e401a1d286475ec445"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/1up-lab/OneupUploaderBundle/zipball/8a6dc57c35e12fbc341e52e401a1d286475ec445",
"reference": "8a6dc57c35e12fbc341e52e401a1d286475ec445",
"shasum": ""
},
"require": {
"paragonie/random_compat": "^1.1|^2.0",
"php": ">=5.4",
"symfony/asset": "^2.4|^3.0",
"symfony/finder": "^2.4|^3.0",
"symfony/framework-bundle": "^2.4|^3.0",
"symfony/templating": "^2.4|^3.0",
"symfony/translation": "^2.4|^3.0"
},
"require-dev": {
"amazonwebservices/aws-sdk-for-php": "1.5.*",
"knplabs/gaufrette": "0.2.*@dev",
"oneup/flysystem-bundle": "^1.2",
"phpunit/phpunit": "^4.4",
"sensio/framework-extra-bundle": "2.*|^3.0",
"symfony/browser-kit": "2.*|^3.0",
"symfony/class-loader": "2.*|^3.0",
"symfony/security-bundle": "2.*|^3.0",
"twistor/flysystem-stream-wrapper": "^1.0"
},
"suggest": {
"knplabs/knp-gaufrette-bundle": "0.1.*",
"oneup/flysystem-bundle": "^1.2",
"twistor/flysystem-stream-wrapper": "^1.0 (Required when using Flysystem)"
},
"type": "symfony-bundle",
"autoload": {
"psr-0": {
"Oneup\\UploaderBundle": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jim Schmid",
"email": "js@1up.io",
"homepage": "http://1up.io",
"role": "Developer"
}
],
"description": "Handles multi file uploads in Symfony2. Features included: Chunked upload, Orphans management, Gaufrette support.",
"homepage": "http://1up.io",
"keywords": [
"FancyUpload",
"FineUploader",
"MooUpload",
"Uploadify",
"YUI3 Uploader",
"blueimp",
"dropzone",
"fileupload",
"jQuery File Uploader",
"plupload",
"upload"
],
"time": "2020-02-04T12:08:35+00:00"
},
{
"name": "paragonie/random_compat",
"version": "v2.0.19",
"source": {
"type": "git",
"url": "https://github.com/paragonie/random_compat.git",
"reference": "446fc9faa5c2a9ddf65eb7121c0af7e857295241"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/446fc9faa5c2a9ddf65eb7121c0af7e857295241",
"reference": "446fc9faa5c2a9ddf65eb7121c0af7e857295241",
"shasum": ""
},
"require": {
"php": ">=5.2.0"
},
"require-dev": {
"phpunit/phpunit": "4.*|5.*"
},
"suggest": {
"ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
},
"type": "library",
"autoload": {
"files": [
"lib/random.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Paragon Initiative Enterprises",
"email": "security@paragonie.com",
"homepage": "https://paragonie.com"
}
],
"description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
"keywords": [
"csprng",
"polyfill",
"pseudorandom",
"random"
],
"time": "2020-10-15T10:06:57+00:00"
},
{
"name": "psr/cache",
"version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/cache.git",
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Cache\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for caching libraries",
"keywords": [
"cache",
"psr",
"psr-6"
],
"time": "2016-08-06T20:24:11+00:00"
},
{
"name": "psr/container",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/container.git",
"reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
"reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Container\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common Container Interface (PHP FIG PSR-11)",
"homepage": "https://github.com/php-fig/container",
"keywords": [
"PSR-11",
"container",
"container-interface",
"container-interop",
"psr"
],
"time": "2017-02-14T16:28:37+00:00"
},
{
"name": "psr/http-client",
"version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-client.git",
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
"shasum": ""
},
"require": {
"php": "^7.0 || ^8.0",
"psr/http-message": "^1.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Http\\Client\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for HTTP clients",
"homepage": "https://github.com/php-fig/http-client",
"keywords": [
"http",
"http-client",
"psr",
"psr-18"
],
"time": "2020-06-29T06:28:15+00:00"
},
{
"name": "psr/http-message",
"version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-message.git",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Http\\Message\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for HTTP messages",
"homepage": "https://github.com/php-fig/http-message",
"keywords": [
"http",
"http-message",
"psr",
"psr-7",
"request",
"response"
],
"time": "2016-08-06T14:39:51+00:00"
},
{
"name": "psr/link",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/link.git",
"reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562",
"reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Link\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interfaces for HTTP links",
"keywords": [
"http",
"http-link",
"link",
"psr",
"psr-13",
"rest"
],
"time": "2016-10-28T16:06:13+00:00"
},
{
"name": "psr/log",
"version": "1.1.3",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
"reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.1.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Log\\": "Psr/Log/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for logging libraries",
"homepage": "https://github.com/php-fig/log",
"keywords": [
"log",
"psr",
"psr-3"
],
"time": "2020-03-23T09:12:05+00:00"
},
{
"name": "psr/simple-cache",
"version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/simple-cache.git",
"reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
"reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\SimpleCache\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interfaces for simple caching",
"keywords": [
"cache",
"caching",
"psr",
"psr-16",
"simple-cache"
],
"time": "2017-10-23T01:57:42+00:00"
},
{
"name": "ralouphie/getallheaders",
"version": "3.0.3",
"source": {
"type": "git",
"url": "https://github.com/ralouphie/getallheaders.git",
"reference": "120b605dfeb996808c31b6477290a714d356e822"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
"reference": "120b605dfeb996808c31b6477290a714d356e822",
"shasum": ""
},
"require": {
"php": ">=5.6"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.1",
"phpunit/phpunit": "^5 || ^6.5"
},
"type": "library",
"autoload": {
"files": [
"src/getallheaders.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ralph Khattar",
"email": "ralph.khattar@gmail.com"
}
],
"description": "A polyfill for getallheaders.",
"time": "2019-03-08T08:55:37+00:00"
},
{
"name": "ramsey/uuid",
"version": "3.9.3",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
"reference": "7e1633a6964b48589b142d60542f9ed31bd37a92"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ramsey/uuid/zipball/7e1633a6964b48589b142d60542f9ed31bd37a92",
"reference": "7e1633a6964b48589b142d60542f9ed31bd37a92",
"shasum": ""
},
"require": {
"ext-json": "*",
"paragonie/random_compat": "^1 | ^2 | 9.99.99",
"php": "^5.4 | ^7 | ^8",
"symfony/polyfill-ctype": "^1.8"
},
"replace": {
"rhumsaa/uuid": "self.version"
},
"require-dev": {
"codeception/aspect-mock": "^1 | ^2",
"doctrine/annotations": "^1.2",
"goaop/framework": "1.0.0-alpha.2 | ^1 | ^2.1",
"jakub-onderka/php-parallel-lint": "^1",
"mockery/mockery": "^0.9.11 | ^1",
"moontoast/math": "^1.1",
"paragonie/random-lib": "^2",
"php-mock/php-mock-phpunit": "^0.3 | ^1.1",
"phpunit/phpunit": "^4.8 | ^5.4 | ^6.5",
"squizlabs/php_codesniffer": "^3.5"
},
"suggest": {
"ext-ctype": "Provides support for PHP Ctype functions",
"ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator",
"ext-openssl": "Provides the OpenSSL extension for use with the OpenSslGenerator",
"ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator",
"moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).",
"paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
"ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid",
"ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.x-dev"
}
},
"autoload": {
"psr-4": {
"Ramsey\\Uuid\\": "src/"
},
"files": [
"src/functions.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ben Ramsey",
"email": "ben@benramsey.com",
"homepage": "https://benramsey.com"
},
{
"name": "Marijn Huizendveld",
"email": "marijn.huizendveld@gmail.com"
},
{
"name": "Thibaud Fabre",
"email": "thibaud@aztech.io"
}
],
"description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).",
"homepage": "https://github.com/ramsey/uuid",
"keywords": [
"guid",
"identifier",
"uuid"
],
"time": "2020-02-21T04:36:14+00:00"
},
{
"name": "ratchet/rfc6455",
"version": "v0.3",
"source": {
"type": "git",
"url": "https://github.com/ratchetphp/RFC6455.git",
"reference": "c8651c7938651c2d55f5d8c2422ac5e57a183341"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ratchetphp/RFC6455/zipball/c8651c7938651c2d55f5d8c2422ac5e57a183341",
"reference": "c8651c7938651c2d55f5d8c2422ac5e57a183341",
"shasum": ""
},
"require": {
"guzzlehttp/psr7": "^1.0",
"php": ">=5.4.2"
},
"require-dev": {
"phpunit/phpunit": "5.7.*",
"react/socket": "^1.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"
},
{
"name": "Matt Bonneau",
"role": "Developer"
}
],
"description": "RFC6455 WebSocket protocol handler",
"homepage": "http://socketo.me",
"keywords": [
"WebSockets",
"rfc6455",
"websocket"
],
"time": "2020-05-15T18:31:24+00:00"
},
{
"name": "react/cache",
"version": "v1.1.1",
"source": {
"type": "git",
"url": "https://github.com/reactphp/cache.git",
"reference": "4bf736a2cccec7298bdf745db77585966fc2ca7e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/cache/zipball/4bf736a2cccec7298bdf745db77585966fc2ca7e",
"reference": "4bf736a2cccec7298bdf745db77585966fc2ca7e",
"shasum": ""
},
"require": {
"php": ">=5.3.0",
"react/promise": "^3.0 || ^2.0 || ^1.1"
},
"require-dev": {
"phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35"
},
"type": "library",
"autoload": {
"psr-4": {
"React\\Cache\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Christian Lück",
"email": "christian@clue.engineering",
"homepage": "https://clue.engineering/"
},
{
"name": "Cees-Jan Kiewiet",
"email": "reactphp@ceesjankiewiet.nl",
"homepage": "https://wyrihaximus.net/"
},
{
"name": "Jan Sorgalla",
"email": "jsorgalla@gmail.com",
"homepage": "https://sorgalla.com/"
},
{
"name": "Chris Boden",
"email": "cboden@gmail.com",
"homepage": "https://cboden.dev/"
}
],
"description": "Async, Promise-based cache interface for ReactPHP",
"keywords": [
"cache",
"caching",
"promise",
"reactphp"
],
"time": "2021-02-02T06:47:52+00:00"
},
{
"name": "react/dns",
"version": "v1.4.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/dns.git",
"reference": "665260757171e2ab17485b44e7ffffa7acb6ca1f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/dns/zipball/665260757171e2ab17485b44e7ffffa7acb6ca1f",
"reference": "665260757171e2ab17485b44e7ffffa7acb6ca1f",
"shasum": ""
},
"require": {
"php": ">=5.3.0",
"react/cache": "^1.0 || ^0.6 || ^0.5",
"react/event-loop": "^1.0 || ^0.5",
"react/promise": "^3.0 || ^2.7 || ^1.2.1",
"react/promise-timer": "^1.2"
},
"require-dev": {
"clue/block-react": "^1.2",
"phpunit/phpunit": "^9.3 || ^4.8.35"
},
"type": "library",
"autoload": {
"psr-4": {
"React\\Dns\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Christian Lück",
"email": "christian@clue.engineering",
"homepage": "https://clue.engineering/"
},
{
"name": "Cees-Jan Kiewiet",
"email": "reactphp@ceesjankiewiet.nl",
"homepage": "https://wyrihaximus.net/"
},
{
"name": "Jan Sorgalla",
"email": "jsorgalla@gmail.com",
"homepage": "https://sorgalla.com/"
},
{
"name": "Chris Boden",
"email": "cboden@gmail.com",
"homepage": "https://cboden.dev/"
}
],
"description": "Async DNS resolver for ReactPHP",
"keywords": [
"async",
"dns",
"dns-resolver",
"reactphp"
],
"time": "2020-09-18T12:12:55+00:00"
},
{
"name": "react/event-loop",
"version": "v1.1.1",
"source": {
"type": "git",
"url": "https://github.com/reactphp/event-loop.git",
"reference": "6d24de090cd59cfc830263cfba965be77b563c13"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/event-loop/zipball/6d24de090cd59cfc830263cfba965be77b563c13",
"reference": "6d24de090cd59cfc830263cfba965be77b563c13",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"require-dev": {
"phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35"
},
"suggest": {
"ext-event": "~1.0 for ExtEventLoop",
"ext-pcntl": "For signal handling support when using the StreamSelectLoop",
"ext-uv": "* for ExtUvLoop"
},
"type": "library",
"autoload": {
"psr-4": {
"React\\EventLoop\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.",
"keywords": [
"asynchronous",
"event-loop"
],
"time": "2020-01-01T18:39:52+00:00"
},
{
"name": "react/promise",
"version": "v2.8.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/promise.git",
"reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/promise/zipball/f3cff96a19736714524ca0dd1d4130de73dbbbc4",
"reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4",
"shasum": ""
},
"require": {
"php": ">=5.4.0"
},
"require-dev": {
"phpunit/phpunit": "^7.0 || ^6.5 || ^5.7 || ^4.8.36"
},
"type": "library",
"autoload": {
"psr-4": {
"React\\Promise\\": "src/"
},
"files": [
"src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jan Sorgalla",
"email": "jsorgalla@gmail.com"
}
],
"description": "A lightweight implementation of CommonJS Promises/A for PHP",
"keywords": [
"promise",
"promises"
],
"time": "2020-05-12T15:16:56+00:00"
},
{
"name": "react/promise-timer",
"version": "v1.6.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/promise-timer.git",
"reference": "daee9baf6ef30c43ea4c86399f828bb5f558f6e6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/promise-timer/zipball/daee9baf6ef30c43ea4c86399f828bb5f558f6e6",
"reference": "daee9baf6ef30c43ea4c86399f828bb5f558f6e6",
"shasum": ""
},
"require": {
"php": ">=5.3",
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5",
"react/promise": "^3.0 || ^2.7.0 || ^1.2.1"
},
"require-dev": {
"phpunit/phpunit": "^9.0 || ^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": "2020-07-10T12:18:06+00:00"
},
{
"name": "react/socket",
"version": "v1.6.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/socket.git",
"reference": "e2b96b23a13ca9b41ab343268dbce3f8ef4d524a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/socket/zipball/e2b96b23a13ca9b41ab343268dbce3f8ef4d524a",
"reference": "e2b96b23a13ca9b41ab343268dbce3f8ef4d524a",
"shasum": ""
},
"require": {
"evenement/evenement": "^3.0 || ^2.0 || ^1.0",
"php": ">=5.3.0",
"react/dns": "^1.1",
"react/event-loop": "^1.0 || ^0.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": "^9.3 || ^5.7 || ^4.8.35",
"react/promise-stream": "^1.2"
},
"type": "library",
"autoload": {
"psr-4": {
"React\\Socket\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Christian Lück",
"email": "christian@clue.engineering",
"homepage": "https://clue.engineering/"
},
{
"name": "Cees-Jan Kiewiet",
"email": "reactphp@ceesjankiewiet.nl",
"homepage": "https://wyrihaximus.net/"
},
{
"name": "Jan Sorgalla",
"email": "jsorgalla@gmail.com",
"homepage": "https://sorgalla.com/"
},
{
"name": "Chris Boden",
"email": "cboden@gmail.com",
"homepage": "https://cboden.dev/"
}
],
"description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP",
"keywords": [
"Connection",
"Socket",
"async",
"reactphp",
"stream"
],
"time": "2020-08-28T12:49:05+00:00"
},
{
"name": "react/stream",
"version": "v1.1.1",
"source": {
"type": "git",
"url": "https://github.com/reactphp/stream.git",
"reference": "7c02b510ee3f582c810aeccd3a197b9c2f52ff1a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/reactphp/stream/zipball/7c02b510ee3f582c810aeccd3a197b9c2f52ff1a",
"reference": "7c02b510ee3f582c810aeccd3a197b9c2f52ff1a",
"shasum": ""
},
"require": {
"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",
"phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35"
},
"type": "library",
"autoload": {
"psr-4": {
"React\\Stream\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP",
"keywords": [
"event-driven",
"io",
"non-blocking",
"pipe",
"reactphp",
"readable",
"stream",
"writable"
],
"time": "2020-05-04T10:17:57+00:00"
},
{
"name": "robrichards/xmlseclibs",
"version": "3.1.1",
"source": {
"type": "git",
"url": "https://github.com/robrichards/xmlseclibs.git",
"reference": "f8f19e58f26cdb42c54b214ff8a820760292f8df"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/f8f19e58f26cdb42c54b214ff8a820760292f8df",
"reference": "f8f19e58f26cdb42c54b214ff8a820760292f8df",
"shasum": ""
},
"require": {
"ext-openssl": "*",
"php": ">= 5.4"
},
"type": "library",
"autoload": {
"psr-4": {
"RobRichards\\XMLSecLibs\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"description": "A PHP library for XML Security",
"homepage": "https://github.com/robrichards/xmlseclibs",
"keywords": [
"security",
"signature",
"xml",
"xmldsig"
],
"time": "2020-09-05T13:00:25+00:00"
},
{
"name": "sensio/distribution-bundle",
"version": "v5.0.25",
"source": {
"type": "git",
"url": "https://github.com/sensiolabs/SensioDistributionBundle.git",
"reference": "80a38234bde8321fb92aa0b8c27978a272bb4baf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/80a38234bde8321fb92aa0b8c27978a272bb4baf",
"reference": "80a38234bde8321fb92aa0b8c27978a272bb4baf",
"shasum": ""
},
"require": {
"php": ">=5.3.9",
"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",
"symfony/filesystem": "~2.3|~3.0",
"symfony/http-kernel": "~2.3|~3.0",
"symfony/process": "~2.3|~3.0"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "5.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Sensio\\Bundle\\DistributionBundle\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Base bundle for Symfony Distributions",
"keywords": [
"configuration",
"distribution"
],
"abandoned": true,
"time": "2019-06-18T15:43:58+00:00"
},
{
"name": "sensio/framework-extra-bundle",
"version": "v5.4.1",
"source": {
"type": "git",
"url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git",
"reference": "585f4b3a1c54f24d1a8431c729fc8f5acca20c8a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/585f4b3a1c54f24d1a8431c729fc8f5acca20c8a",
"reference": "585f4b3a1c54f24d1a8431c729fc8f5acca20c8a",
"shasum": ""
},
"require": {
"doctrine/annotations": "^1.0",
"doctrine/persistence": "^1.0",
"php": ">=7.1.3",
"symfony/config": "^3.4|^4.3",
"symfony/dependency-injection": "^3.4|^4.3",
"symfony/framework-bundle": "^3.4|^4.3",
"symfony/http-kernel": "^3.4|^4.3"
},
"require-dev": {
"doctrine/doctrine-bundle": "^1.6",
"doctrine/orm": "^2.5",
"nyholm/psr7": "^1.1",
"symfony/browser-kit": "^3.4|^4.3",
"symfony/dom-crawler": "^3.4|^4.3",
"symfony/expression-language": "^3.4|^4.3",
"symfony/finder": "^3.4|^4.3",
"symfony/monolog-bridge": "^3.0|^4.0",
"symfony/monolog-bundle": "^3.2",
"symfony/phpunit-bridge": "^3.4.19|^4.1.8",
"symfony/psr-http-message-bridge": "^1.1",
"symfony/security-bundle": "^3.4|^4.3",
"symfony/twig-bundle": "^3.4|^4.3",
"symfony/yaml": "^3.4|^4.3",
"twig/twig": "~1.12|~2.0"
},
"suggest": {
"symfony/expression-language": "",
"symfony/psr-http-message-bridge": "To use the PSR-7 converters",
"symfony/security-bundle": ""
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "5.4.x-dev"
}
},
"autoload": {
"psr-4": {
"Sensio\\Bundle\\FrameworkExtraBundle\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "This bundle provides a way to configure your controllers with annotations",
"keywords": [
"annotations",
"controllers"
],
"time": "2019-07-08T08:31:25+00:00"
},
{
"name": "sensiolabs/security-checker",
"version": "v6.0.3",
"source": {
"type": "git",
"url": "https://github.com/sensiolabs/security-checker.git",
"reference": "a576c01520d9761901f269c4934ba55448be4a54"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/a576c01520d9761901f269c4934ba55448be4a54",
"reference": "a576c01520d9761901f269c4934ba55448be4a54",
"shasum": ""
},
"require": {
"php": ">=7.1.3",
"symfony/console": "^2.8|^3.4|^4.2|^5.0",
"symfony/http-client": "^4.3|^5.0",
"symfony/mime": "^4.3|^5.0",
"symfony/polyfill-ctype": "^1.11"
},
"bin": [
"security-checker"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "6.0-dev"
}
},
"autoload": {
"psr-4": {
"SensioLabs\\Security\\": "SensioLabs/Security"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien.potencier@gmail.com"
}
],
"description": "A security checker for your composer.lock",
"abandoned": "https://github.com/fabpot/local-php-security-checker",
"time": "2019-11-01T13:20:14+00:00"
},
{
"name": "swiftmailer/swiftmailer",
"version": "v5.4.12",
"source": {
"type": "git",
"url": "https://github.com/swiftmailer/swiftmailer.git",
"reference": "181b89f18a90f8925ef805f950d47a7190e9b950"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/181b89f18a90f8925ef805f950d47a7190e9b950",
"reference": "181b89f18a90f8925ef805f950d47a7190e9b950",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"mockery/mockery": "~0.9.1",
"symfony/phpunit-bridge": "~3.2"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "5.4-dev"
}
},
"autoload": {
"files": [
"lib/swift_required.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Chris Corbyn"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Swiftmailer, free feature-rich PHP mailer",
"homepage": "https://swiftmailer.symfony.com",
"keywords": [
"email",
"mail",
"mailer"
],
"time": "2018-07-31T09:26:32+00:00"
},
{
"name": "symfony/assetic-bundle",
"version": "v2.8.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/assetic-bundle.git",
"reference": "2e0a23a4874838e26de6f025e02fc63328921a4c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/assetic-bundle/zipball/2e0a23a4874838e26de6f025e02fc63328921a4c",
"reference": "2e0a23a4874838e26de6f025e02fc63328921a4c",
"shasum": ""
},
"require": {
"kriswallsmith/assetic": "~1.4",
"php": ">=5.3.0",
"symfony/console": "~2.3|~3.0",
"symfony/dependency-injection": "~2.3|~3.0",
"symfony/framework-bundle": "~2.3|~3.0",
"symfony/yaml": "~2.3|~3.0"
},
"conflict": {
"kriswallsmith/spork": "<=0.2",
"twig/twig": "<1.27"
},
"require-dev": {
"kriswallsmith/spork": "~0.3",
"patchwork/jsqueeze": "~1.0",
"symfony/class-loader": "~2.3|~3.0",
"symfony/css-selector": "~2.3|~3.0",
"symfony/dom-crawler": "~2.3|~3.0",
"symfony/phpunit-bridge": "~2.7|~3.0",
"symfony/twig-bundle": "~2.3|~3.0"
},
"suggest": {
"kriswallsmith/spork": "to be able to dump assets in parallel",
"symfony/twig-bundle": "to use the Twig integration"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "2.8-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Bundle\\AsseticBundle\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Kris Wallsmith",
"email": "kris.wallsmith@gmail.com",
"homepage": "http://kriswallsmith.net/"
}
],
"description": "Integrates Assetic into Symfony2",
"homepage": "https://github.com/symfony/AsseticBundle",
"keywords": [
"assets",
"compression",
"minification"
],
"abandoned": "symfony/webpack-encore-pack",
"time": "2017-07-14T07:26:46+00:00"
},
{
"name": "symfony/deprecation-contracts",
"version": "v2.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
"reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665",
"reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.2-dev"
},
"thanks": {
"name": "symfony/contracts",
"url": "https://github.com/symfony/contracts"
}
},
"autoload": {
"files": [
"function.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"time": "2020-09-07T11:33:47+00:00"
},
{
"name": "symfony/http-client",
"version": "v5.2.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client.git",
"reference": "22cb1a7844fff206cc5186409776e78865405ea5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-client/zipball/22cb1a7844fff206cc5186409776e78865405ea5",
"reference": "22cb1a7844fff206cc5186409776e78865405ea5",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"psr/log": "^1.0",
"symfony/http-client-contracts": "^2.2",
"symfony/polyfill-php73": "^1.11",
"symfony/polyfill-php80": "^1.15",
"symfony/service-contracts": "^1.0|^2"
},
"provide": {
"php-http/async-client-implementation": "*",
"php-http/client-implementation": "*",
"psr/http-client-implementation": "1.0",
"symfony/http-client-implementation": "1.1"
},
"require-dev": {
"amphp/amp": "^2.5",
"amphp/http-client": "^4.2.1",
"amphp/http-tunnel": "^1.0",
"amphp/socket": "^1.1",
"guzzlehttp/promises": "^1.4",
"nyholm/psr7": "^1.0",
"php-http/httplug": "^1.0|^2.0",
"psr/http-client": "^1.0",
"symfony/dependency-injection": "^4.4|^5.0",
"symfony/http-kernel": "^4.4.13|^5.1.5",
"symfony/process": "^4.4|^5.0",
"symfony/stopwatch": "^4.4|^5.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Symfony\\Component\\HttpClient\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously",
"homepage": "https://symfony.com",
"time": "2021-01-27T10:15:41+00:00"
},
{
"name": "symfony/http-client-contracts",
"version": "v2.3.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client-contracts.git",
"reference": "41db680a15018f9c1d4b23516059633ce280ca33"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/41db680a15018f9c1d4b23516059633ce280ca33",
"reference": "41db680a15018f9c1d4b23516059633ce280ca33",
"shasum": ""
},
"require": {
"php": ">=7.2.5"
},
"suggest": {
"symfony/http-client-implementation": ""
},
"type": "library",
"extra": {
"branch-version": "2.3",
"branch-alias": {
"dev-main": "2.3-dev"
},
"thanks": {
"name": "symfony/contracts",
"url": "https://github.com/symfony/contracts"
}
},
"autoload": {
"psr-4": {
"Symfony\\Contracts\\HttpClient\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Generic abstractions related to HTTP clients",
"homepage": "https://symfony.com",
"keywords": [
"abstractions",
"contracts",
"decoupling",
"interfaces",
"interoperability",
"standards"
],
"time": "2020-10-14T17:08:19+00:00"
},
{
"name": "symfony/mime",
"version": "v5.2.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
"reference": "7dee6a43493f39b51ff6c5bb2bd576fe40a76c86"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/mime/zipball/7dee6a43493f39b51ff6c5bb2bd576fe40a76c86",
"reference": "7dee6a43493f39b51ff6c5bb2bd576fe40a76c86",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"symfony/deprecation-contracts": "^2.1",
"symfony/polyfill-intl-idn": "^1.10",
"symfony/polyfill-mbstring": "^1.0",
"symfony/polyfill-php80": "^1.15"
},
"conflict": {
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
"symfony/mailer": "<4.4"
},
"require-dev": {
"egulias/email-validator": "^2.1.10",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
"symfony/dependency-injection": "^4.4|^5.0",
"symfony/property-access": "^4.4|^5.1",
"symfony/property-info": "^4.4|^5.1",
"symfony/serializer": "^5.2"
},
"type": "library",
"autoload": {
"psr-4": {
"Symfony\\Component\\Mime\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Allows manipulating MIME messages",
"homepage": "https://symfony.com",
"keywords": [
"mime",
"mime-type"
],
"time": "2021-02-02T06:10:15+00:00"
},
{
"name": "symfony/monolog-bundle",
"version": "v3.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/monolog-bundle.git",
"reference": "7fbecb371c1c614642c93c6b2cbcdf723ae8809d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/7fbecb371c1c614642c93c6b2cbcdf723ae8809d",
"reference": "7fbecb371c1c614642c93c6b2cbcdf723ae8809d",
"shasum": ""
},
"require": {
"monolog/monolog": "~1.22",
"php": ">=5.6",
"symfony/config": "~3.4|~4.0",
"symfony/dependency-injection": "~3.4.10|^4.0.10",
"symfony/http-kernel": "~3.4|~4.0",
"symfony/monolog-bridge": "~3.4|~4.0"
},
"require-dev": {
"symfony/console": "~3.4|~4.0",
"symfony/phpunit-bridge": "^3.4.19|^4.0",
"symfony/yaml": "~3.4|~4.0"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "3.x-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Bundle\\MonologBundle\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Symfony MonologBundle",
"homepage": "http://symfony.com",
"keywords": [
"log",
"logging"
],
"time": "2019-06-20T12:18:19+00:00"
},
{
"name": "symfony/orm-pack",
"version": "v1.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/orm-pack.git",
"reference": "c9bcc08102061f406dc908192c0f33524a675666"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/orm-pack/zipball/c9bcc08102061f406dc908192c0f33524a675666",
"reference": "c9bcc08102061f406dc908192c0f33524a675666",
"shasum": ""
},
"require": {
"doctrine/doctrine-bundle": "*",
"doctrine/doctrine-migrations-bundle": "*",
"doctrine/orm": "*"
},
"type": "symfony-pack",
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "A pack for the Doctrine ORM",
"time": "2020-02-10T18:03:48+00:00"
},
{
"name": "symfony/polyfill-apcu",
"version": "v1.22.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-apcu.git",
"reference": "3b3944f40987b9d3f9b9147f86c32df87d9f3505"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/3b3944f40987b9d3f9b9147f86c32df87d9f3505",
"reference": "3b3944f40987b9d3f9b9147f86c32df87d9f3505",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Apcu\\": ""
},
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting apcu_* functions to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"apcu",
"compatibility",
"polyfill",
"portable",
"shim"
],
"time": "2021-01-07T16:49:33+00:00"
},
{
"name": "symfony/polyfill-ctype",
"version": "v1.22.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
"reference": "c6c942b1ac76c82448322025e084cadc56048b4e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e",
"reference": "c6c942b1ac76c82448322025e084cadc56048b4e",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
"suggest": {
"ext-ctype": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Ctype\\": ""
},
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Gert de Pagter",
"email": "BackEndTea@gmail.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill for ctype functions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"ctype",
"polyfill",
"portable"
],
"time": "2021-01-07T16:49:33+00:00"
},
{
"name": "symfony/polyfill-intl-icu",
"version": "v1.22.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-icu.git",
"reference": "b2b1e732a6c039f1a3ea3414b3379a2433e183d6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/b2b1e732a6c039f1a3ea3414b3379a2433e183d6",
"reference": "b2b1e732a6c039f1a3ea3414b3379a2433e183d6",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
"suggest": {
"ext-intl": "For best performance and support of other locales than \"en\""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"files": [
"bootstrap.php"
],
"psr-4": {
"Symfony\\Polyfill\\Intl\\Icu\\": ""
},
"classmap": [
"Resources/stubs"
],
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill for intl's ICU-related data and classes",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"icu",
"intl",
"polyfill",
"portable",
"shim"
],
"time": "2021-01-07T16:49:33+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
"version": "v1.22.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
"reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44",
"reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44",
"shasum": ""
},
"require": {
"php": ">=7.1",
"symfony/polyfill-intl-normalizer": "^1.10",
"symfony/polyfill-php72": "^1.10"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Intl\\Idn\\": ""
},
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Laurent Bassin",
"email": "laurent@bassin.info"
},
{
"name": "Trevor Rowbotham",
"email": "trevor.rowbotham@pm.me"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"idn",
"intl",
"polyfill",
"portable",
"shim"
],
"time": "2021-01-07T16:49:33+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
"version": "v1.22.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
"reference": "6e971c891537eb617a00bb07a43d182a6915faba"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/6e971c891537eb617a00bb07a43d182a6915faba",
"reference": "6e971c891537eb617a00bb07a43d182a6915faba",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Intl\\Normalizer\\": ""
},
"files": [
"bootstrap.php"
],
"classmap": [
"Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill for intl's Normalizer class and related functions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"intl",
"normalizer",
"polyfill",
"portable",
"shim"
],
"time": "2021-01-07T17:09:11+00:00"
},
{
"name": "symfony/polyfill-mbstring",
"version": "v1.22.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f377a3dd1fde44d37b9831d68dc8dea3ffd28e13",
"reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
"suggest": {
"ext-mbstring": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Mbstring\\": ""
},
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill for the Mbstring extension",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"mbstring",
"polyfill",
"portable",
"shim"
],
"time": "2021-01-07T16:49:33+00:00"
},
{
"name": "symfony/polyfill-php56",
"version": "v1.20.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php56.git",
"reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675",
"reference": "54b8cd7e6c1643d78d011f3be89f3ef1f9f4c675",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
"type": "metapackage",
"extra": {
"branch-alias": {
"dev-main": "1.20-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"time": "2020-10-23T14:02:19+00:00"
},
{
"name": "symfony/polyfill-php70",
"version": "v1.20.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php70.git",
"reference": "5f03a781d984aae42cebd18e7912fa80f02ee644"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644",
"reference": "5f03a781d984aae42cebd18e7912fa80f02ee644",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
"type": "metapackage",
"extra": {
"branch-alias": {
"dev-main": "1.20-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"time": "2020-10-23T14:02:19+00:00"
},
{
"name": "symfony/polyfill-php72",
"version": "v1.22.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php72.git",
"reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
"reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Php72\\": ""
},
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"time": "2021-01-07T16:49:33+00:00"
},
{
"name": "symfony/polyfill-php73",
"version": "v1.22.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php73.git",
"reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2",
"reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Php73\\": ""
},
"files": [
"bootstrap.php"
],
"classmap": [
"Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"time": "2021-01-07T16:49:33+00:00"
},
{
"name": "symfony/polyfill-php80",
"version": "v1.22.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
"reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91",
"reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.22-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Php80\\": ""
},
"files": [
"bootstrap.php"
],
"classmap": [
"Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ion Bazan",
"email": "ion.bazan@gmail.com"
},
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"time": "2021-01-07T16:49:33+00:00"
},
{
"name": "symfony/service-contracts",
"version": "v2.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
"reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1",
"reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"psr/container": "^1.0"
},
"suggest": {
"symfony/service-implementation": ""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.2-dev"
},
"thanks": {
"name": "symfony/contracts",
"url": "https://github.com/symfony/contracts"
}
},
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Service\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Generic abstractions related to writing services",
"homepage": "https://symfony.com",
"keywords": [
"abstractions",
"contracts",
"decoupling",
"interfaces",
"interoperability",
"standards"
],
"time": "2020-09-07T11:33:47+00:00"
},
{
"name": "symfony/swiftmailer-bundle",
"version": "v2.6.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/swiftmailer-bundle.git",
"reference": "c4808f5169efc05567be983909d00f00521c53ec"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/c4808f5169efc05567be983909d00f00521c53ec",
"reference": "c4808f5169efc05567be983909d00f00521c53ec",
"shasum": ""
},
"require": {
"php": ">=5.3.2",
"swiftmailer/swiftmailer": "~4.2|~5.0",
"symfony/config": "~2.7|~3.0",
"symfony/dependency-injection": "~2.7|~3.0",
"symfony/http-kernel": "~2.7|~3.0"
},
"require-dev": {
"symfony/console": "~2.7|~3.0",
"symfony/framework-bundle": "~2.7|~3.0",
"symfony/phpunit-bridge": "~3.3@dev",
"symfony/yaml": "~2.7|~3.0"
},
"suggest": {
"psr/log": "Allows logging"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "2.6-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Bundle\\SwiftmailerBundle\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
},
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "Symfony SwiftmailerBundle",
"homepage": "http://symfony.com",
"time": "2017-10-19T01:06:41+00:00"
},
{
"name": "symfony/symfony",
"version": "v3.4.47",
"source": {
"type": "git",
"url": "https://github.com/symfony/symfony.git",
"reference": "83093d5448a7b90fd4cbcce38580ae53898f506f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/symfony/zipball/83093d5448a7b90fd4cbcce38580ae53898f506f",
"reference": "83093d5448a7b90fd4cbcce38580ae53898f506f",
"shasum": ""
},
"require": {
"doctrine/common": "~2.4",
"ext-xml": "*",
"fig/link-util": "^1.0",
"php": "^5.5.9|>=7.0.8",
"psr/cache": "~1.0",
"psr/container": "^1.0",
"psr/link": "^1.0",
"psr/log": "~1.0",
"psr/simple-cache": "^1.0",
"symfony/polyfill-apcu": "~1.1",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-icu": "~1.0",
"symfony/polyfill-mbstring": "~1.0",
"symfony/polyfill-php56": "~1.0",
"symfony/polyfill-php70": "~1.6",
"twig/twig": "^1.41|^2.10"
},
"conflict": {
"monolog/monolog": ">=2",
"phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2",
"phpdocumentor/type-resolver": "<0.3.0",
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0"
},
"provide": {
"psr/cache-implementation": "1.0",
"psr/container-implementation": "1.0",
"psr/log-implementation": "1.0",
"psr/simple-cache-implementation": "1.0"
},
"replace": {
"symfony/asset": "self.version",
"symfony/browser-kit": "self.version",
"symfony/cache": "self.version",
"symfony/class-loader": "self.version",
"symfony/config": "self.version",
"symfony/console": "self.version",
"symfony/css-selector": "self.version",
"symfony/debug": "self.version",
"symfony/debug-bundle": "self.version",
"symfony/dependency-injection": "self.version",
"symfony/doctrine-bridge": "self.version",
"symfony/dom-crawler": "self.version",
"symfony/dotenv": "self.version",
"symfony/event-dispatcher": "self.version",
"symfony/expression-language": "self.version",
"symfony/filesystem": "self.version",
"symfony/finder": "self.version",
"symfony/form": "self.version",
"symfony/framework-bundle": "self.version",
"symfony/http-foundation": "self.version",
"symfony/http-kernel": "self.version",
"symfony/inflector": "self.version",
"symfony/intl": "self.version",
"symfony/ldap": "self.version",
"symfony/lock": "self.version",
"symfony/monolog-bridge": "self.version",
"symfony/options-resolver": "self.version",
"symfony/process": "self.version",
"symfony/property-access": "self.version",
"symfony/property-info": "self.version",
"symfony/proxy-manager-bridge": "self.version",
"symfony/routing": "self.version",
"symfony/security": "self.version",
"symfony/security-bundle": "self.version",
"symfony/security-core": "self.version",
"symfony/security-csrf": "self.version",
"symfony/security-guard": "self.version",
"symfony/security-http": "self.version",
"symfony/serializer": "self.version",
"symfony/stopwatch": "self.version",
"symfony/templating": "self.version",
"symfony/translation": "self.version",
"symfony/twig-bridge": "self.version",
"symfony/twig-bundle": "self.version",
"symfony/validator": "self.version",
"symfony/var-dumper": "self.version",
"symfony/web-link": "self.version",
"symfony/web-profiler-bundle": "self.version",
"symfony/web-server-bundle": "self.version",
"symfony/workflow": "self.version",
"symfony/yaml": "self.version"
},
"require-dev": {
"cache/integration-tests": "dev-master",
"doctrine/annotations": "~1.0",
"doctrine/cache": "~1.6",
"doctrine/data-fixtures": "^1.1",
"doctrine/dbal": "~2.4",
"doctrine/doctrine-bundle": "~1.4",
"doctrine/orm": "~2.4,>=2.4.5",
"egulias/email-validator": "~1.2,>=1.2.8|~2.0",
"monolog/monolog": "~1.11",
"ocramius/proxy-manager": "~0.4|~1.0|~2.0",
"phpdocumentor/reflection-docblock": "^3.0|^4.0",
"predis/predis": "~1.0",
"symfony/phpunit-bridge": "^5.2",
"symfony/security-acl": "~2.8|~3.0"
},
"type": "library",
"extra": {
"branch-version": "3.4"
},
"autoload": {
"psr-4": {
"Symfony\\Bridge\\Doctrine\\": "src/Symfony/Bridge/Doctrine/",
"Symfony\\Bridge\\Monolog\\": "src/Symfony/Bridge/Monolog/",
"Symfony\\Bridge\\ProxyManager\\": "src/Symfony/Bridge/ProxyManager/",
"Symfony\\Bridge\\Twig\\": "src/Symfony/Bridge/Twig/",
"Symfony\\Bundle\\": "src/Symfony/Bundle/",
"Symfony\\Component\\": "src/Symfony/Component/"
},
"classmap": [
"src/Symfony/Component/Intl/Resources/stubs"
],
"exclude-from-classmap": [
"**/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "The Symfony PHP framework",
"homepage": "https://symfony.com",
"keywords": [
"framework"
],
"time": "2020-11-27T08:43:16+00:00"
},
{
"name": "tetranz/select2entity-bundle",
"version": "v2.10.1",
"source": {
"type": "git",
"url": "https://github.com/tetranz/select2entity-bundle.git",
"reference": "1d4b184e41bdb76a61d7462b748d9cf0ecade47a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/tetranz/select2entity-bundle/zipball/1d4b184e41bdb76a61d7462b748d9cf0ecade47a",
"reference": "1d4b184e41bdb76a61d7462b748d9cf0ecade47a",
"shasum": ""
},
"require": {
"doctrine/orm": ">=2.4",
"php": ">=5.4.0",
"twig/twig": ">=2.9"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": []
},
"autoload": {
"psr-4": {
"Tetranz\\Select2EntityBundle\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ross Keatinge",
"email": "tetranz@gmail.com"
}
],
"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": "2019-07-14T02:30:34+00:00"
},
{
"name": "thecsea/simple-caldav-client",
"version": "v0.1.14",
"source": {
"type": "git",
"url": "https://github.com/thecsea/simpleCalDAV.git",
"reference": "542eda99c5a18c04b3701ebda9ce8d3eb0db7728"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thecsea/simpleCalDAV/zipball/542eda99c5a18c04b3701ebda9ce8d3eb0db7728",
"reference": "542eda99c5a18c04b3701ebda9ce8d3eb0db7728",
"shasum": ""
},
"require": {
"ext-curl": "*",
"ext-xml": "*",
"php": ">=5.3.0"
},
"type": "library",
"autoload": {
"psr-4": {
"it\\thecsea\\simple_caldav_client\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"GPL-2.0"
],
"authors": [
{
"name": "claudio cardinale",
"email": "cardi@thecsea.it",
"homepage": "http://thecsea.it"
}
],
"description": "A simple and complete php caldav client",
"homepage": "http://www.thecsea.it",
"keywords": [
"CalDAV",
"Simple",
"client"
],
"time": "2020-09-28T11:55:52+00:00"
},
{
"name": "twig/twig",
"version": "v2.14.3",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "8bc568d460d88b25c00c046256ec14a787ea60d9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/8bc568d460d88b25c00c046256ec14a787ea60d9",
"reference": "8bc568d460d88b25c00c046256ec14a787ea60d9",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"symfony/polyfill-ctype": "^1.8",
"symfony/polyfill-mbstring": "^1.3"
},
"require-dev": {
"psr/container": "^1.0",
"symfony/phpunit-bridge": "^4.4.9|^5.0.9"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.14-dev"
}
},
"autoload": {
"psr-0": {
"Twig_": "lib/"
},
"psr-4": {
"Twig\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com",
"homepage": "http://fabien.potencier.org",
"role": "Lead Developer"
},
{
"name": "Twig Team",
"role": "Contributors"
},
{
"name": "Armin Ronacher",
"email": "armin.ronacher@active-4.com",
"role": "Project Founder"
}
],
"description": "Twig, the flexible, fast, and secure template language for PHP",
"homepage": "https://twig.symfony.com",
"keywords": [
"templating"
],
"time": "2021-01-05T15:34:33+00:00"
},
{
"name": "webimpress/safe-writer",
"version": "2.1.0",
"source": {
"type": "git",
"url": "https://github.com/webimpress/safe-writer.git",
"reference": "5cfafdec5873c389036f14bf832a5efc9390dcdd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/webimpress/safe-writer/zipball/5cfafdec5873c389036f14bf832a5efc9390dcdd",
"reference": "5cfafdec5873c389036f14bf832a5efc9390dcdd",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8.0"
},
"require-dev": {
"phpunit/phpunit": "^8.5.8 || ^9.3.7",
"vimeo/psalm": "^3.14.2",
"webimpress/coding-standard": "^1.1.5"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.1.x-dev",
"dev-develop": "2.2.x-dev",
"dev-release-1.0": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Webimpress\\SafeWriter\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-2-Clause"
],
"description": "Tool to write files safely, to avoid race conditions",
"keywords": [
"concurrent write",
"file writer",
"race condition",
"safe writer",
"webimpress"
],
"funding": [
{
"url": "https://github.com/michalbundyra",
"type": "github"
}
],
"time": "2020-08-25T07:21:11+00:00"
}
],
"packages-dev": [
{
"name": "nikic/php-parser",
"version": "v4.10.4",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
"reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e",
"reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e",
"shasum": ""
},
"require": {
"ext-tokenizer": "*",
"php": ">=7.0"
},
"require-dev": {
"ircmaxell/php-yacc": "^0.0.7",
"phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
},
"bin": [
"bin/php-parse"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "4.9-dev"
}
},
"autoload": {
"psr-4": {
"PhpParser\\": "lib/PhpParser"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Nikita Popov"
}
],
"description": "A PHP parser written in PHP",
"keywords": [
"parser",
"php"
],
"time": "2020-12-20T10:01:03+00:00"
},
{
"name": "sensio/generator-bundle",
"version": "v3.1.7",
"source": {
"type": "git",
"url": "https://github.com/sensiolabs/SensioGeneratorBundle.git",
"reference": "28cbaa244bd0816fd8908b93f90380bcd7b67a65"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/28cbaa244bd0816fd8908b93f90380bcd7b67a65",
"reference": "28cbaa244bd0816fd8908b93f90380bcd7b67a65",
"shasum": ""
},
"require": {
"symfony/console": "~2.7|~3.0",
"symfony/framework-bundle": "~2.7|~3.0",
"symfony/process": "~2.7|~3.0",
"symfony/yaml": "~2.7|~3.0",
"twig/twig": "^1.28.2|^2.0"
},
"require-dev": {
"doctrine/orm": "~2.4",
"symfony/doctrine-bridge": "~2.7|~3.0",
"symfony/filesystem": "~2.7|~3.0",
"symfony/phpunit-bridge": "^3.3"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "3.1.x-dev"
}
},
"autoload": {
"psr-4": {
"Sensio\\Bundle\\GeneratorBundle\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
}
],
"description": "This bundle generates code for you",
"time": "2017-12-07T15:36:41+00:00"
},
{
"name": "symfony/maker-bundle",
"version": "v1.29.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/maker-bundle.git",
"reference": "9a9e3f4253ca0d923ad49b327db6f89a8f74fe4c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/maker-bundle/zipball/9a9e3f4253ca0d923ad49b327db6f89a8f74fe4c",
"reference": "9a9e3f4253ca0d923ad49b327db6f89a8f74fe4c",
"shasum": ""
},
"require": {
"doctrine/inflector": "^1.2|^2.0",
"nikic/php-parser": "^4.0",
"php": ">=7.1.3",
"symfony/config": "^3.4|^4.0|^5.0",
"symfony/console": "^3.4|^4.0|^5.0",
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
"symfony/deprecation-contracts": "^2.2",
"symfony/filesystem": "^3.4|^4.0|^5.0",
"symfony/finder": "^3.4|^4.0|^5.0",
"symfony/framework-bundle": "^3.4|^4.0|^5.0",
"symfony/http-kernel": "^3.4|^4.0|^5.0"
},
"require-dev": {
"composer/semver": "^3.0@dev",
"doctrine/doctrine-bundle": "^1.8|^2.0",
"doctrine/orm": "^2.3",
"friendsofphp/php-cs-fixer": "^2.8",
"friendsoftwig/twigcs": "^3.1.2",
"symfony/http-client": "^4.3|^5.0",
"symfony/phpunit-bridge": "^4.3|^5.0",
"symfony/process": "^3.4|^4.0|^5.0",
"symfony/security-core": "^3.4|^4.0|^5.0",
"symfony/yaml": "^3.4|^4.0|^5.0"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-main": "1.0-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Bundle\\MakerBundle\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.",
"homepage": "https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html",
"keywords": [
"code generator",
"generator",
"scaffold",
"scaffolding"
],
"time": "2021-02-07T01:02:28+00:00"
},
{
"name": "symfony/phpunit-bridge",
"version": "v3.4.47",
"source": {
"type": "git",
"url": "https://github.com/symfony/phpunit-bridge.git",
"reference": "120273ad5d03a8deee08ca9260e2598f288f2bac"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/120273ad5d03a8deee08ca9260e2598f288f2bac",
"reference": "120273ad5d03a8deee08ca9260e2598f288f2bac",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"conflict": {
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0|<6.4,>=6.0|9.1.2"
},
"suggest": {
"symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader"
},
"bin": [
"bin/simple-phpunit"
],
"type": "symfony-bridge",
"extra": {
"thanks": {
"name": "phpunit/phpunit",
"url": "https://github.com/sebastianbergmann/phpunit"
}
},
"autoload": {
"files": [
"bootstrap.php"
],
"psr-4": {
"Symfony\\Bridge\\PhpUnit\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony PHPUnit Bridge",
"homepage": "https://symfony.com",
"time": "2020-11-13T16:28:59+00:00"
}
],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
"php": ">=7"
},
"platform-dev": [],
"plugin-api-version": "1.1.0"
}

View File

@ -11,6 +11,7 @@ use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Cadoles\CoreBundle\Entity\User; use Cadoles\CoreBundle\Entity\User;
use Cadoles\CoreBundle\Entity\Group;
class SecurityController extends Controller class SecurityController extends Controller
{ {
@ -28,8 +29,11 @@ class SecurityController extends Controller
$masteridentity=$this->getParameter("masteridentity"); $masteridentity=$this->getParameter("masteridentity");
// Init Client CAS // Init Client CAS
\phpCAS::setDebug(false); \phpCAS::setDebug("/var/log/phpcas/phpCAS-ninegate.log");
\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false); if($this->getParameter("cas_type")=="client")
@\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false);
else
@\phpCAS::proxy(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false);
\phpCAS::setNoCasServerValidation(); \phpCAS::setNoCasServerValidation();
@ -42,11 +46,10 @@ class SecurityController extends Controller
// Récupération Attribut // Récupération Attribut
$attributes = \phpCAS::getAttributes(); $attributes = \phpCAS::getAttributes();
// Suppression des Attributs en tableaux // Init
foreach ($attributes as $key => $value) { $email = "";
if(is_array($value)) $lastname = "";
unset($attributes[$key]); $firstname = "";
}
// Rechercher l'utilisateur // Rechercher l'utilisateur
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
@ -75,17 +78,37 @@ class SecurityController extends Controller
if($masteridentity=="LDAP") { if($masteridentity=="LDAP") {
// Normalement la synchronisation des comptes aurait du générer le compte en base c'est donc pas normal // Normalement la synchronisation des comptes aurait du générer le compte en base c'est donc pas normal
// Peut-être juste relancer une synchronisation // Peut-être juste relancer une synchronisation
throw $this->createNotFoundException('Permission denied. Need to synchronize LDAP ? Contact your administrator'); // On tente une synchronisation via methode SSO
$masteridentity="SSO";
// throw $this->createNotFoundException('Permission denied. Need to synchronize LDAP ? Contact your administrator');
} }
if($masteridentity=="SSO") { if($masteridentity=="SSO") {
if(empty($email)) $email = $username."@nomail.com";
// On s'assure qu'il n'y a pas déjà un utilisateur avec le même mail
$usermail = $em->getRepository('CadolesCoreBundle:User')->findOneBy(array("email"=>$email));
if($usermail) {
return $this->render('CadolesCoreBundle:Registration:info.html.twig', [
'useheader' => true,
'usemenu' => false,
'usesidebar' => false,
'infotitle' => "Première connexion",
'info' => "Votre compte ne peut être activé car votre adresse mel est déjà utilisée par un autre compte utilisateur.<br>Nous sommes désolés du désagrément et vous invitons à contacter un administrateur.",
'mode' => "error",
'redirectto' => "",
]);
}
// Là c'est normal que potentiellement il n'existe pas il faut donc l'autogénérer // Là c'est normal que potentiellement il n'existe pas il faut donc l'autogénérer
$user = new User(); $user = new User();
// On calcule le niveau01 de l'utilisateur // On calcule le niveau01 de l'utilisateur
$niveau01=$em->getRepository('CadolesCoreBundle:Niveau01')->calculateNiveau01($attributes); $niveau01=$em->getRepository('CadolesCoreBundle:Niveau01')->calculateNiveau01($attributes);
if(!$niveau01) if(!$niveau01) {
throw $this->createNotFoundException('Permission denied. No Organisation Niveau 01 match'); $niveau01=$em->getRepository('CadolesCoreBundle:Niveau01')->findAll()[0];
//throw $this->createNotFoundException('Permission denied. No Organisation Niveau 01 match');
}
$user->setUsername($username); $user->setUsername($username);
$user->setEmail($email); $user->setEmail($email);
@ -102,13 +125,21 @@ class SecurityController extends Controller
$user->setAvatar("noavatar.png"); $user->setAvatar("noavatar.png");
$user->setVisible(true); $user->setVisible(true);
$user->setAuthlevel("simple"); $user->setAuthlevel("simple");
$user->setBelongingpopulation("agent");
$user->setRole("ROLE_USER"); $user->setRole("ROLE_USER");
if(in_array($username,$this->getParameter("ldap_usersadmin")))
$user->setRole("ROLE_ADMIN");
$em->persist($user); $em->persist($user);
$em->flush(); $em->flush();
// Génération auto des groupes
$this->submitGroup($attributes);
// On calcule les groupes de l'utilisateur // On calcule les groupes de l'utilisateur
$groups=$em->getRepository('CadolesCoreBundle:Group')->calculateGroup($user,$attributes); $user=$em->getRepository('CadolesCoreBundle:Group')->calculateGroup($user,$attributes);
} }
} }
else { else {
@ -122,30 +153,44 @@ class SecurityController extends Controller
// On s'assure que le niveau 02 appartient bien au niveau 01 calculé // On s'assure que le niveau 02 appartient bien au niveau 01 calculé
$sameniveau01=(!is_null($user->getNiveau02())&&$niveau01==$user->getNiveau02()->getNiveau01()); $sameniveau01=(!is_null($user->getNiveau02())&&$niveau01==$user->getNiveau02()->getNiveau01());
// On calcule les groupes de l'utilisateur
$user=$groups=$em->getRepository('CadolesCoreBundle:Group')->calculateGroup($user,$attributes);
$user->setLastname($lastname); $user->setLastname($lastname);
$user->setFirstname($firstname); $user->setFirstname($firstname);
$user->setEmail($email); $user->setEmail($email);
if(!$sameniveau01) $user->setNiveau02(null); if(!$sameniveau01) {
$user->setNiveau01($niveau01);
$user->setNiveau02(null);
}
if(in_array($username,$this->getParameter("ldap_usersadmin")))
$user->setRole("ROLE_ADMIN");
// Génération auto des groupes
$this->submitGroup($attributes);
// On calcule les groupes de l'utilisateur
$user=$em->getRepository('CadolesCoreBundle:Group')->calculateGroup($user,$attributes);
$em->persist($user); $em->persist($user);
$em->flush(); $em->flush();
} }
} }
// Calcul Service
/*
$user = $em->getRepository('CadolesCoreBundle:User')->calculateServices($user, $attributes);
// Attributs calculés
$attributes = $em->getRepository('CadolesCoreBundle:User')->calculateAttributes($user, $attributes);
*/
// Sauvegarde des attributes en session // Sauvegarde des attributes en session
$this->get('session')->set('attributes', $attributes); $this->get('session')->set('attributes', $attributes);
// Sauvegarde des ssoitems en session
$ssoitems=[];
if($this->getParameter('ssosynchroitem')) {
$user_attr_cas_item=$this->getParameter('user_attr_cas_item');
if(array_key_exists($user_attr_cas_item,$attributes)) {
if(!is_array($attributes[$user_attr_cas_item])) {
$attributes[$user_attr_cas_item]=[$attributes[$user_attr_cas_item]];
}
$ssoitems=$attributes[$user_attr_cas_item];
}
}
$this->get('session')->set('ssoitems', $ssoitems);
// Autoconnexion // Autoconnexion
// Récupérer le token de l'utilisateur // Récupérer le token de l'utilisateur
$token = new UsernamePasswordToken($user, null, "main", $user->getRoles()); $token = new UsernamePasswordToken($user, null, "main", $user->getRoles());
@ -171,7 +216,10 @@ class SecurityController extends Controller
public function logoutAction() { public function logoutAction() {
// Init Client CAS // Init Client CAS
\phpCAS::setDebug(false); \phpCAS::setDebug(false);
\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), true); if($this->getParameter("cas_type")=="client")
@\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), true);
else
@\phpCAS::proxy(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), true);
\phpCAS::setNoCasServerValidation(); \phpCAS::setNoCasServerValidation();
@ -179,4 +227,124 @@ class SecurityController extends Controller
$url=$this->generateUrl('cadoles_core_home', array(), UrlGeneratorInterface::ABSOLUTE_URL); $url=$this->generateUrl('cadoles_core_home', array(), UrlGeneratorInterface::ABSOLUTE_URL);
\phpCAS::logout(array("service"=>$url)); \phpCAS::logout(array("service"=>$url));
} }
public function testAction() {
$em = $this->getDoctrine()->getManager();
// Init Client CAS
\phpCAS::setDebug("/var/log/phpcas/phpCAS-ninegate.log");
if($this->getParameter("cas_type")=="client")
@\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false);
else
@\phpCAS::proxy(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false);
\phpCAS::setNoCasServerValidation();
// Authentification
\phpCAS::forceAuthentication();
// Récupération UID
$username = \phpCAS::getUser();
// Récupération Attribut
$attributes = \phpCAS::getAttributes();
$user = $em->getRepository('CadolesCoreBundle:User')->findOneBy(array("username"=>$username));
// On calcule le niveau01 de l'utilisateur
$niveau01=$em->getRepository('CadolesCoreBundle:Niveau01')->calculateNiveau01($attributes);
// Génération auto des groupes
$groups=$this->submitGroup($attributes);
// On calcule les groupes de l'utilisateur
$user=$em->getRepository('CadolesCoreBundle:Group')->calculateGroup($user,$attributes);
return $this->render('CadolesCASBundle:Test:test.html.twig',[
'useheader' => true,
'usemenu' => false,
'usesidebar' => false,
'attributes' => $attributes,
'user' => $user,
'username' => $username,
'niveau01' => $niveau01,
]);
}
private function submitGroup($attributes) {
$em = $this->getDoctrine()->getManager();
if(!$this->getParameter('ssosynchrogroup'))
return null;
$user_attr_cas_group=$this->getParameter('user_attr_cas_group');
// Si l'utilisateur possège l'attribut groupe dans ses attributs
if(array_key_exists($user_attr_cas_group,$attributes)) {
if(!is_array($attributes[$user_attr_cas_group])) {
$attributes[$user_attr_cas_group]=[$attributes[$user_attr_cas_group]];
}
foreach($attributes[$user_attr_cas_group] as $ssogroup) {
$basedn=$this->getParameter('ldap_basedn');
$name=$ssogroup;
if($basedn!="") {
// Si présence du basedn dans le nom du groupe = nous sommes en présence d'un DN = on récupere donc comme nom que son cn
if(stripos($name,$basedn)!==false) {
$tbname=explode(",",$name);
$tbname=explode("=",$tbname[0]);
$name=$tbname[1];
}
}
// Recherche du groupe
$group=$em->getRepository("CadolesCoreBundle:Group")->findOneBy(["label"=>$name]);
if(!$group) {
$group=new Group();
$group->setLabel($name);
$group->setFgcancreatepage(false);
$group->setFgcancreateblog(false);
$group->setFgcancreatecalendar(false);
$group->setFgcancreateproject(false);
$group->setFgcanshare(false);
$group->setFgopen(false);
$group->setFgall(false);
}
$group->setAttributes('{"'.$user_attr_cas_group.'":"'.$ssogroup.'"}');
$group->setFgtemplate(false);
$em->persist($group);
$em->flush();
}
}
}
function imapunreadAction() {
if($this->getParameter("active_imapunread")&&$this->getParameter("cas_type")=="proxy") {
$ip=$this->getParameter("imapundread_ip");
// Init Client CAS
\phpCAS::setDebug("/var/log/phpcas/phpCAS-ninegate.log");
@\phpCAS::proxy(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false);
\phpCAS::setNoCasServerValidation();
\phpCAS::forceAuthentication();
$pt= \phpCAS::retrievePT('imap://'.$ip,$t,$f);
$a = \phpCAS::serviceMail("{".$ip.":993/imap/ssl/novalidate-cert}","imap://".$ip,0, $errc,$err,$pt);
$unseen = imap_status($a, "{".$ip.":993/imap/ssl/novalidate-cert}INBOX", SA_UNSEEN);
$count=$unseen->unseen;
$response = new Response(json_encode($count));
}
else
$response = new Response(json_encode(""));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
} }

View File

@ -6,3 +6,11 @@ cas_sp.logout:
path: /logout path: /logout
defaults: { _controller: CadolesCASBundle:Security:logout } defaults: { _controller: CadolesCASBundle:Security:logout }
cas_sp.test:
path: /test
defaults: { _controller: CadolesCASBundle:Security:test }
cas_sp.imapunread:
path: /imapunread
defaults: { _controller: CadolesCASBundle:Security:imapunread }

View File

@ -0,0 +1,35 @@
{% extends '@CadolesCore/base.html.twig' %}
{% block pagewrapper %}
<h1>TEST SSO</h1>
<h2>Atttribut SSO</h2>
{% for key, attribute in attributes %}
{% if attribute is iterable %}
{% for value in attribute %}
<strong>{{ key }}</strong> = {{ value }}<br>
{% endfor %}
{% else %}
<strong>{{ key }}</strong> = {{ attribute }}<br>
{% endif %}
{% endfor %}
<h2>Correspondance Utilisateur Ninegate</h2>
<strong>username</strong> = {{ user.username }}<br>
<strong>firstname</strong> = {{ user.firstname }}<br>
<strong>lastname</strong> = {{ user.lastname }}<br>
<strong>email</strong> = {{ user.email }}<br>
<h2>Appartient au Niveau 01</h2>
<strong>{{ niveau01.label }}</strong> = {{ niveau01.attributes }}
<h2>Appartient aux Groupes</h2>
{% for usergroup in user.groups %}
{% if not usergroup.group.attributes is empty %}
<strong>{{usergroup.group.label}}</strong> = {{usergroup.group.attributes}}<br>
{% endif %}
{% endfor %}
<br><br><br><br><br><br><br>
{% endblock %}

View File

@ -5,14 +5,14 @@ use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Finder\Finder; 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\Uuid;
use Ramsey\Uuid\Exception\UnsatisfiedDependencyException; use Doctrine\ORM\Mapping\ClassMetadata;
use Doctrine\ORM\Id\AssignedGenerator;
use Cadoles\CoreBundle\Entity\Group; use Cadoles\CoreBundle\Entity\Group;
use Cadoles\CoreBundle\Entity\UserGroup; use Cadoles\CoreBundle\Entity\UserGroup;
use Cadoles\CoreBundle\Entity\PermModoProfil;
use Cadoles\CoreBundle\Entity\PermModo;
class InitDataCommand extends ContainerAwareCommand class InitDataCommand extends ContainerAwareCommand
{ {
@ -86,6 +86,16 @@ class InitDataCommand extends ContainerAwareCommand
} }
$stmt->closeCursor(); $stmt->closeCursor();
// On s'assure que l'admin à un password et sinon on l'init à la valeur du genconfig
$user=$em->getRepository('CadolesCoreBundle:User')->findOneBy(['username'=>'admin']);
if($user&&empty($user->getPassword())) {
$initpwdadmin=$this->getContainer()->getParameter('initpwdadmin');
$output->writeln(' > Initialisation passsword admin / '.$initpwdadmin.' : pensez à modfier votre password après connexion');
$user->setPassword($initpwdadmin);
$em->persist($user);
$em->flush();
}
// On s'assure que le groupe 'Tout le Monde' existe // On s'assure que le groupe 'Tout le Monde' existe
$group=$em->getRepository('CadolesCoreBundle:Group')->findOneBy(array('fgall'=>true)); $group=$em->getRepository('CadolesCoreBundle:Group')->findOneBy(array('fgall'=>true));
if (!$group) { if (!$group) {
@ -128,6 +138,7 @@ class InitDataCommand extends ContainerAwareCommand
$usergroup->setUser($user); $usergroup->setUser($user);
$usergroup->setGroup($group); $usergroup->setGroup($group);
$usergroup->setKeyvalue($key); $usergroup->setKeyvalue($key);
$usergroup->setRolegroup(0);
$em->persist($usergroup); $em->persist($usergroup);
$em->flush(); $em->flush();
$em->clear(); $em->clear();
@ -144,13 +155,118 @@ class InitDataCommand extends ContainerAwareCommand
if($ldap_template=="scribe") if($ldap_template=="scribe")
$niveau01->setLdapfilter("(&(uid=*)(objectclass=inetOrgPerson)(!(description=Computer)))"); $niveau01->setLdapfilter("(&(uid=*)(objectclass=inetOrgPerson)(!(description=Computer)))");
else else
$niveau01->setLdapfilter("(uid=*)"); $niveau01->setLdapfilter($this->getContainer()->getParameter('openldapreqniveau01'));
$em->persist($niveau01); $em->persist($niveau01);
$em->flush(); $em->flush();
} }
} }
// On s'assure si masteridentity est à SSO qu'au minimum un niveau01 possède un attribut
if($masteridentity=="SSO") {
$niveau01=$em->createQueryBuilder()->select('n')->from('CadolesCoreBundle:Niveau01','n')->where('n.attributes IS NOT NULL')->getQuery()->getResult();
if(!$niveau01) {
// Si ce n'est pas le cas on positionne un attribut ultra large sur le niveau01 de base
$niveau01=$group=$em->getRepository('CadolesCoreBundle:Niveau01')->find(-100);
$niveau01->setAttributes('{"username":"*"}');
$em->persist($niveau01);
$em->flush();
}
}
// Génération du profils de permissions modérateurs
$metadata = $em->getClassMetaData('CadolesCoreBundle:PermModoProfil');
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
$metadata->setIdGenerator(new AssignedGenerator());
$entityprofil = $em->getRepository('CadolesCoreBundle:PermModoProfil')->find(-100);
if(!$entityprofil) {
$entityprofil = new PermModoProfil();
$entityprofil->setId(-100);
$entityprofil->setName("Global");
$em->persist($entityprofil);
$em->flush();
}
// Affecter les permissions modérateurs sans profils sur le profils par défaut
$entitys = $em->getRepository('CadolesCoreBundle:PermModo')->findBy(["permmodoprofil"=>null]);
foreach($entitys as $entity) {
$entity->setPermmodoprofil($entityprofil);
$em->persist($entity);
$em->flush();
}
// Affecter le profil modérateur par défaut aux modérateurs qui n'en ont pas
$users = $em->getRepository('CadolesCoreBundle:User')->findBy(["role"=>"ROLE_MODO","permmodoprofil"=>null]);
foreach($users as $user) {
$user->setPermmodoprofil($entityprofil);
$em->persist($user);
$em->flush();
}
// Initialiser l'ensemble des profils modérateurs
$entityprofils = $em->getRepository('CadolesCoreBundle:PermModoProfil')->findAll();
foreach($entityprofils as $profil) {
$this->addModeration($profil,'cadoles_core_config_commun',0);
$this->addModeration($profil,'cadoles_core_config_theme',0);
$this->addModeration($profil,'cadoles_core_config_datauser',0);
$this->addModeration($profil,'cadoles_core_config_datausers',0);
$this->addModeration($profil,'cadoles_core_config_whitelist',0);
$this->addModeration($profil,'cadoles_core_config_niveau01',1);
$this->addModeration($profil,'cadoles_core_config_niveau02',1);
$this->addModeration($profil,'cadoles_core_config_group',1);
$this->addModeration($profil,'cadoles_core_config_registration',1);
$this->addModeration($profil,'cadoles_core_config_user',1);
$this->addModeration($profil,'cadoles_portal_config_pagetemplate',1);
$this->addModeration($profil,'cadoles_portal_config_page',1);
$this->addModeration($profil,'cadoles_portal_config_item',1);
$this->addModeration($profil,'cadoles_portal_config_alert',1);
$this->addModeration($profil,'cadoles_portal_config_calendar',1);
$this->addModeration($profil,'cadoles_portal_config_blog',1);
$this->addModeration($profil,'cadoles_portal_config_project',1);
$this->addModeration($profil,'cadoles_portal_config_flux',1);
$this->addModeration($profil,'cadoles_portal_config_notice',1);
$this->addModeration($profil,'cadoles_portal_config_icon',1);
$this->addModeration($profil,'cadoles_portal_config_syncbalado',0);
$this->addModeration($profil,'cadoles_portal_config_synccdt',0);
$this->addModeration($profil,'cadoles_portal_config_syncgepiannu',0);
$this->addModeration($profil,'cadoles_portal_config_syncgepisiecle',0);
$this->addModeration($profil,'cadoles_portal_config_synclimesurvey',0);
$this->addModeration($profil,'cadoles_portal_config_syncmoodle',0);
$this->addModeration($profil,'cadoles_portal_config_syncnextcloud',0);
$this->addModeration($profil,'cadoles_portal_config_syncsacoche',0);
$this->addModeration($profil,'cadoles_portal_config_syncpiwik',0);
$this->addModeration($profil,'cadoles_portal_config_syncwordpress',0);
$this->addModeration($profil,'cadoles_core_config_statistic',1);
$this->addModeration($profil,'cadoles_core_config_mailing',1);
$this->addModeration($profil,'cadoles_core_config_importuser',0);
$this->addModeration($profil,'cadoles_cron_config',0);
$this->addModeration($profil,'cadoles_cron_config_log',0);
}
// Forcer le theme
$force_theme=$this->getContainer()->getParameter('force_theme');
if($force_theme) {
// On force la configuration du theme
$force_themename=$this->getContainer()->getParameter('force_themename');
$config = $em->getRepository('CadolesCoreBundle:Config')->find("theme");
if($config) {
$config->setValue($force_themename);
$em->persist($config);
$em->flush();
}
// On enlève l'accès de la sidebar
$sidebar = $em->getRepository('CadolesCoreBundle:Sidebar')->findOneBy(["path"=>"cadoles_core_config_theme"]);
if($sidebar) {
$em->remove($sidebar);
$em->flush();
}
}
$output->writeln(''); $output->writeln('');
} }
@ -159,4 +275,17 @@ class InitDataCommand extends ContainerAwareCommand
$rootdir = rtrim(getcwd(), '/'); $rootdir = rtrim(getcwd(), '/');
return $rootdir . '/' . trim($extra['symfony-app-dir'], '/'); return $rootdir . '/' . trim($extra['symfony-app-dir'], '/');
} }
protected function addModeration($profil,$route,$visible) {
$em = $this->getContainer()->get('doctrine')->getEntityManager();
$entity=$em->getRepository('CadolesCoreBundle:PermModo')->findOneBy(["route"=>$route,"permmodoprofil"=>$profil]);
if(!$entity) {
$entity=new PermModo();
$entity->setRoute($route);
$entity->setVisible($visible);
$entity->setPermmodoprofil($profil);
$em->persist($entity);
$em->flush();
}
}
} }

View File

@ -287,7 +287,7 @@ class OnlyCommand extends Command
$this->em->flush(); $this->em->flush();
// On ajoute le propriétaire en tant que membre du groupe // On ajoute le propriétaire en tant que membre du groupe
$this->addMember($group,$user,true); $this->addMember($group,$user,100);
// On controle que le groupe a bien page / calendrier / blog / project // On controle que le groupe a bien page / calendrier / blog / project
$this->ctrlFgcanshare($group,$user,$pagetemplate); $this->ctrlFgcanshare($group,$user,$pagetemplate);
@ -318,7 +318,7 @@ class OnlyCommand extends Command
// On s'assure qu'il n'es pas déjà rattaché // On s'assure qu'il n'es pas déjà rattaché
$usergroup=$this->em->getRepository("CadolesCoreBundle:UserGroup")->findOneBy(["user"=>$user,"group"=>$group]); $usergroup=$this->em->getRepository("CadolesCoreBundle:UserGroup")->findOneBy(["user"=>$user,"group"=>$group]);
if(!$usergroup) { if(!$usergroup) {
$this->addMember($group,$user,false); $this->addMember($group,$user,0);
} }
} }
} }
@ -578,12 +578,12 @@ class OnlyCommand extends Command
} }
private function addMember($group,$user,$fgmanager) { private function addMember($group,$user,$role) {
$key = Uuid::uuid4(); $key = Uuid::uuid4();
$usergroup=new Usergroup; $usergroup=new UserGroup();
$usergroup->setUser($user); $usergroup->setUser($user);
$usergroup->setGroup($group); $usergroup->setGroup($group);
$usergroup->setFgmanager($fgmanager); $usergroup->setRolegroup($role);
$usergroup->setKeyvalue($key); $usergroup->setKeyvalue($key);
$this->em->persist($usergroup); $this->em->persist($usergroup);
$this->em->flush(); $this->em->flush();

View File

@ -380,6 +380,46 @@ class PurgeFileCommand extends Command
if($result) $find=true; if($result) $find=true;
} }
// Si pas trouvé on la cherche dans les projecttask
if(!$find) {
$result = $this->em
->getRepository("CadolesPortalBundle:Projecttask")->createQueryBuilder('projecttask')
->where('projecttask.description LIKE :tofind')
->setParameter('tofind', '%'.$tofind.'%')
->getQuery()->getResult();
if($result) $find=true;
}
// Si pas trouvé on la cherche dans les projectcomment
if(!$find) {
$result = $this->em
->getRepository("CadolesPortalBundle:Projectcomment")->createQueryBuilder('projectcomment')
->where('projectcomment.description LIKE :tofind')
->setParameter('tofind', '%'.$tofind.'%')
->getQuery()->getResult();
if($result) $find=true;
}
// Si pas trouvé on la cherche dans les blogcomment
if(!$find) {
$result = $this->em
->getRepository("CadolesPortalBundle:Blogcomment")->createQueryBuilder('blogcomment')
->where('blogcomment.description LIKE :tofind')
->setParameter('tofind', '%'.$tofind.'%')
->getQuery()->getResult();
if($result) $find=true;
}
// Si pas trouvé on la cherche dans les alert
if(!$find) {
$result = $this->em
->getRepository("CadolesPortalBundle:Alert")->createQueryBuilder('alert')
->where('alert.content LIKE :tofind')
->setParameter('tofind', '%'.$tofind.'%')
->getQuery()->getResult();
if($result) $find=true;
}
// Si pas trouvé on supprime // Si pas trouvé on supprime
if(!$find) { if(!$find) {
$this->writeln($name); $this->writeln($name);

View File

@ -0,0 +1,343 @@
<?php
namespace Cadoles\CoreBundle\Command;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Question\ConfirmationQuestion;
use Symfony\Component\Console\Input\ArrayInput;
use Cadoles\CoreBundle\Entity\User;
use Cadoles\CoreBundle\Entity\Group;
use Cadoles\CoreBundle\Entity\UserGroup;
class ScribeToNinegateCommand extends Command
{
private $container;
private $em;
private $output;
private $connection;
private $host;
private $port;
private $pwd;
private $user;
protected function configure()
{
$this
->setName('Core:ScribeToNinegate')
->setDescription('Récupére un annuaire Scribe et le transforme en donnée Ninegate')
->setHelp('Récupére un annuaire Scribe et le transforme en donnée Ninegate')
->addArgument('host', InputArgument::REQUIRED, 'host du ldap scribe')
->addArgument('pwd', InputArgument::REQUIRED, 'pwd du compte cn=admin,o=gouv,c=fr')
;
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$this->container = $this->getApplication()->getKernel()->getContainer();
$this->em = $this->container->get('doctrine')->getEntityManager();
$this->output = $output;
// Récupérer les parametres
$this->host = $input->getArgument('host');
$this->port = 389;
$this->pwd = $input->getArgument('pwd');
$this->user = "cn=reader,o=gouv,c=fr";
$ldap_basedn = $this->container->getParameter('ldap_basedn');
$ldap_username = $this->container->getParameter('ldap_username');
$ldap_firstname = $this->container->getParameter('ldap_firstname');
$ldap_lastname = $this->container->getParameter('ldap_lastname');
$ldap_email = $this->container->getParameter('ldap_email');
$ldap_usersadmin = $this->container->getParameter('ldap_usersadmin');
$fieldstoread = array($ldap_username,$ldap_firstname,$ldap_lastname,$ldap_email,"userPassword");
if(!$this->connect()) {
$this->writelnred("IMPOSSIBLE DE SE CONNECTER A L'ANNUAIRE SCRIBE");
return 0;
}
// On arrive à se connecter à l'annuaire du scribe
$this->writeln("CONNEXION A L'ANNUAIRE SCRIBE");
// Attention confirmation
$this->writeln('');
$this->writelnred('ATTENTION');
$this->writelnred('En confirmant vous allez totalement réinitialiser votre Ninegate');
$helper = $this->getHelper('question');
$question = new ConfirmationQuestion('Souhaitez-vous poursuivre (yes/no)?', false);
if (!$helper->ask($input, $output, $question)) {
return 0;
}
$this->writelnred('');
$this->writelnred('== PURGE');
$this->writelnred('PURGE DES CONFIG');
$this->purge('CadolesCoreBundle:Config');
$this->purge('CadolesCoreBundle:Script');
$this->purge('CadolesCoreBundle:Statistic');
$this->purge('CadolesCoreBundle:Whitelist');
$this->writelnred('PURGE DES ITEMS');
$this->purge('CadolesPortalBundle:Item');
$this->purge('CadolesPortalBundle:Itemcategory');
$this->writelnred('PURGE DES BOOKMARKS');
$this->purge('CadolesPortalBundle:Bookmark');
$this->writelnred('PURGE DES ALERTES');
$this->purge('CadolesPortalBundle:Alert');
$this->purge('CadolesPortalBundle:Alertcategory');
$this->writelnred('PURGE DES NOTICE');
$this->purge('CadolesPortalBundle:Notice');
$this->writelnred('PURGE DES CALENDAR');
$this->purge('CadolesPortalBundle:Calendar');
$this->writelnred('PURGE DES FLUX');
$this->purge('CadolesPortalBundle:Flux');
$this->writelnred('PURGE DES BLOG');
$this->purge('CadolesPortalBundle:Blog');
$this->writelnred('PURGE DES PROJECT');
$this->purge('CadolesPortalBundle:Project');
$this->writelnred('PURGE DES UTILISATEURS');
$this->purge('CadolesCoreBundle:User');
$this->writelnred('PURGE DES INSCRIPTIONS');
$this->purge('CadolesCoreBundle:Registration');
$this->writelnred('PURGE DES GROUPES');
$this->purge('CadolesCoreBundle:Group');
$this->writelnred('PURGE DES NIVEAU 02');
$this->purge('CadolesCoreBundle:Niveau02');
$this->writelnred('PURGE DES NIVEAU 01');
$this->purge('CadolesCoreBundle:Niveau01');
$this->writelnred('PURGE DES PAGES');
$this->purge('CadolesPortalBundle:Page');
$this->writelnred('PURGE DES ICONES');
$this->purge('CadolesPortalBundle:Icon');
$this->writeln('');
$this->writelnred('');
$this->writelnred('== INIT DATA');
$command = $this->getApplication()->find("Core:InitData");
$parameter = new ArrayInput([]);
$command->run($parameter, $output);
$command = $this->getApplication()->find("Cron:InitData");
$parameter = new ArrayInput([]);
$command->run($parameter, $output);
$command = $this->getApplication()->find("Portal:InitData");
$parameter = new ArrayInput([]);
$command->run($parameter, $output);
$command = $this->getApplication()->find("Core:Script");
$parameter = new ArrayInput([]);
$command->run($parameter, $output);
$this->writelnred('');
$this->writelnred('== USERS SCRIBE TO USERS NINEGATE');
$niveau01=$this->em->getRepository('CadolesCoreBundle:Niveau01')->find(-100);
$niveau01->setSiren("");
$this->em->persist($niveau01);
$this->em->flush();
$scribeusers = $this->search("(&(uid=*)(mail=*)(objectClass=person)(!(description=Computer)))", $fieldstoread, $ldap_basedn);
foreach($scribeusers as $scribeuser) {
if($scribeuser[$ldap_email]=="") {
$this->writelnred("Compte sans mail = ".$scribeuser[$ldap_username]." ".$scribeuser[$ldap_email]);
continue;
}
$user=$this->em->getRepository('CadolesCoreBundle:User')->findOneBy(array('email' => $scribeuser[$ldap_email]));
if($user&&$user->getUsername()!=$scribeuser[$ldap_username]) {
$this->writelnred("EMAIL en double = ".$scribeuser[$ldap_username]." ".$scribeuser[$ldap_email]);
continue;
}
$this->writeln($scribeuser[$ldap_username]." ".$scribeuser[$ldap_email]);
$user=$this->em->getRepository('CadolesCoreBundle:User')->findOneBy(array('username' => $scribeuser[$ldap_username]));
if(!$user) {
$user = new User();
$user->setUsername($scribeuser[$ldap_username]);
}
$user->setLastname($scribeuser[$ldap_lastname]);
$user->setFirstname($scribeuser[$ldap_firstname]);
$user->setEmail($scribeuser[$ldap_email]);
$user->setNiveau01($niveau01);
$user->setSiren($niveau01->getSiren());
$user->setPasswordDirect($scribeuser["userpassword"]);
$user->setSalt(uniqid(mt_rand(), true));
$user->setVisible(true);
$user->setAuthlevel("simple");
$user->setBelongingpopulation("agent");
if(in_array($scribeuser[$ldap_username],$ldap_usersadmin))
$user->setRole("ROLE_ADMIN");
else
$user->setRole("ROLE_USER");
$this->em->persist($user);
$this->em->flush();
}
$this->writelnred('');
$this->writelnred('== USERS SCRIBE TO USERS NINEGATE');
$scribegroups = $this->search("(objectClass=posixGroup)", ["cn","memberuid"], $ldap_basedn);
$exludgroupe=["DomainAdmins","DomainUsers","DomainComputers","PrintOperators","eleves","professeurs"];
foreach($scribegroups as $scribegroup) {
if(in_array($scribegroup["cn"],$exludgroupe)) continue;
$this->writeln($scribegroup["cn"]);
$group=$this->em->getRepository('CadolesCoreBundle:Group')->findOneBy(array('label' => $scribegroup["cn"]));
if(!$group) {
$group = new Group();
$group->setLabel($scribegroup["cn"]);
}
$group->setFgcanshare(false);
$group->setFgcancreatepage(false);
$group->setFgcancreateblog(false);
$group->setFgcancreatecalendar(false);
$group->setFgcancreateproject(false);
$group->setFgopen(false);
$group->setFgall(false);
$group->setFgtemplate(false);
$this->em->persist($group);
$this->em->flush();
if(array_key_exists("memberuid",$scribegroup))
{
if(!is_array($scribegroup["memberuid"]))
$scribegroup["memberuid"] = [ $scribegroup["memberuid"] ];
}
else
$scribegroup["memberuid"] = [];
foreach($scribegroup["memberuid"] as $scribemember) {
$user=$this->em->getRepository('CadolesCoreBundle:User')->findOneBy(array('username' => $scribemember));
if($user) {
$member=$this->em->getRepository('CadolesCoreBundle:UserGroup')->findOneBy(array('group' => $group, 'user' => $user));
if(!$member) {
$member= new UserGroup();
$member->setGroup($group);
$member->setUser($user);
$member->setRolegroup(0);
$this->em->persist($member);
$this->em->flush();
}
}
}
}
return 1;
}
private function purge($entityname) {
// Si on purge les pages il faut d'abord purger les pages qui ne sont pas pagetemplate
if($entityname=="CadolesPortalBundle:Page") {
$qb=$this->em->createQueryBuilder();
$entitys = $qb->select('t')
->from($entityname,'t')
->where($qb->expr()->isNotNull('t.page'))
->getQuery()
->getResult();
foreach ($entitys as $entity) {
$this->em->remove($entity);
}
$this->em->flush();
}
$entitys=$this->em->getRepository($entityname)->findAll();
foreach ($entitys as $entity) {
$this->em->remove($entity);
}
$this->em->flush();
}
private function connect() {
if($this->connection){
return $this->connection;
} else {
$ldapConn = ldap_connect($this->host, $this->port);
if($ldapConn){
ldap_set_option($ldapConn, LDAP_OPT_PROTOCOL_VERSION, 3);
if(ldap_bind( $ldapConn, $this->user, $this->pwd)){
$this->connection = $ldapConn;
return $this->connection;
}
}
}
}
public function search($filter, $attributes = array(), $subBranch = '') {
$connection = $this->connect();
$branch = ($subBranch ? $subBranch : $this->baseDN);
$result = ldap_search($connection, $branch, $filter, $attributes,0,0,0);
if(!$result) {
$this->ldapError();
}
return $this->resultToArray($result);
}
private function resultToArray($result){
$connection = $this->connect();
$resultArray = array();
if($result){
$entry = ldap_first_entry($connection, $result);
while ($entry){
$row = array();
$attr = ldap_first_attribute($connection, $entry);
while ($attr){
$val = ldap_get_values_len($connection, $entry, $attr);
if(array_key_exists('count', $val) AND $val['count'] == 1){
$row[strtolower($attr)] = $val[0];
} else {
$row[strtolower($attr)] = $val;
}
$attr = ldap_next_attribute($connection, $entry);
}
$resultArray[] = $row;
$entry = ldap_next_entry($connection, $entry);
}
}
return $resultArray;
}
public function ldapError(){
$connection = $this->connect();
throw new \Exception(
'Error: ('. ldap_errno($connection) .') '. ldap_error($connection)
);
}
private function writelnred($string) {
$this->output->writeln('<fg=red>'.$string.'</>');
}
private function writeln($string) {
$this->output->writeln($string);
}
}

View File

@ -49,7 +49,7 @@ class ScriptCommand extends Command
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"visibletrue"]); $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"visibletrue"]);
if(!$script) { if(!$script) {
$this->writelnred("== SCRIPT = visibletrue"); $this->writeln("== SCRIPT = visibletrue");
$this->visibletrue(); $this->visibletrue();
$script=new Script(); $script=new Script();
@ -61,7 +61,7 @@ class ScriptCommand extends Command
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"setusersniveau"]); $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"setusersniveau"]);
if(!$script) { if(!$script) {
$this->writelnred("== SCRIPT = setusersniveau"); $this->writeln("== SCRIPT = setusersniveau");
$this->setusersniveau(); $this->setusersniveau();
$script=new Script(); $script=new Script();
@ -73,7 +73,7 @@ class ScriptCommand extends Command
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"setfgcancreateproject"]); $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"setfgcancreateproject"]);
if(!$script) { if(!$script) {
$this->writelnred("== SCRIPT = setfgcancreateproject"); $this->writeln("== SCRIPT = setfgcancreateproject");
$this->setfgcancreateproject(); $this->setfgcancreateproject();
$script=new Script(); $script=new Script();
@ -85,7 +85,7 @@ class ScriptCommand extends Command
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"createproject"]); $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"createproject"]);
if(!$script) { if(!$script) {
$this->writelnred("== SCRIPT = createproject"); $this->writeln("== SCRIPT = createproject");
$this->createproject(); $this->createproject();
$script=new Script(); $script=new Script();
@ -97,7 +97,7 @@ class ScriptCommand extends Command
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"createthumbmini"]); $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"createthumbmini"]);
if(!$script) { if(!$script) {
$this->writelnred("== SCRIPT = createthumbmini"); $this->writeln("== SCRIPT = createthumbmini");
$this->createthumbmini(); $this->createthumbmini();
$script=new Script(); $script=new Script();
@ -109,7 +109,7 @@ class ScriptCommand extends Command
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"createwidgetproject"]); $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"createwidgetproject"]);
if(!$script) { if(!$script) {
$this->writelnred("== SCRIPT = createwidgetproject"); $this->writeln("== SCRIPT = createwidgetproject");
$this->createwidgetproject(); $this->createwidgetproject();
$script=new Script(); $script=new Script();
@ -121,7 +121,7 @@ class ScriptCommand extends Command
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"renamegroup"]); $script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"renamegroup"]);
if(!$script) { if(!$script) {
$this->writelnred("== SCRIPT = renamegroup"); $this->writeln("== SCRIPT = renamegroup");
$this->renamegroup(); $this->renamegroup();
$script=new Script(); $script=new Script();
@ -132,6 +132,68 @@ class ScriptCommand extends Command
} }
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"rolegroup"]);
if(!$script) {
$this->writeln("== SCRIPT = rolegroup");
$this->rolegroup();
$script=new Script();
$script->setName("rolegroup");
$this->em->persist($script);
$this->em->flush();
$this->writeln("");
}
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"userdefaultmissing"]);
if(!$script) {
$this->writeln("== SCRIPT = userdefaultmissing");
$this->userdefaultmissing();
$script=new Script();
$script->setName("userdefaultmissing");
$this->em->persist($script);
$this->em->flush();
$this->writeln("");
}
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"updateorthographe01"]);
if(!$script) {
$this->writeln("== SCRIPT = updateorthographe01");
$this->updateorthographe01();
$script=new Script();
$script->setName("updateorthographe01");
$this->em->persist($script);
$this->em->flush();
$this->writeln("");
}
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"updateorthographe02"]);
if(!$script) {
$this->writeln("== SCRIPT = updateorthographe02");
$this->updateorthographe02();
$script=new Script();
$script->setName("updateorthographe02");
$this->em->persist($script);
$this->em->flush();
$this->writeln("");
}
if($this->container->getParameter('ldap_template')=="scribe") {
$script=$this->em->getRepository("CadolesCoreBundle:Script")->findOneBy(["name"=>"purgepageprofil"]);
if(!$script) {
$this->writeln("== SCRIPT = purgepageprofil");
$this->purgepageprofil();
$script=new Script();
$script->setName("purgepageprofil");
$this->em->persist($script);
$this->em->flush();
$this->writeln("");
}
}
return 1; return 1;
} }
@ -289,11 +351,116 @@ class ScriptCommand extends Command
} }
} }
private function rolegroup(){
$usergroups = $this->em->getRepository('CadolesCoreBundle:UserGroup')->findAll();
foreach($usergroups as $usergroup) {
if(!$usergroup->getRolegroup()) {
$role=0;
if($usergroup->getFgmanager()) {
$role=50;
if($usergroup->getUser()==$usergroup->getGroup()->getOwner()) $role=100;
}
$usergroup->setRolegroup($role);
$this->em->persist($usergroup);
$this->em->flush();
}
}
}
private function userdefaultmissing(){
$users = $this->em->getRepository('CadolesCoreBundle:User')->findAll();
foreach($users as $user) {
if($user->getVisible()=="") {
$user->setVisible(true);
$this->em->persist($user);
$this->em->flush();
}
if($user->getAuthlevel()=="") {
$user->setAuthlevel("simple");
$this->em->persist($user);
$this->em->flush();
}
if($user->getBelongingpopulation()=="") {
$user->setBelongingpopulation("agent");
$this->em->persist($user);
$this->em->flush();
}
}
}
private function updateorthographe01(){
$config=$this->em->getRepository('CadolesCoreBundle:Config')->find("fgforceconnect");
if($config) {
$config->setHelp("Forcer la connexion afin de rendre votre site privé");
$this->em->persist($config);
$this->em->flush();
}
$config=$this->em->getRepository('CadolesCoreBundle:Config')->find("fontfacebody");
if($config) {
$config->setHelp("Police générale de votre site");
$this->em->persist($config);
$this->em->flush();
}
$config=$this->em->getRepository('CadolesCoreBundle:Config')->find("permgroup");
if($config) {
$config->setHelp("Détermine quel rôle aura la permission de créer des groupes de travail");
$this->em->persist($config);
$this->em->flush();
}
$config=$this->em->getRepository('CadolesCoreBundle:Config')->find("permannu");
if($config) {
$config->setHelp("Détermine quel rôle aura la permission de voir l'annuaire");
$this->em->persist($config);
$this->em->flush();
}
$config=$this->em->getRepository('CadolesCoreBundle:Config')->find("labelbookmarkuser");
if($config) {
$config->setHelp("Titre de la section des items créés par l'utilisateur, et qui ne sont listés que dans cette section.");
$this->em->persist($config);
$this->em->flush();
}
$config=$this->em->getRepository('CadolesCoreBundle:Config')->find("labelbookmarkitem");
if($config) {
$config->setHelp("Titre sur la section des items créés par l'administrateur ou le modérateur, mis à la disposition de l'utilisateur, et sélectionnés par ce dernier pour apparaitre dans cette section plutôt que dans leur catégorie d'origine.");
$this->em->persist($config);
$this->em->flush();
}
}
private function updateorthographe02(){
$entityItem = $this->em->getRepository('CadolesPortalBundle:Item')->find(-398);
if($entityItem) {
if($entityItem->getSubtitle()!="Messagerie") {
$entityItem->setSubtitle("Messagerie");
$entityItem->setContent("Messagerie permettant la communication sécurisée par méls. La messagerie na pas pour but denvoyer des gros fichiers mais plutôt de communiquer des informations, des liens.");
$this->em->persist($entityItem);
$this->em->flush();
}
}
}
private function purgepageprofil() {
$page=$this->em->getRepository('CadolesPortalBundle:Page')->findOneBy(['name'=>'PROFIL - Enseignants']);
if($page) {
$this->em->remove($page);
$this->em->flush();
}
$page=$this->em->getRepository('CadolesPortalBundle:Page')->findOneBy(['name'=>'PROFIL - Administratifs']);
if($page) {
$this->em->remove($page);
$this->em->flush();
}
}

View File

@ -36,6 +36,8 @@ class SynchroCommand extends Command
private $rootlog; private $rootlog;
private $ldap; private $ldap;
private $ldap_basedn; private $ldap_basedn;
private $ldap_baseuser;
private $ldap_basegroup;
protected function configure() protected function configure()
{ {
@ -66,6 +68,25 @@ class SynchroCommand extends Command
$labelniveau02 = mb_strtoupper($this->container->getParameter('labelniveau02')); $labelniveau02 = mb_strtoupper($this->container->getParameter('labelniveau02'));
$masteridentity = $this->container->getParameter('masteridentity'); $masteridentity = $this->container->getParameter('masteridentity');
$this->ldap_basedn = $this->container->getParameter('ldap_basedn');
$this->ldap_baseuser = $this->container->getParameter('ldap_baseuser');
$this->ldap_basegroup = $this->container->getParameter('ldap_basegroup');
$ldap_username = strtolower($this->container->getParameter('ldap_username'));
$ldap_firstname = strtolower($this->container->getParameter('ldap_firstname'));
$ldap_lastname = strtolower($this->container->getParameter('ldap_lastname'));
$ldap_email = strtolower($this->container->getParameter('ldap_email'));
$ldap_member = strtolower($this->container->getParameter('ldap_member'));
$scribe_group = strtolower($this->container->getParameter('scribe_group'));
$ldap_type = $this->container->getParameter('ldap_type');
$ldap_template = $this->container->getParameter('ldap_template');
$ldap_usersadmin = $this->container->getParameter('ldap_usersadmin');
$scribe_master = strtolower($this->container->getParameter('scribe_master'));
$fieldstoread = array($ldap_username,$ldap_firstname,$ldap_lastname,$ldap_email);
$ldapusers = array();
$ldapmails = array();
$simulate = $input->getArgument('simulate'); $simulate = $input->getArgument('simulate');
if($simulate=="") $simulate="true"; if($simulate=="") $simulate="true";
@ -93,20 +114,6 @@ class SynchroCommand extends Command
$this->writeln('== SYNCHONISATION LDAP TO BUNDLE ===================='); $this->writeln('== SYNCHONISATION LDAP TO BUNDLE ====================');
$this->writeln('====================================================='); $this->writeln('=====================================================');
$this->ldap_basedn = $this->container->getParameter('ldap_basedn');
$ldap_template = $this->container->getParameter('ldap_template');
$ldap_username = $this->container->getParameter('ldap_username');
$ldap_firstname = $this->container->getParameter('ldap_firstname');
$ldap_lastname = $this->container->getParameter('ldap_lastname');
$ldap_email = $this->container->getParameter('ldap_email');
$ldap_usersadmin = $this->container->getParameter('ldap_usersadmin');
$scribe_group = $this->container->getParameter('scribe_group');
$scribe_master = $this->container->getParameter('scribe_master');
$fieldstoread = array($ldap_username,$ldap_firstname,$ldap_lastname,$ldap_email);
$ldapusers = array();
$ldapmails = array();
if($ldap_template=="scribe") { if($ldap_template=="scribe") {
$this->writeln(''); $this->writeln('');
$this->writeln('== PROFILS =========================================='); $this->writeln('== PROFILS ==========================================');
@ -121,7 +128,7 @@ class SynchroCommand extends Command
$ldapfilter="(|(&(uid=*)(ENTPersonProfils=enseignant))(&(uid=*)(typeadmin=0))(&(uid=*)(typeadmin=2)))"; $ldapfilter="(|(&(uid=*)(ENTPersonProfils=enseignant))(&(uid=*)(typeadmin=0))(&(uid=*)(typeadmin=2)))";
$label="PROFIL - Enseignants"; $label="PROFIL - Enseignants";
$this->writeln(" - $label"); $this->writeln(" - $label");
if(!$simulate) $this->addmodGroup($label,$ldapfilter,$scribe_group); if(!$simulate) $this->addmodGroup($label,$ldapfilter,false);
// Responsables // Responsables
$ldapfilter="(&(uid=*)(ENTPersonProfils=responsable))"; $ldapfilter="(&(uid=*)(ENTPersonProfils=responsable))";
@ -133,7 +140,20 @@ class SynchroCommand extends Command
$ldapfilter="(&(uid=*)(ENTPersonProfils=administratif))"; $ldapfilter="(&(uid=*)(ENTPersonProfils=administratif))";
$label="PROFIL - Administratifs"; $label="PROFIL - Administratifs";
$this->writeln(" - $label"); $this->writeln(" - $label");
if(!$simulate) $this->addmodGroup($label,$ldapfilter,$scribe_group); if(!$simulate) $this->addmodGroup($label,$ldapfilter,false);
// Niveaux
$this->writeln('');
$this->writeln('== NIVEAUX ==========================================');
$results = $this->ldap->search("type=Niveau", ['cn','description','gidNumber'], $this->ldap_basedn);
foreach($results as $result) {
$cn=$result["cn"];
$ldapfilter="(&(type=Niveau)(cn=$cn))";
$label="NIVEAU - ".$result["cn"];
$this->writeln(" - $label");
if(!$simulate) $this->addmodGroup($label,$ldapfilter,false);
}
// Classes // Classes
$this->writeln(''); $this->writeln('');
@ -148,6 +168,32 @@ class SynchroCommand extends Command
if(!$simulate) $this->addmodGroup($label,$ldapfilter,$scribe_group); if(!$simulate) $this->addmodGroup($label,$ldapfilter,$scribe_group);
} }
// Elèves des Classes
$this->writeln('');
$this->writeln('== ELEVES DES CLASSES ==========================================');
$results = $this->ldap->search("type=Classe", ['cn','description','gidNumber'], $this->ldap_basedn);
foreach($results as $result) {
$cn=$result["cn"];
$ldapfilter="(&(type=Classe)(cn=$cn))";
$label="ELEVES - ".$result["cn"];
$this->writeln(" - $label");
if(!$simulate) $this->addmodGroup($label,$ldapfilter,false);
}
// Professeurs des Classes
$this->writeln('');
$this->writeln('== PROFESSEURS DES CLASSES ==========================================');
$results = $this->ldap->search("type=Classe", ['cn','description','gidNumber'], $this->ldap_basedn);
foreach($results as $result) {
$cn=$result["cn"];
$ldapfilter="(|(&(type=Equipe)(cn=profs-$cn))(&(ENTPersonProfils=Administratif)(divcod=$cn)))";
$label="PROFESSEURS - ".$result["cn"];
$this->writeln(" - $label");
if(!$simulate) $this->addmodGroup($label,$ldapfilter,false);
}
// Options // Options
$this->writeln(''); $this->writeln('');
$this->writeln('== OPTIONS =========================================='); $this->writeln('== OPTIONS ==========================================');
@ -174,6 +220,22 @@ class SynchroCommand extends Command
if(!$simulate) $this->addmodGroup($label,$ldapfilter,$scribe_group); if(!$simulate) $this->addmodGroup($label,$ldapfilter,$scribe_group);
} }
} }
elseif($ldap_template=="open") {
if($this->container->getParameter('openldapsynchrogroup')) {
$this->writeln('');
$this->writeln('== GROUPES ==========================================');
$results = $this->ldap->search($this->container->getParameter('openldapreqgroup'), ['cn','description','gidNumber'], $this->ldap_basegroup);
foreach($results as $result) {
$cn=$result["cn"];
$ldapfilter="(&".$this->container->getParameter('openldapreqgroup')."(cn=$cn))";
$label=$result["cn"];
$this->writeln(" - $label");
if(!$simulate) $this->addmodGroup($label,$ldapfilter,false);
}
}
}
$this->writeln(''); $this->writeln('');
$this->writeln('== USERS ============================================'); $this->writeln('== USERS ============================================');
@ -193,7 +255,7 @@ class SynchroCommand extends Command
// On execute le filtre d'appartenance à ce niveau // On execute le filtre d'appartenance à ce niveau
$this->writeln("== Récupération des utilisateurs de l'annuaire"); $this->writeln("== Récupération des utilisateurs de l'annuaire");
$niveau01=$this->em->getRepository('CadolesCoreBundle:Niveau01')->find($data["id"]); $niveau01=$this->em->getRepository('CadolesCoreBundle:Niveau01')->find($data["id"]);
$results = $this->ldap->search($niveau01->getLdapfilter(), $fieldstoread, $this->ldap_basedn); $results = $this->ldap->search($niveau01->getLdapfilter(), $fieldstoread, $this->ldap_baseuser);
$nbuserstotal=count($results); $nbuserstotal=count($results);
// Pour chaque utilisateur ldap // Pour chaque utilisateur ldap
@ -213,6 +275,10 @@ class SynchroCommand extends Command
$result[$ldap_username]=utf8_encode($result[$ldap_username]); $result[$ldap_username]=utf8_encode($result[$ldap_username]);
if(!isset($result[$ldap_lastname])) $result[$ldap_lastname] = ""; if(!isset($result[$ldap_lastname])) $result[$ldap_lastname] = "";
if(!isset($result[$ldap_firstname])) $result[$ldap_firstname] = ""; if(!isset($result[$ldap_firstname])) $result[$ldap_firstname] = "";
if(!array_key_exists($ldap_email,$result)||empty($result[$ldap_email])) {
$result[$ldap_email]=$result[$ldap_username]."@nomail.fr";
}
$result[$ldap_email]=strtolower($result[$ldap_email]); $result[$ldap_email]=strtolower($result[$ldap_email]);
$result[$ldap_email]=utf8_encode($result[$ldap_email]); $result[$ldap_email]=utf8_encode($result[$ldap_email]);
@ -286,18 +352,29 @@ class SynchroCommand extends Command
$this->writeln('== '.$group->getLabel()); $this->writeln('== '.$group->getLabel());
if(!is_null($ldapfilter)) { if(!is_null($ldapfilter)) {
$results = $this->ldap->search($ldapfilter,[$ldap_username,"memberuid"] , $this->ldap_basedn); $results = $this->ldap->search($ldapfilter,[$ldap_username,$ldap_member] , $this->ldap_basedn);
foreach($results as $result) { foreach($results as $result) {
if(isset($result["memberuid"])) {
if(isset($result[$ldap_member])) {
// Si memberid est un tableau il y a plusieur user dedans // Si memberid est un tableau il y a plusieur user dedans
if(is_array($result["memberuid"])) { if(is_array($result[$ldap_member])) {
foreach($result["memberuid"] as $key => $value) { foreach($result[$ldap_member] as $key => $value) {
if(is_int($key)) { if(is_int($key)) {
$user=$this->em->getRepository('CadolesCoreBundle:User')->findOneBy(array('username' => $value)); $username=$value;
// si le username forme un DN, il faut récupérer juste la première entrée
$tmp=explode(",",$username);
if(is_array($tmp)&&count($tmp)>1) {
$tmp=explode("=",$tmp[0]);
$username=$tmp[1];
}
$user=$this->em->getRepository('CadolesCoreBundle:User')->findOneBy(array('username' => $username));
if($user) { if($user) {
array_push($ldapusersgroup,$value); array_push($ldapusersgroup,$username);
$this->writeln(" - Rattacher >> ".$value); $this->writeln(" - Rattacher >> ".$username);
if(!$simulate) $this->addtoGroup($user,$group); if(!$simulate) $this->addtoGroup($user,$group);
} }
} }
@ -305,10 +382,19 @@ class SynchroCommand extends Command
} }
// sinon m'a qu'un seul uid // sinon m'a qu'un seul uid
else { else {
$user=$this->em->getRepository('CadolesCoreBundle:User')->findOneBy(array('username' => $result["memberuid"])); $username=$result[$ldap_member];
// si le username forme un DN, il faut récupérer juste la première entrée
$tmp=explode(",",$username);
if(is_array($tmp)&&count($tmp)>1) {
$tmp=explode("=",$tmp[0]);
$username=$tmp[1];
}
$user=$this->em->getRepository('CadolesCoreBundle:User')->findOneBy(array('username' => $username));
if($user) { if($user) {
array_push($ldapusersgroup,$result["memberuid"]); array_push($ldapusersgroup,$username);
$this->writeln(" - Rattacher >> ".$result["memberuid"]); $this->writeln(" - Rattacher >> ".$username);
if(!$simulate) $this->addtoGroup($user,$group); if(!$simulate) $this->addtoGroup($user,$group);
} }
} }
@ -461,7 +547,7 @@ class SynchroCommand extends Command
// Mise à jour si elle existe // Mise à jour si elle existe
if(count($results) > 0) { if(count($results) > 0) {
$this->writeln(' - Modification dans annuaire >> '.$data->getLabel()); $this->writeln(' - Modification dans annuaire >> '.$data->getLabel());
if(!$simulate) $this->ldap->modifyNiveau01($data,$data->getLabel()); if(!$simulate) $this->ldap->modifyNiveau01($data,$data->getLabel(),$results[0]["cn"]);
} }
// Sinon création de la fiche // Sinon création de la fiche
else { else {
@ -488,7 +574,7 @@ class SynchroCommand extends Command
// Mise à jour si elle existe // Mise à jour si elle existe
if(count($results) > 0) { if(count($results) > 0) {
$this->writeln(' - Modification dans annuaire >> '.$data->getLabel()); $this->writeln(' - Modification dans annuaire >> '.$data->getLabel());
if(!$simulate) $this->ldap->modifyNiveau02($data,$data->getLabel()); if(!$simulate) $this->ldap->modifyNiveau02($data,$data->getLabel(),$results[0]["cn"]);
} }
// Sinon création de la fiche // Sinon création de la fiche
else { else {
@ -515,7 +601,7 @@ class SynchroCommand extends Command
// Mise à jour si elle existe // Mise à jour si elle existe
if(count($results) > 0) { if(count($results) > 0) {
$this->writeln(' - Modification dans annuaire >> '.$data->getLabel()); $this->writeln(' - Modification dans annuaire >> '.$data->getLabel());
if(!$simulate) $this->ldap->modifyGroup($data,$data->getLabel()); if(!$simulate) $this->ldap->modifyGroup($data,$data->getLabel(),$results[0]["cn"]);
} }
// Sinon création de la fiche // Sinon création de la fiche
else { else {
@ -535,9 +621,9 @@ class SynchroCommand extends Command
->getQuery() ->getQuery()
->getResult(); ->getResult();
foreach($datas as $data) { foreach($datas as $data) {
$criteria = '(uid='.$data->getUsername().')'; $criteria = '('.$ldap_username.'='.$data->getUsername().')';
$subbranch=$baseUser; $subbranch=$baseUser;
$results = $this->ldap->search($criteria, array('uid'), $subbranch); $results = $this->ldap->search($criteria, array($ldap_username), $subbranch);
// S'assurer que SIREN correspond au Niveau01 // S'assurer que SIREN correspond au Niveau01
if($data->getNiveau01()->getSiren()!=$data->getSiren()) { if($data->getNiveau01()->getSiren()!=$data->getSiren()) {
@ -587,10 +673,13 @@ class SynchroCommand extends Command
$dn=$this->ldap->getNiveau01DN($data->getLabel()); $dn=$this->ldap->getNiveau01DN($data->getLabel());
$attrs["memberuid"]=array(); $attrs["memberuid"]=array();
$attrs["cadolesMember"]=array(); $attrs["cadolesMember"]=array();
if($ldap_type=="AD") $attrs["member"]=array();
foreach($data->getUsers() as $userniveau01) { foreach($data->getUsers() as $userniveau01) {
array_push($attrs["memberuid"],$userniveau01->getUsername()); array_push($attrs["memberuid"],$userniveau01->getUsername());
array_push($attrs["cadolesMember"],$this->ldap->getUserDN($userniveau01)); array_push($attrs["cadolesMember"],$this->ldap->getUserDN($userniveau01));
if($ldap_type=="AD") array_push($attrs["member"],$this->ldap->getUserDN($userniveau01));
$this->writeln(' > '.$userniveau01->getUsername()); $this->writeln(' > '.$userniveau01->getUsername());
} }
if(!$simulate) $this->ldap->ldapModify($dn, $attrs); if(!$simulate) $this->ldap->ldapModify($dn, $attrs);
@ -618,10 +707,13 @@ class SynchroCommand extends Command
$dn=$this->ldap->getNiveau02DN($data->getLabel()); $dn=$this->ldap->getNiveau02DN($data->getLabel());
$attrs["memberuid"]=array(); $attrs["memberuid"]=array();
$attrs["cadolesMember"]=array(); $attrs["cadolesMember"]=array();
if($ldap_type=="AD") $attrs["member"]=array();
foreach($data->getUsers() as $userniveau01) { foreach($data->getUsers() as $userniveau01) {
array_push($attrs["memberuid"],$userniveau01->getUsername()); array_push($attrs["memberuid"],$userniveau01->getUsername());
array_push($attrs["cadolesMember"],$this->ldap->getUserDN($userniveau01)); array_push($attrs["cadolesMember"],$this->ldap->getUserDN($userniveau01));
if($ldap_type=="AD") array_push($attrs["member"],$this->ldap->getUserDN($userniveau01));
$this->writeln(' > '.$userniveau01->getUsername()); $this->writeln(' > '.$userniveau01->getUsername());
} }
if(!$simulate) $this->ldap->ldapModify($dn, $attrs); if(!$simulate) $this->ldap->ldapModify($dn, $attrs);
@ -650,11 +742,14 @@ class SynchroCommand extends Command
$dn=$this->ldap->getGroupDN($data->getLabel()); $dn=$this->ldap->getGroupDN($data->getLabel());
$attrs["memberuid"]=array(); $attrs["memberuid"]=array();
$attrs["cadolesMember"]=array(); $attrs["cadolesMember"]=array();
if($ldap_type=="AD") $attrs['member']=array();
foreach($data->getUsers() as $usergroupe) { foreach($data->getUsers() as $usergroupe) {
if(!in_array($usergroupe->getUser()->getUsername(), $attrs["memberuid"])) { if(!in_array($usergroupe->getUser()->getUsername(), $attrs["memberuid"])) {
array_push($attrs["memberuid"],$usergroupe->getUser()->getUsername()); array_push($attrs["memberuid"],$usergroupe->getUser()->getUsername());
array_push($attrs["cadolesMember"],$this->ldap->getUserDN($usergroupe->getUser())); array_push($attrs["cadolesMember"],$this->ldap->getUserDN($usergroupe->getUser()));
if($ldap_type=="AD") array_push($attrs["member"],$this->ldap->getUserDN($usergroupe->getUser()));
$this->writeln(' > '.$usergroupe->getUser()->getUsername()); $this->writeln(' > '.$usergroupe->getUser()->getUsername());
} }
else { else {
@ -727,15 +822,15 @@ class SynchroCommand extends Command
$this->writeln('== USER ============================================='); $this->writeln('== USER =============================================');
$baseUser = $this->container->getParameter('ldap_baseuser'); $baseUser = $this->container->getParameter('ldap_baseuser');
$criteria = '(uid=*)'; $criteria = '('.$ldap_username.'=*)';
$subbranch=$baseUser; $subbranch=$baseUser;
$results = $this->ldap->search($criteria, array('uid'), $subbranch); $results = $this->ldap->search($criteria, array($ldap_username), $subbranch);
foreach($results as $result) { foreach($results as $result) {
$data = $this->em->getRepository('CadolesCoreBundle:User')->findBy(array('username' => $result["uid"])); $data = $this->em->getRepository('CadolesCoreBundle:User')->findBy(array('username' => $result[$ldap_username]));
if($data) $this->writeln(' - Existe dans bundle >> '.$result["uid"]); if($data) $this->writeln(' - Existe dans bundle >> '.$result[$ldap_username]);
else { else {
$this->writeln(' - A supprimer dans annuaire >> '.$result["uid"]); $this->writeln(' - A supprimer dans annuaire >> '.$result[$ldap_username]);
$dn='uid='.$result["uid"].','.$baseUser; $dn=$ldap_username.'='.$result[$ldap_username].','.$baseUser;
if(!$simulate) $this->ldap->deleteByDN($dn); if(!$simulate) $this->ldap->deleteByDN($dn);
} }
} }
@ -756,6 +851,12 @@ class SynchroCommand extends Command
protected function addmodGroup($label,$ldapfilter,$fgcanshare) { protected function addmodGroup($label,$ldapfilter,$fgcanshare) {
$portal_activate = $this->container->getParameter('portal_activate'); $portal_activate = $this->container->getParameter('portal_activate');
$group=$this->em->getRepository('CadolesCoreBundle:Group')->findOneBy(array('fgtemplate' => false, 'label' => $label));
if($group) {
$this->writelnred(" - ".$label." existe déjà comme groupe interne à Ninegate");
return 0;
}
$group=$this->em->getRepository('CadolesCoreBundle:Group')->findOneBy(array('fgtemplate' => true, 'label' => $label)); $group=$this->em->getRepository('CadolesCoreBundle:Group')->findOneBy(array('fgtemplate' => true, 'label' => $label));
if(!$group) { if(!$group) {
$group=new Group(); $group=new Group();
@ -837,6 +938,7 @@ class SynchroCommand extends Command
$member= new UserGroup(); $member= new UserGroup();
$member->setGroup($group); $member->setGroup($group);
$member->setUser($user); $member->setUser($user);
$member->setRolegroup(0);
} }
// Si modèle scribe // Si modèle scribe
@ -845,7 +947,7 @@ class SynchroCommand extends Command
if($ldap_template=="scribe"&&$scribe_master) { if($ldap_template=="scribe"&&$scribe_master) {
$ldapfilter="(|(&(uid=".$user->getUsername().")(ENTPersonProfils=enseignant))(&(uid=".$user->getUsername().")(typeadmin=0))(&(uid=".$user->getUsername().")(typeadmin=2)))"; $ldapfilter="(|(&(uid=".$user->getUsername().")(ENTPersonProfils=enseignant))(&(uid=".$user->getUsername().")(typeadmin=0))(&(uid=".$user->getUsername().")(typeadmin=2)))";
$results = $this->ldap->search($ldapfilter, ['uid'], $this->ldap_basedn); $results = $this->ldap->search($ldapfilter, ['uid'], $this->ldap_basedn);
if($results) $member->setFgmanager(true); if($results) $member->setRolegroup(50);
} }
$this->em->persist($member); $this->em->persist($member);

View File

@ -0,0 +1,123 @@
<?php
namespace Cadoles\CoreBundle\Command;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Finder\Finder;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\HttpKernel\KernelInterface;
use Doctrine\DBAL\Connection as DBALConnection;
use Doctrine\ORM\EntityManager;
use Symfony\Component\Validator\Constraints\DateTime;
use Cadoles\CoreBundle\Entity\Registration;
class TestRestCommand extends Command
{
private $container;
private $em;
private $output;
private $filesystem;
private $rootlog;
private $byexec;
protected function configure()
{
$this
->setName('Core:TestRest')
->setDescription('Test REST API Ninegate')
->setHelp('Test REST API Ninegate')
->addArgument('login', InputArgument::OPTIONAL, 'uid du user à tester')
;
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$this->container = $this->getApplication()->getKernel()->getContainer();
$this->em = $this->container->get('doctrine')->getEntityManager();
$this->output = $output;
// Récupérer le login à interroger
$login = $input->getArgument('login');
if($login=="") $login="admin";
// Récuper la clé d'API
$masterapikey = $this->container->getParameter('apikeyninegate');
// Recherche des élèments de masterIdentify
$headers = ['Accept' => 'application/json'];
// Localisation du ninegate
$url = "https://".$this->container->getParameter("weburl")."/".$this->container->getParameter("alias");
// rest/user/{login}
// Récupération des informations utilisateurs issus du masteridentity
// key = parametre obligatoire
// key = clé d'accès du l'api
// only = paramétre optionnel
// only = liste des informations désirés = user, items, bookmarks, groups, alerts, calendars
$apiurl = $url."/rest/user/".$login;
$this->writeln($apiurl);
$response = \Unirest\Request::post($apiurl,$headers,["key"=>$masterapikey,"only"=>"user,items,bookmarks"]);
dump($response->body);
$this->writeln('');
return 1;
// rest/alert/hide
// Cache une alert à un utilisateur
// key = parametre obligatoire
// key = clé d'accès de l'api
// login = parametre obligatoire
// login = uid de l'utilisateur sur lequel on souhaite ajouter un bookmark
// idalert = parametre obligatoire
// idalert = id de l'alert à chacher
$apiurl = $url."/rest/alert/hide";
$this->writeln($apiurl);
$response = \Unirest\Request::post($apiurl,$headers,["key"=>$masterapikey,"login"=>"admin","idalert"=>2]);
$idbookmark=$response->body;
dump($response->body);
// rest/bookmark/add
// Ajout d'un item ninegate existant comme bookmark d'un utilisateur
// key = parametre obligatoire
// key = clé d'accès du l'api
// login = parametre obligatoire
// login = uid de l'utilisateur sur lequel on souhaite ajouter un bookmark
// iditem = parametre obligatoire
// iditem = id de l'item ninegate qui doit etre ajouté en tant que bookmark
$apiurl = $url."/rest/bookmark/add";
$this->writeln($apiurl);
$response = \Unirest\Request::post($apiurl,$headers,["key"=>$masterapikey,"login"=>"admin","iditem"=>3]);
$idbookmark=$response->body;
dump($response->body);
// rest/bookmark/del
// Ajout d'un item ninegate existant comme bookmark d'un utilisateur
// key = parametre obligatoire
// key = clé d'accès du l'api
// idbookmark = parametre obligatoire
// idbookmark = id du bookmark à supprimer
$apiurl = $url."/rest/bookmark/del";
$this->writeln($apiurl);
$response = \Unirest\Request::post($apiurl,$headers,["key"=>$masterapikey,"idbookmark"=>$idbookmark]);
$idbookmark=$response->body;
dump($response->body);
$this->writeln('');
return 1;
}
private function writelnred($string) {
$this->output->writeln('<fg=red>'.$string.'</>');
}
private function writeln($string) {
$this->output->writeln($string);
}
}

View File

@ -210,4 +210,33 @@ class AjaxController extends Controller
return $response; return $response;
} }
public function itemlistAction(Request $request)
{
// S'assurer que c'est un appel ajax
if (!$request->isXmlHttpRequest()) {
return new JsonResponse(array('message' => 'Interdit'), 400);
}
$output=array();
$em = $this->getDoctrine()->getManager();
$page_limit=$request->query->get('page_limit');
$q=$request->query->get('q');
$qb = $em->createQueryBuilder();
$qb->select('table')->from("CadolesPortalBundle:Item",'table')
->where('table.title LIKE :value')
->setParameter("value", "%".$q."%")
->orderBy('table.title');
$datas=$qb->setFirstResult(0)->setMaxResults($page_limit)->getQuery()->getResult();
foreach($datas as $data) {
array_push($output,array("id"=>$data->getId(),"text"=>$data->getTitle()));
}
$response = new Response(json_encode($output));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
} }

View File

@ -141,51 +141,6 @@ class ConfigController extends Controller
return $config; return $config;
} }
public function permmodoAction()
{
$em = $this->getDoctrine()->getManager();
$sidebars=$this->get('session')->get('sidebar');
$perms=[];
foreach($sidebars as $sidebar) {
foreach($sidebar["childs"] as $child) {
$permmod=$em->getRepository("CadolesCoreBundle:PermModo")->findOneBy(["route"=>$child["path"]]);
if($permmod) {
array_push($perms,['id' => $permmod->getId(), 'label'=>$sidebar['label'].' >> '.$child['label'],'visible'=>$permmod->getVisible()]);
}
}
}
return $this->render('CadolesCoreBundle:Config:permmodo.html.twig', [
'useheader' => true,
'usemenu' => false,
'usesidebar' => true,
'permmodos' => $perms
]);
}
public function permmodoupdateAction(Request $request)
{
// S'assurer que c'est un appel ajax
if (!$request->isXmlHttpRequest()) return new JsonResponse(array('message' => 'Interdit'), 400);
$output=array();
$id = $request->request->get('id');
$em = $this->getDoctrine()->getManager();
$permmodo = $this->getDoctrine()->getRepository("CadolesCoreBundle:PermModo")->find($id);
if (!$permmodo) throw $this->createNotFoundException('Unable to find entity.');
$permmodo->setVisible(!$permmodo->getVisible());
$em->persist($permmodo);
$em->flush();
$response = new Response(json_encode($output));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
public function datauserdefaultAction(Request $request) public function datauserdefaultAction(Request $request)
{ {
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
@ -371,10 +326,9 @@ class ConfigController extends Controller
$fields["niveau02"]["perm"]=1; $fields["niveau02"]["perm"]=1;
$fields["niveau02"]["label"]=$session->get('labelniveau02'); $fields["niveau02"]["label"]=$session->get('labelniveau02');
} }
if(!array_key_exists("group",$fields)) { if(!array_key_exists("group",$fields)) $fields["group"]["perm"]=1;
$fields["group"]["perm"]=1; $fields["group"]["label"]="Groupes (caché uniquement pour le rôle Utilisateur) ";
$fields["group"]["label"]="Groupes";
}
if(!array_key_exists("job",$fields)) { if(!array_key_exists("job",$fields)) {
$fields["job"]["perm"]=1; $fields["job"]["perm"]=1;
$fields["job"]["label"]="Métier"; $fields["job"]["label"]="Métier";
@ -391,10 +345,8 @@ class ConfigController extends Controller
$fields["telephonenumber"]["perm"]=1; $fields["telephonenumber"]["perm"]=1;
$fields["telephonenumber"]["label"]="Téléphone"; $fields["telephonenumber"]["label"]="Téléphone";
} }
if(!array_key_exists("visitedate",$fields)) { if(!array_key_exists("visitedate",$fields)) $fields["visitedate"]["perm"]=1;
$fields["visitedate"]["perm"]=1; $fields["visitedate"]["label"]="Visite (caché uniquement pour les rôles Animateur et Utilisateur) ";
$fields["visitedate"]["label"]="Visite";
}
if(!$session->get('viewniveau02')) if(!$session->get('viewniveau02'))
unset($fields["niveau02"]); unset($fields["niveau02"]);

View File

@ -26,7 +26,7 @@ class CoreController extends Controller
$itemcategorys=null; $itemcategorys=null;
if($item_activate) { if($item_activate) {
$em->getRepository("CadolesPortalBundle:Item")->getUserItems($user,$bookmarks,$items,$itemcategorys); $em->getRepository("CadolesPortalBundle:Item")->getUserItems($user,$bookmarks,$items,$itemcategorys,null,$this->get('session')->get('ssoitems'));
return $this->render('CadolesPortalBundle:Page:noportal.html.twig',[ return $this->render('CadolesPortalBundle:Page:noportal.html.twig',[
'useheader' => true, 'useheader' => true,
'usemenu' => false, 'usemenu' => false,
@ -59,17 +59,18 @@ class CoreController extends Controller
// Chargement des chartes à signer // Chargement des chartes à signer
if($user) { if($user) {
$notices=$em->getRepository("CadolesPortalBundle:Notice")->getNoticeToRead($user); $notices=$em->getRepository("CadolesPortalBundle:Notice")->getNoticeToRead($user);
if(! $notices->isEmpty()) { if(! $notices->isEmpty()) {
$notices=$em->getRepository("CadolesPortalBundle:Notice")->getNoticeUser($user,false); $notices=$em->getRepository("CadolesPortalBundle:Notice")->getNoticeUser($user,false);
return $this->render('CadolesPortalBundle:Notice:mustread.html.twig',[ return $this->render('CadolesPortalBundle:Notice:mustread.html.twig',[
'useheader' => true, 'useheader' => true,
'usemenu' => false, 'usemenu' => false,
'usesidebar' => false, 'usesidebar' => false,
'maxwidth' => true, 'maxwidth' => true,
'mustread' => true, 'mustread' => true,
'notices' => $notices 'notices' => $notices,
'id' => $id,
]); ]);
} }
@ -85,8 +86,8 @@ class CoreController extends Controller
switch($key) { switch($key) {
case "firstname": if($user->getFirstname()=="") $toprofil=true; break; case "firstname": if($user->getFirstname()=="") $toprofil=true; break;
case "visible": if($user->getVisible()=="") $toprofil=true; break; case "visible": if($user->getVisible()=="") $toprofil=true; break;
case "authlevel": if($user->getAuthlevel()=="") $toprofil=true; break; //case "authlevel": if($user->getAuthlevel()=="") $toprofil=true; break;
case "belongingpopulation": if($user->getBelongingpopulation()=="") $toprofil=true; break; //case "belongingpopulation": if($user->getBelongingpopulation()=="") $toprofil=true; break;
case "job": if($user->getJob()=="") $toprofil=true; break; case "job": if($user->getJob()=="") $toprofil=true; break;
case "position": if($user->getPosition()=="") $toprofil=true; break; case "position": if($user->getPosition()=="") $toprofil=true; break;
case "niveau02": if($user->geNiveau02()=="") $toprofil=true; break; case "niveau02": if($user->geNiveau02()=="") $toprofil=true; break;

View File

@ -26,6 +26,7 @@ class FileController extends Controller
$clear=$request->get("clear"); $clear=$request->get("clear");
$view=$request->get("view"); $view=$request->get("view");
$sort=$request->get("sort"); $sort=$request->get("sort");
$order=$request->get("order");
$defaultview=$request->get("defaultview"); $defaultview=$request->get("defaultview");
// Récupérer les préférences utilisateur // Récupérer les préférences utilisateur
@ -68,7 +69,7 @@ class FileController extends Controller
$preference["widgetviewdirectory"][$directory]=$view; $preference["widgetviewdirectory"][$directory]=$view;
} }
// Prérence trie // Prérence trie
if(!array_key_exists("widgetsortdirectory",$preference)) { if(!array_key_exists("widgetsortdirectory",$preference)) {
$toupdate=true; $toupdate=true;
$preference["widgetsortdirectory"]=[]; $preference["widgetsortdirectory"]=[];
@ -82,6 +83,21 @@ class FileController extends Controller
$preference["widgetsortdirectory"][$directory]=$sort; $preference["widgetsortdirectory"][$directory]=$sort;
} }
// Préférence order
if(!array_key_exists("widgetorderdirectory",$preference)) {
$toupdate=true;
$preference["widgetorderdirectory"]=[];
}
if((!array_key_exists($directory,$preference["widgetorderdirectory"]))) {
$toupdate=true;
$preference["widgetorderdirectory"][$directory]="SORT_ASC";
}
if($sort&&$preference["widgetorderdirectory"][$directory]!=$order) {
$toupdate=true;
$preference["widgetorderdirectory"][$directory]=$order;
}
// Mise à jour des préferences // Mise à jour des préferences
if($toupdate) { if($toupdate) {
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
@ -109,23 +125,27 @@ class FileController extends Controller
if($fs->exists($fulldirectory)) { if($fs->exists($fulldirectory)) {
$finder = new Finder(); $finder = new Finder();
$finder->depth('== 0')->sortByName()->in($fulldirectory)->exclude('thumb')->exclude('thumbmini'); $finder->depth('== 0')->sortByName()->in($fulldirectory)->exclude('thumb')->exclude('thumbmini')->exclude('__trash');
foreach ($finder as $file) { foreach ($finder as $file) {
if(is_dir($file)) { if(is_dir($file)) {
$tmp=[]; $tmp=[];
$tmp["name"]=$file->getRelativePathname(); $tmp["name"]=$file->getRelativePathname();
$tmp["namesort"]=strtolower($tmp["name"]);
$tmp["date"]=date ("d/m/Y H:i", filemtime($file)); $tmp["date"]=date ("d/m/Y H:i", filemtime($file));
$tmp["datesort"] = date ("YmdHi", filemtime($file));
array_push($dirs,$tmp); array_push($dirs,$tmp);
} }
else { else {
$tmp=[]; $tmp=[];
$tmp["name"]=$file->getRelativePathname(); $tmp["name"]=$file->getRelativePathname();
$tmp["namesort"]=strtolower($tmp["name"]);
$tmp["extension"]=strtolower($file->getExtension()); $tmp["extension"]=strtolower($file->getExtension());
$fileinfo = new file($file->getPathname()); $fileinfo = new file($file->getPathname());
$tmp["minetype"]=$fileinfo->getMimeType(); $tmp["minetype"]=$fileinfo->getMimeType();
$tmp["minefamily"]=explode("/",$tmp["minetype"])[0]; $tmp["minefamily"]=explode("/",$tmp["minetype"])[0];
$tmp["date"] = date ("d/m/Y H:i", filemtime($file)); $tmp["date"] = date ("d/m/Y H:i", filemtime($file));
$tmp["datesort"] = date ("YmdHi", filemtime($file));
$tmp["thumb"]=""; $tmp["thumb"]="";
if($tmp["extension"]=="pdf") { if($tmp["extension"]=="pdf") {
@ -148,12 +168,22 @@ class FileController extends Controller
} }
} }
// Trie du tableu // Flag poubelle
$sort = array_column($files, $preference["widgetsortdirectory"][$directory]); $fgtrash=false;
array_multisort($sort, SORT_ASC, $files); if(stripos($subdirectory,"_trash")==1) $fgtrash=true;
$sort = array_column($dirs, $preference["widgetsortdirectory"][$directory]); // Trie du tableu
$sort = array_column($files, $preference["widgetsortdirectory"][$directory]."sort");
if($preference["widgetorderdirectory"][$directory]=="SORT_ASC")
array_multisort($sort, SORT_ASC, $files);
else
array_multisort($sort, SORT_DESC, $files);
$sort = array_column($dirs, $preference["widgetsortdirectory"][$directory]."sort");
if($preference["widgetorderdirectory"][$directory]=="SORT_ASC")
array_multisort($sort, SORT_ASC, $dirs); array_multisort($sort, SORT_ASC, $dirs);
else
array_multisort($sort, SORT_DESC, $dirs);
return $this->render('CadolesCoreBundle:File:list.html.twig',[ return $this->render('CadolesCoreBundle:File:list.html.twig',[
'useheader' => false, 'useheader' => false,
@ -171,12 +201,17 @@ class FileController extends Controller
'canadd' => $canupdate, 'canadd' => $canupdate,
'view' => $preference["widgetviewdirectory"][$directory], 'view' => $preference["widgetviewdirectory"][$directory],
'sort' => $preference["widgetsortdirectory"][$directory], 'sort' => $preference["widgetsortdirectory"][$directory],
'order' => $preference["widgetorderdirectory"][$directory],
'fgtrash' => $fgtrash,
]); ]);
} }
public function uploadAction($id,$type,Request $request,$access="config") public function uploadAction($id,$type,Request $request,$access="config")
{ {
$subdirectory=$request->get("subdirectory"); $canupdate =$this->getPermission($access,$id);
if(!$canupdate) throw $this->createNotFoundException('Permission denied');
$subdirectory=urldecode($request->get("subdirectory"));
$forcereload=(is_null($request->get("forcereload"))?true:$request->get("forcereload")); $forcereload=(is_null($request->get("forcereload"))?true:$request->get("forcereload"));
return $this->render('CadolesCoreBundle:File:upload.html.twig',[ return $this->render('CadolesCoreBundle:File:upload.html.twig',[
@ -193,8 +228,10 @@ class FileController extends Controller
public function subdirectoryAction($id,$type,Request $request,$access="config") public function subdirectoryAction($id,$type,Request $request,$access="config")
{ {
$subdirectory=$request->get("subdirectory"); $canupdate =$this->getPermission($access,$id);
if(!$canupdate) throw $this->createNotFoundException('Permission denied');
$subdirectory=$request->get("subdirectory");
$defaultData = []; $defaultData = [];
$form = $this->createFormBuilder() $form = $this->createFormBuilder()
->add('subdirectory', TextType::class,["label"=>"Répertoire"]) ->add('subdirectory', TextType::class,["label"=>"Répertoire"])
@ -206,7 +243,7 @@ class FileController extends Controller
if ($form->isSubmitted() && $form->isValid()) { if ($form->isSubmitted() && $form->isValid()) {
$data = $form->getData(); $data = $form->getData();
if($data["subdirectory"]=="thumb"||$data["subdirectory"]=="thumbmini") { if($data["subdirectory"]=="thumb"||$data["subdirectory"]=="thumbmini"||$data["subdirectory"]=="__trash") {
$form->addError(new FormError('Nom de répertoire réservé, merci de choisir un autre nom de répertoire')); $form->addError(new FormError('Nom de répertoire réservé, merci de choisir un autre nom de répertoire'));
$this->get('session')->getFlashBag()->clear(); $this->get('session')->getFlashBag()->clear();
$request->getSession()->getFlashBag()->add("error", 'Nom de répertoire réservé, merci de choisir un autre nom de répertoire'); $request->getSession()->getFlashBag()->add("error", 'Nom de répertoire réservé, merci de choisir un autre nom de répertoire');
@ -234,6 +271,225 @@ class FileController extends Controller
]); ]);
} }
public function renameAction($id,$oldname, Request $request,$access="config")
{
$canupdate =$this->getPermission($access,$id);
if(!$canupdate) throw $this->createNotFoundException('Permission denied');
$subdirectory=$request->get("subdirectory");
$form = $this->createFormBuilder()
->add('subdirectory', TextType::class,["label"=>"Renommer"])
->add('submit', SubmitType::class,["label"=>"Valider"])
->getForm();
$form->handleRequest($request);
$toclose=false;
if ($form->isSubmitted() && $form->isValid()) {
$data = $form->getData();
if($data["subdirectory"]=="thumb"||$data["subdirectory"]=="thumbmini"||$data["subdirectory"]=="__trash") {
$form->addError(new FormError('Nom réservé, merci de choisir un autre nom'));
$this->get('session')->getFlashBag()->clear();
$request->getSession()->getFlashBag()->add("error", 'Nom réservé, merci de choisir un autre nom');
}
else {
$fs = new Filesystem();
$fulldirectory=$this->get('kernel')->getRootDir()."/../uploads/file/".$id;
if($subdirectory) $fulldirectory.="/".$subdirectory;
$urlsource= $fulldirectory."/".$oldname;
$urldestination = $fulldirectory."/".$data["subdirectory"];
if($urlsource!=$urldestination) {
if($fs->exists($urldestination)) {
$form->addError(new FormError('Ce nom existe déjà'));
$this->get('session')->getFlashBag()->clear();
$request->getSession()->getFlashBag()->add("error", 'Ce nom existe déjà');
}
elseif($fs->exists($urlsource)) {
if(is_dir($urlsource)) {
$fs->mirror($urlsource,$urldestination);
$fs->remove($urlsource);
}
else {
$fs->rename($urlsource,$urldestination,true);
$fs->touch($urldestination);
$urlsource= $fulldirectory."/thumb/".$oldname;
$urldestination = $fulldirectory."/thumb/".$data["subdirectory"];
if($fs->exists($urlsource))
$fs->rename($urlsource,$urldestination,true);
$urlsource= $fulldirectory."/thumbmini/".$oldname;
$urldestination = $fulldirectory."/thumbmini/".$data["subdirectory"];
if($fs->exists($urlsource))
$fs->rename($urlsource,$urldestination,true);
}
$toclose=true;
}
}
}
} else $form->get('subdirectory')->setData($oldname);
return $this->render('CadolesCoreBundle:File:subdirectory.html.twig',[
'useheader' => false,
'usemenu' => false,
'usesidebar' => false,
'access' => $access,
'id' => $id,
'subdirectory' => $subdirectory,
'form' => $form->createView(),
'toclose' => $toclose,
]);
}
public function trashAction(Request $request,$access="config")
{
// S'assurer que c'est un appel ajax
if (!$request->isXmlHttpRequest()) {
return new JsonResponse(array('message' => 'Interdit'), 400);
}
$output=array();
$directory=$request->request->get('directory');
// Récupération du répertoire source et le nom du fichier
$racine=$this->get('kernel')->getRootDir()."/../uploads/file";
$directory=$request->request->get('directory');
$dirsource =$request->request->get('subdirectory');
$namesource =$request->request->get('filename');
$canupdate =$this->getPermission($access,$directory);
if(!$canupdate) throw $this->createNotFoundException('Permission denied');
$fs = new Filesystem();
// Déplacer le fichier
$urlsource=$racine."/".$directory."/".$dirsource."/".$namesource;
$urldestination=$racine."/".$directory."/__trash/".$dirsource."/".$namesource;
$fs->mkdir($racine."/".$directory."/__trash/".$dirsource);
if($fs->exists($urlsource)) {
if(is_dir($urlsource)) {
$fs->mirror($urlsource,$urldestination);
$fs->remove($urlsource);
}
else $fs->rename($urlsource,$urldestination,true);
}
// Déplacer le thumb
$fs->mkdir($racine."/".$directory."/__trash/".$dirsource."/thumb");
$urlsource=$racine."/".$directory."/".$dirsource."/thumb/".$namesource;
$urldestination=$racine."/".$directory."/__trash/".$dirsource."/thumb/".$namesource;
if($fs->exists($urlsource)) {
if(is_dir($urlsource)) {
$fs->mirror($urlsource,$urldestination);
$fs->remove($urlsource);
}
else $fs->rename($urlsource,$urldestination,true);
}
// Déplacer le thumbmini
$fs->mkdir($racine."/".$directory."/__trash/".$dirsource."/thumbmini");
$urlsource=$racine."/".$directory."/".$dirsource."/thumbmini/".$namesource;
$urldestination=$racine."/".$directory."/__trash/".$dirsource."/thumbmini/".$namesource;
if($fs->exists($urlsource)) {
if(is_dir($urlsource)) {
$fs->mirror($urlsource,$urldestination);
$fs->remove($urlsource);
}
else $fs->rename($urlsource,$urldestination,true);
}
$response = new Response(json_encode($output));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
public function restaureAction(Request $request,$access="config")
{
// S'assurer que c'est un appel ajax
if (!$request->isXmlHttpRequest()) {
return new JsonResponse(array('message' => 'Interdit'), 400);
}
$output=array();
$directory=$request->request->get('directory');
// Récupération du répertoire source et le nom du fichier
$racine=$this->get('kernel')->getRootDir()."/../uploads/file";
$directory=$request->request->get('directory');
$dirsource =$request->request->get('subdirectory');
$namesource =$request->request->get('filename');
$canupdate =$this->getPermission($access,$directory);
if(!$canupdate) throw $this->createNotFoundException('Permission denied');
$fs = new Filesystem();
// Déplacer le fichier
$dirdestination=str_replace("__trash/","",$dirsource);
$urlsource=$racine."/".$directory."/".$dirsource."/".$namesource;
$urldestination=str_replace("__trash/","/",$urlsource);
$fs->mkdir($racine."/".$directory."/".$dirdestination);
if($fs->exists($urlsource)) {
if(is_dir($urlsource)) {
$fs->mirror($urlsource,$urldestination);
$fs->remove($urlsource);
}
else $fs->rename($urlsource,$urldestination,true);
}
// Déplacer le thumb
$urlsource=$racine."/".$directory."/".$dirsource."/thumb/".$namesource;
$urldestination=str_replace("__trash/","/",$urlsource);
$fs->mkdir($racine."/".$directory."/".$dirdestination."/thumb");
if($fs->exists($urlsource)) {
if(is_dir($urlsource)) {
$fs->mirror($urlsource,$urldestination);
$fs->remove($urlsource);
}
else $fs->rename($urlsource,$urldestination,true);
}
// Déplacer le thumbmini
$urlsource=$racine."/".$directory."/".$dirsource."/thumbmini/".$namesource;
$urldestination=str_replace("__trash/","/",$urlsource);
$fs->mkdir($racine."/".$directory."/".$dirdestination."/thumbmini");
if($fs->exists($urlsource)) {
if(is_dir($urlsource)) {
$fs->mirror($urlsource,$urldestination);
$fs->remove($urlsource);
}
else $fs->rename($urlsource,$urldestination,true);
}
$response = new Response(json_encode($output));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
public function purgetrashAction($directory,Request $request,$access="config")
{
$output=array();
$canupdate =$this->getPermission($access,$directory);
if(!$canupdate) throw $this->createNotFoundException('Permission denied');
$fs = new Filesystem();
$url=$this->get('kernel')->getRootDir()."/../uploads/file/".$directory."/__trash";
if($fs->exists($url)) {
$fs->remove($url);
}
return $this->redirectToRoute('cadoles_core_'.$access.'_file_list',['directory'=>$directory]);
}
public function deleteAction(Request $request,$access="config") public function deleteAction(Request $request,$access="config")
{ {
// S'assurer que c'est un appel ajax // S'assurer que c'est un appel ajax
@ -247,7 +503,9 @@ class FileController extends Controller
$filename=$request->request->get('filename'); $filename=$request->request->get('filename');
if($subdirectory) $directory.="/".$subdirectory; if($subdirectory) $directory.="/".$subdirectory;
$this->getPermission($access,$directory); $canupdate =$this->getPermission($access,$directory);
if(!$canupdate) throw $this->createNotFoundException('Permission denied');
$fs = new Filesystem(); $fs = new Filesystem();
$url=$this->get('kernel')->getRootDir()."/../uploads/file/".$directory."/".$filename; $url=$this->get('kernel')->getRootDir()."/../uploads/file/".$directory."/".$filename;
if($fs->exists($url)) { if($fs->exists($url)) {
@ -259,6 +517,86 @@ class FileController extends Controller
return $response; return $response;
} }
public function moveAction(Request $request,$access="config")
{
// S'assurer que c'est un appel ajax
if (!$request->isXmlHttpRequest()) {
return new JsonResponse(array('message' => 'Interdit'), 400);
}
$output=array();
$directory=$request->request->get('directory');
// Récupération du répertoire source et le nom du fichier
$racine=$this->get('kernel')->getRootDir()."/../uploads/file";
$directory = $request->request->get('directory');
$dirsource = $request->request->get('dirsource');
$namesource = $request->request->get('namesource');
$dirdestination = $request->request->get('dirdestination');
$namedestination = $request->request->get('namedestination');
$canupdate =$this->getPermission($access,$directory);
if(!$canupdate) throw $this->createNotFoundException('Permission denied');
$fs = new Filesystem();
// Déplacer le fichier
$urlsource=str_replace("//","/",$racine."/".$dirsource."/".$namesource);
$urldestination=str_replace("//","/",$racine."/".$dirdestination."/".$namedestination);
// Controle de cohérance du déplacement
$fgerror=false;
if(empty($racine)) $fgerror=true;
if(empty($dirsource)) $fgerror=true;
if(empty($directory)) $fgerror=true;
if($urlsource==$urldestination) $fgerror=true;
if(stripos($urldestination,$urlsource)!==false) $fgerror=true;
if($fgerror) return new JsonResponse(array('message' => 'Interdit'), 400);
if($fs->exists($urlsource)) {
if(is_dir($urlsource)) {
$fs->mirror($urlsource,$urldestination);
$fs->remove($urlsource);
}
else
$fs->rename($urlsource,$urldestination, true);
}
// Déplacer le thumb
$fs->mkdir($racine."/".$dirdestination."/thumb");
$urlsource=$racine."/".$dirsource."/thumb/".$namesource;
$urldestination=$racine."/".$dirdestination."/thumb/".$namedestination;
if($fs->exists($urlsource)) {
if(is_dir($urlsource)) {
$fs->mirror($urlsource,$urldestination);
$fs->remove($urlsource);
}
else
$fs->rename($urlsource,$urldestination, true);
}
// Déplacer le thumbmini
$fs->mkdir($racine."/".$dirdestination."/thumbmini");
$urlsource=$racine."/".$dirsource."/thumbmini/".$namesource;
$urldestination=$racine."/".$dirdestination."/thumbmini/".$namedestination;
if($fs->exists($urlsource)) {
if(is_dir($urlsource)) {
$fs->mirror($urlsource,$urldestination);
$fs->remove($urlsource);
}
else
$fs->rename($urlsource,$urldestination, true);
}
$response = new Response(json_encode($output));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
public function viewAction($directory,$filename,Request $request,$access="config") public function viewAction($directory,$filename,Request $request,$access="config")
{ {
$this->getPermission($access,$directory); $this->getPermission($access,$directory);
@ -397,8 +735,9 @@ class FileController extends Controller
// On s'assure que l'utilisateur à la permission de voir // On s'assure que l'utilisateur à la permission de voir
$page=$widget->getPage(); $page=$widget->getPage();
$em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate); $em->getRepository("CadolesPortalBundle:Page")->getPermission($this->getUser(),$page,$cansee,$canupdate,$canadd);
if(!$cansee) throw $this->createNotFoundException('Permission denied'); if(!$cansee) throw $this->createNotFoundException('Permission denied');
return $canadd;
break; break;
case "projecttask": case "projecttask":
@ -411,6 +750,7 @@ class FileController extends Controller
$user=$this->getUser(); $user=$this->getUser();
$em->getRepository("CadolesPortalBundle:Project")->getPermission($user,$project,$cansee,$canupdate,$canadd); $em->getRepository("CadolesPortalBundle:Project")->getPermission($user,$project,$cansee,$canupdate,$canadd);
if(!$cansee) throw $this->createNotFoundException('Permission denied'); if(!$cansee) throw $this->createNotFoundException('Permission denied');
return $canupdate;
break; break;
case "calendarevent": case "calendarevent":
@ -421,13 +761,12 @@ class FileController extends Controller
// On s'assure que l'utilisateur à la permission de voir // On s'assure que l'utilisateur à la permission de voir
$calendar=$calendarevent->getCalendar(); $calendar=$calendarevent->getCalendar();
$user=$this->getUser(); $user=$this->getUser();
$em->getRepository("CadolesPortalBundle:Calendar")->getPermission($user,$calendar,$cansee,$canupdate); $em->getRepository("CadolesPortalBundle:Calendar")->getPermission($user,$calendar,$cansee,$canupdate,$canadd);
if(!$cansee) throw $this->createNotFoundException('Permission denied'); if(!$cansee) throw $this->createNotFoundException('Permission denied');
return $canadd;
break; break;
} }
} }
else $canupdate=true; else $canupdate=true;
return $canupdate;
} }
} }

View File

@ -139,16 +139,16 @@ class GroupController extends Controller
case 6 : case 6 :
$qb->orderBy('table.owner',$order[0]["dir"]); $qb->orderBy('table.owner',$order[0]["dir"]);
break; break;
case 7 : case 8 :
$qb->orderBy('table.fgcancreatepage',$order[0]["dir"]); $qb->orderBy('table.fgcancreatepage',$order[0]["dir"]);
break; break;
case 8 : case 9 :
$qb->orderBy('table.fgcancreatecalendar',$order[0]["dir"]); $qb->orderBy('table.fgcancreatecalendar',$order[0]["dir"]);
break; break;
case 9 : case 10 :
$qb->orderBy('table.fgcancreateblog',$order[0]["dir"]); $qb->orderBy('table.fgcancreateblog',$order[0]["dir"]);
break; break;
case 10 : case 11 :
$qb->orderBy('table.fgcancreateproject',$order[0]["dir"]); $qb->orderBy('table.fgcancreateproject',$order[0]["dir"]);
break; break;
} }
@ -175,30 +175,35 @@ class GroupController extends Controller
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>"; 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>";
if($data->getFgcanshare()) if($data->getFgcanshare())
$action.="<a href='".$this->generateUrl('cadoles_core_'.$access.'_group_statistic', array('id'=>$data->getId()))."'><i class='fa fa-bar-chart-o fa-fw fa-2x'></i></a>"; $action.="<a href='".$this->generateUrl('cadoles_core_'.$access.'_group_statistic', array('id'=>$data->getId()))."'><i class='fa fa-chart-area fa-fw fa-2x'></i></a>";
} }
else { else {
$fgproprio=($user==$data->getOwner()); $fgcanupdate=($user==$data->getOwner());
$fgmanager=false; $fgcanmanage=false;
$usergroup=$this->getDoctrine()->getRepository("CadolesCoreBundle:UserGroup")->findOneBy(["user"=>$this->getUser(),"group"=>$data]); $usergroup=$this->getDoctrine()->getRepository("CadolesCoreBundle:UserGroup")->findOneBy(["user"=>$this->getUser(),"group"=>$data]);
if($usergroup) $fgmanager=$usergroup->getFgmanager(); if($usergroup) $fgcanmanage=($usergroup->getRolegroup()>=90);
// Modification possible uniquement si l'utilisateur est propriétaire du groupe // Modification possible uniquement si l'utilisateur est propriétaire du groupe
if($fgproprio) { if($fgcanupdate) {
$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_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>"; $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 // Gestion des utilisateurs du groupe uniquement pour le proprio ou les managers
if($fgproprio||$fgmanager) { if($fgcanupdate||$fgcanmanage) {
$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>"; $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>";
} }
else { else {
$action.="<a href='".$this->generateUrl('cadoles_core_'.$access.'_group_out', array('id'=>$data->getId()))."'><i class='fa fa-sign-out fa-fw fa-2x'></i></a>"; // On ne peut se désinscrire que si le groupe est ouvert et qu'il n'est pas lié à un groupe ldap ou sso
$fgcanleave=true;
if($data->getFgtemplate() or $data->getFgall()) $fgcanleave=false;
elseif(!$data->getFgcanshare() && !$data->getFgopen()) $fgcanleave=false;
elseif($data->getFgcanshare() && !$this->get('session')->get('permunsubscribe') && !$data->getFgopen()) $fgcanleave=false;
if($fgcanleave) $action.="<a href='".$this->generateUrl('cadoles_core_'.$access.'_group_out', array('id'=>$data->getId()))."'><i class='fa fa-sign-out-alt fa-fw fa-2x'></i></a>";
} }
if($data->getFgcanshare()) if($data->getFgcanshare())
$action.="<a href='".$this->generateUrl('cadoles_core_'.$access.'_group_statistic', array('id'=>$data->getId()))."'><i class='fa fa-bar-chart-o fa-fw fa-2x'></i></a>"; $action.="<a href='".$this->generateUrl('cadoles_core_'.$access.'_group_statistic', array('id'=>$data->getId()))."'><i class='fa fa-chart-area fa-fw fa-2x'></i></a>";
} }
@ -217,6 +222,12 @@ class GroupController extends Controller
$userinfo.="<br>".$data->getOwner()->getUsername(); $userinfo.="<br>".$data->getOwner()->getUsername();
} }
$visitecpt="";
$visitelast=null;
foreach($data->getUsers() as $usergroup) {
$visitecpt+=$usergroup->getVisitecpt();
$visitelast=($usergroup->getVisitedate()>$visitelast?$usergroup->getVisitedate():$visitelast);
}
array_push($output["data"],array( array_push($output["data"],array(
@ -227,6 +238,7 @@ class GroupController extends Controller
$filtre, $filtre,
($data->getFgcanshare()?"oui":"non"), ($data->getFgcanshare()?"oui":"non"),
$userinfo, $userinfo,
($visitelast?$visitelast->format("d/m/Y H:i")."<br>":"")."nb = ".$visitecpt,
($data->getFgcancreatepage()?"oui":"non"), ($data->getFgcancreatepage()?"oui":"non"),
($data->getFgcancreatecalendar()?"oui":"non"), ($data->getFgcancreatecalendar()?"oui":"non"),
($data->getFgcancreateblog()?"oui":"non"), ($data->getFgcancreateblog()?"oui":"non"),
@ -358,12 +370,10 @@ class GroupController extends Controller
if($group->getLdapfilter()==""&&$group->getAttributes()=="") if($group->getLdapfilter()==""&&$group->getAttributes()=="")
$action.="<a style='cursor:pointer' onClick='addUsers(".$data->getId().")'><i class='fa fa-plus fa-fw'></i></a>"; $action.="<a style='cursor:pointer' onClick='addUsers(".$data->getId().")'><i class='fa fa-plus fa-fw'></i></a>";
$fgmanager="<input type='checkbox' class='switch' onChange='switchManager(".$data->getId().");'>";
// Avatar // Avatar
$avatar="<img onClick='seeUser(".$data->getId().")' src='/".$this->container->getParameter('alias')."/uploads/avatar/".$data->getAvatar()."' style='width:30px;background-color:#337ab7;margin:auto;display:block;cursor:pointer;'>"; $avatar="<img onClick='seeUser(".$data->getId().")' src='/".$this->container->getParameter('alias')."/uploads/avatar/".$data->getAvatar()."' style='width:30px;background-color:#337ab7;margin:auto;display:block;cursor:pointer;'>";
array_push($output["data"],array("DT_RowId"=>"user".$data->getId(),$action,$avatar,$data->getUsername(),$data->getEmail(),"",$fgmanager)); array_push($output["data"],array("DT_RowId"=>"user".$data->getId(),$action,$avatar,$data->getUsername(),$data->getEmail(),"",""));
} }
// Retour // Retour
@ -482,6 +492,14 @@ class GroupController extends Controller
} }
$datas=$qb->setFirstResult($start)->setMaxResults($length)->getQuery()->getResult(); $datas=$qb->setFirstResult($start)->setMaxResults($length)->getQuery()->getResult();
$user=$this->getUser();
$config=$em->getRepository('CadolesCoreBundle:Config')->find("datausers");
$fields=$config->getValue();
$fields=json_decode($fields,true);
if(!is_array($fields)) $fields=[];
if(!array_key_exists("visite",$fields)) $fields["visite"]["perm"]=0;
$fgviewvisite=($fields["visite"]["perm"]==1);
foreach($datas as $data) { foreach($datas as $data) {
// Propriétaire // Propriétaire
@ -497,22 +515,32 @@ class GroupController extends Controller
$avatar="<img onClick='seeUser(".$data->getId().")' src='/".$this->container->getParameter('alias')."/uploads/avatar/".$data->getAvatar()."' style='width:30px;background-color:#337ab7;margin:auto;display:block;cursor:pointer'>"; $avatar="<img onClick='seeUser(".$data->getId().")' src='/".$this->container->getParameter('alias')."/uploads/avatar/".$data->getAvatar()."' style='width:30px;background-color:#337ab7;margin:auto;display:block;cursor:pointer'>";
// Flag manager // Flag manager
$fgmanager=""; $rolegroup="";
if($fgcanshare) { if($fgcanshare) {
if($fgproprio) $rolegroup="Propriétaire du groupe";
elseif($user==$usergroup->getUser()) $rolegroup="Gestionnaire";
else {
$selectuser=($usergroup->getRolegroup()==0?"selected='selected'":"");
$selectwritter=($usergroup->getRolegroup()==50?"selected='selected'":"");
$selectmanager=($usergroup->getRolegroup()==90?"selected='selected'":"");
$checked=($usergroup->getFgmanager()?"checked":""); $rolegroup='<select id="roleuser-'.$data->getId().'" name="user[visible]" onChange="changeRole('.$data->getId().');"><option value="0" '.$selectuser.'>Utilisateur</option><option value="50" '.$selectwritter.'>Collaborateur</option><option value="90" '.$selectmanager.'>Gestionnaire</option></select>';
$fgmanager="<input type='checkbox' class='switch' onChange='switchManager(".$data->getId().");' $checked>"; }
if($fgproprio) $fgmanager="Propriétaire du groupe";
} }
// Visite // Visite
if($fgviewvisite) {
$visite=""; $visite="";
if($usergroup->getVisitedate()) { if($usergroup->getVisitedate()) {
$visite=$usergroup->getVisitedate()->format("d/m/Y H:i")."<br>nb = ".$usergroup->getVisitecpt(); $visite=$usergroup->getVisitedate()->format("d/m/Y H:i")."<br>nb = ".$usergroup->getVisitecpt();
} }
}
if($fgviewvisite)
$tmp=array("DT_RowId"=>"user".$data->getId(),$action,$avatar,$data->getUsername(),$data->getEmail(),$visite,$rolegroup);
else
$tmp=array("DT_RowId"=>"user".$data->getId(),$action,$avatar,$data->getUsername(),$data->getEmail(),$rolegroup);
array_push($output["data"],array("DT_RowId"=>"user".$data->getId(),$action,$avatar,$data->getUsername(),$data->getEmail(),$visite,$fgmanager)); array_push($output["data"],$tmp);
} }
// Retour // Retour
@ -545,11 +573,12 @@ class GroupController extends Controller
} }
$key = Uuid::uuid4(); $key = Uuid::uuid4();
$usergroup=new Usergroup; $usergroup=new UserGroup();
$user=$em->getRepository("CadolesCoreBundle:User")->find($userid); $user=$em->getRepository("CadolesCoreBundle:User")->find($userid);
$usergroup->setUser($user); $usergroup->setUser($user);
$usergroup->setGroup($group); $usergroup->setGroup($group);
$usergroup->setKeyvalue($key); $usergroup->setKeyvalue($key);
$usergroup->setRolegroup(0);
$em->persist($usergroup); $em->persist($usergroup);
$em->flush(); $em->flush();
@ -559,9 +588,9 @@ class GroupController extends Controller
$websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key->toString(),$userid,$groupid,$message); $websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key->toString(),$userid,$groupid,$message);
// Notification mail auprès de la personne inscrite // Notification mail auprès de la personne inscrite
if($group->getFgcanshare()) { if($group->getFgcanshare()&&$this->get('session')->get('fgnotifgroup')) {
$idpage =$group->getPages()->first()->getId(); $idpage =$group->getPages()->first()->getId();
$url = $this->generateUrl('cadoles_core_home', ["id"=>$idpage], UrlGeneratorInterface::ABSOLUTE_URL); $url = $this->generateUrl('cadoles_core_redirect', ["route"=>"cadoles_core_home","id"=>$idpage], UrlGeneratorInterface::ABSOLUTE_URL);
$texthtml="Vous venez d'être inscrit dans le groupe de travail : ".$group->getLabel()."<br>Suivez le lien suivant pour y accéder = <a href='$url'>$url</a>"; $texthtml="Vous venez d'être inscrit dans le groupe de travail : ".$group->getLabel()."<br>Suivez le lien suivant pour y accéder = <a href='$url'>$url</a>";
$text="Vous venez d'être inscrit dans le groupe de travail : ".$group->getLabel()."<br>Suivez le lien suivant pour y accéder = $url"; $text="Vous venez d'être inscrit dans le groupe de travail : ".$group->getLabel()."<br>Suivez le lien suivant pour y accéder = $url";
@ -613,7 +642,7 @@ class GroupController extends Controller
$em->flush(); $em->flush();
// Notification mail auprès des managers // Notification mail auprès des managers
if($group->getFgcanshare()) { if($group->getFgcanshare()&&$this->get('session')->get('fgnotifgroup')) {
$text=$user->getUsername()." a été désinscrit du groupe de travail : ".$group->getLabel(); $text=$user->getUsername()." a été désinscrit du groupe de travail : ".$group->getLabel();
$template="template"; $template="template";
$mail_params=array( $mail_params=array(
@ -621,10 +650,11 @@ class GroupController extends Controller
"body_html"=>nl2br($text), "body_html"=>nl2br($text),
"body_text"=>$text "body_text"=>$text
); );
$managers=$em->getRepository("CadolesCoreBundle:Usergroup")->findBy(array("group"=>$groupid,"fgmanager"=>true)); $usergroups=$em->getRepository("CadolesCoreBundle:Usergroup")->findBy(array("group"=>$groupid));
$to=array(); $to=array();
foreach($managers as $manager) { foreach($usergroups as $usergroup) {
array_push($to,$manager->getUser()->getEmail()); if($usergroup->getRolegroup()>=90)
array_push($to,$usergroup->getUser()->getEmail());
} }
$from = $this->getParameter('noreply');; $from = $this->getParameter('noreply');;
@ -658,7 +688,7 @@ class GroupController extends Controller
$em->flush(); $em->flush();
// Notification mail auprès des managers // Notification mail auprès des managers
if($group->getFgcanshare()) { if($group->getFgcanshare()&&$this->get('session')->get('fgnotifgroup')) {
$text=$user->getUsername()." a été désinscrit du groupe de travail : ".$group->getLabel(); $text=$user->getUsername()." a été désinscrit du groupe de travail : ".$group->getLabel();
$template="template"; $template="template";
$mail_params=array( $mail_params=array(
@ -666,10 +696,11 @@ class GroupController extends Controller
"body_html"=>nl2br($text), "body_html"=>nl2br($text),
"body_text"=>$text "body_text"=>$text
); );
$managers=$em->getRepository("CadolesCoreBundle:Usergroup")->findBy(array("group"=>$group,"fgmanager"=>true)); $usergroups=$em->getRepository("CadolesCoreBundle:Usergroup")->findBy(array("group"=>$group));
$to=array(); $to=array();
foreach($managers as $manager) { foreach($usergroups as $usergroup) {
array_push($to,$manager->getUser()->getEmail()); if($usergroup->getRolegroup()>=90)
array_push($to,$usergroup->getUser()->getEmail());
} }
$from = $this->getParameter('noreply');; $from = $this->getParameter('noreply');;
@ -683,7 +714,7 @@ class GroupController extends Controller
return $this->redirect($this->generateUrl("cadoles_core_user_group")); return $this->redirect($this->generateUrl("cadoles_core_user_group"));
} }
public function switchmanagerAction(Request $request,$access="config") public function changeroleAction(Request $request,$access="config")
{ {
// S'assurer que c'est un appel ajax // S'assurer que c'est un appel ajax
if (!$request->isXmlHttpRequest()) { if (!$request->isXmlHttpRequest()) {
@ -695,12 +726,13 @@ class GroupController extends Controller
$output=array(); $output=array();
$userid=$request->request->get('user'); $userid=$request->request->get('user');
$groupid=$request->request->get('group'); $groupid=$request->request->get('group');
$role=$request->request->get('role');
$group=$em->getRepository("CadolesCoreBundle:Group")->find($groupid); $group=$em->getRepository("CadolesCoreBundle:Group")->find($groupid);
$this->canManager($group,$access); $this->canManager($group,$access);
$data = $em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(array("user"=>$userid,"group"=>$groupid)); $data = $em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(array("user"=>$userid,"group"=>$groupid));
if($data) $data->setFgmanager(!$data->getFgmanager()); if($data) $data->setRolegroup($role);
$em->persist($data); $em->persist($data);
$em->flush(); $em->flush();
@ -715,10 +747,11 @@ class GroupController extends Controller
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
// Permission // Permission
$permgroup=$this->get('session')->get('permgroup');
if($access=="user") { if($access=="user") {
$permgroup=$this->get('session')->get('permgroup');
if($permgroup=="NO_BODY") throw $this->createNotFoundException('Permission denied'); if($permgroup=="NO_BODY") throw $this->createNotFoundException('Permission denied');
if($permgroup=="ROLE_ANIM" && $this->isGranted('ROLE_USER')) throw $this->createNotFoundException('Permission denied'); if($permgroup=="ROLE_ANIM" && $this->isGranted('ROLE_USER')) throw $this->createNotFoundException('Permission denied');
if($permgroup=="ROLE_MODO" && ($this->isGranted('ROLE_ANIM') || $this->isGranted('ROLE_USER'))) throw $this->createNotFoundException('Permission denied');
} }
// Initialisation de l'enregistrement // Initialisation de l'enregistrement
@ -855,7 +888,7 @@ class GroupController extends Controller
$this->ctrlFgcanshare($data,$access); $this->ctrlFgcanshare($data,$access);
// Si le propriétaire change de main on prévient le nouveau propriétaire // Si le propriétaire change de main on prévient le nouveau propriétaire
if($data->getOwner()&&$data->getOwner()!=$oldowner) { if($data->getOwner()&&$data->getOwner()!=$oldowner&&$this->get('session')->get('fgnotifgroup')) {
// Email à destination de l'inscript pour le prévenir qu'un administrateur doit valider // Email à destination de l'inscript pour le prévenir qu'un administrateur doit valider
$text="On vient de vous tranférer la propriété du groupe ".$data->getLabel(); $text="On vient de vous tranférer la propriété du groupe ".$data->getLabel();
$template="template"; $template="template";
@ -998,6 +1031,14 @@ class GroupController extends Controller
// idreturn ? // idreturn ?
$idreturn=$request->get("idreturn"); $idreturn=$request->get("idreturn");
$em = $this->getDoctrine()->getManager();
$config=$em->getRepository('CadolesCoreBundle:Config')->find("datausers");
$fields=$config->getValue();
$fields=json_decode($fields,true);
if(!is_array($fields)) $fields=[];
if(!array_key_exists("visite",$fields)) $fields["visite"]["perm"]=0;
$fgviewvisite=($fields["visite"]["perm"]==1);
// Affichage du formulaire // Affichage du formulaire
return $this->render($this->labelentity.':users.html.twig', [ return $this->render($this->labelentity.':users.html.twig', [
'useheader' => true, 'useheader' => true,
@ -1006,9 +1047,65 @@ class GroupController extends Controller
'access' => $access, 'access' => $access,
$this->labeldata => $data, $this->labeldata => $data,
'idreturn' => $idreturn, 'idreturn' => $idreturn,
'fgviewvisite' => $fgviewvisite,
]); ]);
} }
public function groupexportAction(Request $request, $access="config")
{
$em = $this->getDoctrine()->getManager();
$dir = $this->get('kernel')->getRootDir() . '/../uploads/export/';
$file = "exportgroup.csv";
$fs = new Filesystem();
$fs->mkdir($dir);
$csvh = fopen($dir.$file, 'w');
$d = ';'; // this is the default but i like to be explicit
$e = '"'; // this is the default but i like to be explicit
// Entête de colonne
$data=["id","Label","Ouvert","Groupe de Travail","Propriétaire","Date Visite","Cpt Visite","Création Page","Création Calendriers","Création Blogs","Création Projets"];
fputcsv($csvh, $data, $d, $e);
// Liste des utilisateurs en fonction du role de l'utilisateur en cours
$groups=$em->getRepository("CadolesCoreBundle:Group")->findAll();
foreach($groups as $group) {
$data = [
"id"=>$group->getId(),
"label"=>$group->getLabel(),
"fgopen"=>($group->getFgopen()?"oui":"non"),
"fgcanshare"=>($group->getFgcanshare()?"oui":"non"),
"owner"=>($group->getOwner()?$group->getOwner()->getUsername():""),
"visitedate"=>"",
"visitecpt"=>"",
"fgcancreatepage"=>($group->getFgcancreatepage()?"oui":"non"),
"fgcancreatecalendar"=>($group->getFgcancreatecalendar()?"oui":"non"),
"fgcancreateblog"=>($group->getFgcancreateblog()?"oui":"non"),
"fgcancreateproject"=>($group->getFgcancreateproject()?"oui":"non"),
];
$visitecpt="";
$visitelast=null;
foreach($group->getUsers() as $usergroup) {
$visitecpt+=$usergroup->getVisitecpt();
$visitelast=($usergroup->getVisitedate()>$visitelast?$usergroup->getVisitedate():$visitelast);
}
$data["visitedate"]=($visitelast?$visitelast->format("d/m/Y H:i"):"");
$data["visitecpt"]=$visitecpt;
fputcsv($csvh, $data, $d, $e);
}
fclose($csvh);
$response = new BinaryFileResponse($dir.$file);
$response->setContentDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT);
return $response;
}
public function usergroupexportAction($id,Request $request, $access="config") public function usergroupexportAction($id,Request $request, $access="config")
{ {
// Récupération de l'enregistrement courant // Récupération de l'enregistrement courant
@ -1130,11 +1227,51 @@ class GroupController extends Controller
]); ]);
} }
public function invitationAction($id,Request $request, $access="config")
{
// Récupération de l'enregistrement courant
$em = $this->getDoctrine()->getManager();
$group=$this->getData($id);
$this->canManager($group,$access);
$invitations=$group->getInvitations();
if(!is_array($invitations)) $invitations=[];
foreach($invitations as $key => $mail) {
$user=$em->getRepository("CadolesCoreBundle:User")->findOneBy(["email"=>$mail]);
// Si l'utilisateur est inscript plus la peine de le suivre
if($user) {
$listinvitations[$key]=["email"=>$mail,"statut"=>"","relance"=>false];
$usergroup=$em->getRepository("CadolesCoreBundle:UserGroup")->findOneBy(["user"=>$user,"group"=>$group]);
if($usergroup)
$listinvitations[$key]["statut"]="Inscrit dans le groupe";
else
$listinvitations[$key]["statut"]="Inscrit sur ".$this->get('session')->get('appname')." mais pas dans le groupe";
}
else {
$listinvitations[$key]=["email"=>$mail,"statut"=>"Non inscrit sur ".$this->get('session')->get('appname'),"relance"=>true];
$user=$em->getRepository("CadolesCoreBundle:Registration")->findOneBy(["email"=>$mail]);
if($user) {
$listinvitations[$key]["statut"]=$user->getStatut()->getLabel();
$listinvitations[$key]["relance"]=false;
}
}
}
return $this->render('CadolesCoreBundle:Group:invitations.html.twig',[
'useheader' => false,
'usemenu' => false,
'usesidebar' => false,
'id' => $id,
'invitations' => $listinvitations,
]);
}
protected function canManager($group,$access) { protected function canManager($group,$access) {
if($access!="config") { if($access!="config") {
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
$ismanager=$em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(["group"=>$group,"user"=>$this->getUser(),"fgmanager"=>true]); $user=$em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(["group"=>$group,"user"=>$this->getUser()]);
if(!$ismanager) if(!$user||$user->getRolegroup()<90)
throw $this->createNotFoundException('Permission denied'); throw $this->createNotFoundException('Permission denied');
} }
} }
@ -1150,19 +1287,27 @@ class GroupController extends Controller
protected function ctrlOwner($group) { protected function ctrlOwner($group) {
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
// Le propriétaire passe manager
$usergroups=$em->getRepository("CadolesCoreBundle:Usergroup")->findBy(["group"=>$group,"rolegroup"=>"100"]);
foreach($usergroups as $usergroup) {
$usergroup->setRolegroup(90);
$em->persist($usergroup);
$em->flush();
}
// Le propriétaire prend son role dans le groupe
if($group->getOwner()) { if($group->getOwner()) {
$usergroup=$em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(["group"=>$group,"user"=>$group->getOwner()]); $usergroup=$em->getRepository("CadolesCoreBundle:Usergroup")->findOneBy(["group"=>$group,"user"=>$group->getOwner()]);
if(!$usergroup) { if(!$usergroup) {
$key = Uuid::uuid4(); $key = Uuid::uuid4();
$usergroup=new Usergroup; $usergroup=new UserGroup();
$usergroup->setUser($group->getOwner()); $usergroup->setUser($group->getOwner());
$usergroup->setGroup($group); $usergroup->setGroup($group);
$usergroup->setKeyvalue($key); $usergroup->setKeyvalue($key);
} }
$usergroup->setFgmanager(true); $usergroup->setRolegroup(100);
$em->persist($usergroup); $em->persist($usergroup);
$em->flush(); $em->flush();
} }
} }

View File

@ -23,6 +23,10 @@ class MailController extends Controller
throw $this->createNotFoundException('Unable to find '.$this->labeldata); throw $this->createNotFoundException('Unable to find '.$this->labeldata);
} }
// On récupère la liste des email invités
$invitations=$group->getInvitations();
if(!is_array($invitations)) $invitations=[];
// Création du formulaire // Création du formulaire
$form = $this->createForm(MailType::class); $form = $this->createForm(MailType::class);
@ -34,7 +38,7 @@ class MailController extends Controller
// Sujet // Sujet
$url = $this->generateUrl('cadoles_core_registration',[], UrlGeneratorInterface::ABSOLUTE_URL)."?group=".$group->getId(); $url = $this->generateUrl('cadoles_core_registration',[], UrlGeneratorInterface::ABSOLUTE_URL)."?group=".$group->getId();
$message = "Bonjour,<br><br>En tant que responsable du projet <b>'".$group->getLabel()."'</b>, je vous ai invité à rejoindre cette communauté de travail<br><br>"; $message = "Bonjour,<br><br>En tant que responsable du groupe <b>'".$group->getLabel()."'</b>, je vous ai invité à rejoindre cette communauté de travail<br><br>";
$message.= "Merci de bien vouloir tout dabord vous inscrire sur <b>".$this->get('session')->get('appname')."</b> en suivant le lien suivant<br>"; $message.= "Merci de bien vouloir tout dabord vous inscrire sur <b>".$this->get('session')->get('appname')."</b> en suivant le lien suivant<br>";
$message.= "<a href='$url'>$url</a><br><br>"; $message.= "<a href='$url'>$url</a><br><br>";
$message.= "Une fois le processus d'inscription complété, vous serez automatiquement rattaché à notre groupe de travail<br><br>"; $message.= "Une fois le processus d'inscription complété, vous serez automatiquement rattaché à notre groupe de travail<br><br>";
@ -64,7 +68,14 @@ class MailController extends Controller
if($usergroup) array_push($usersin,$user); if($usergroup) array_push($usersin,$user);
else array_push($usersnotin,$user); else array_push($usersnotin,$user);
} }
else {
// On enregistre l'invitation si elle n'existe pas déjà
if(!in_array($mail,$invitations)) {
array_push($invitations,$mail);
} }
}
}
$text=$form->get("message")->getData(); $text=$form->get("message")->getData();
$subject=$form->get("subject")->getData(); $subject=$form->get("subject")->getData();
@ -78,6 +89,17 @@ class MailController extends Controller
$fromName = $this->getUser()->getFirstname()." ".$this->getUser()->getLastname(); $fromName = $this->getUser()->getFirstname()." ".$this->getUser()->getLastname();
$message = $this->container->get('cadoles.core.service.mail'); $message = $this->container->get('cadoles.core.service.mail');
$message->sendEmail($template, $mail_params, $to, $from, $fromName); $message->sendEmail($template, $mail_params, $to, $from, $fromName);
// Sauvegarde des invitation
$group->setInvitations($invitations);
$em->persist($group);
$em->flush();
}
else {
$email=$request->get("email");
if($email) {
$form->get('destinataire')->setData($email);
}
} }
if($closed && (!empty($usersin)||!empty($usersnotin))) { if($closed && (!empty($usersin)||!empty($usersnotin))) {

View File

@ -0,0 +1,364 @@
<?php
namespace Cadoles\CoreBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Form\FormError;
use Cadoles\CoreBundle\Entity\PermModoProfil;
use Cadoles\CoreBundle\Entity\PermModo;
use Cadoles\CoreBundle\Form\PermmodoprofilType;
class PermmodoprofilController extends Controller
{
private $labelroute = 'cadoles_core_config_permmodoprofil';
private $labelentity = 'CadolesCoreBundle:PermModoProfil';
private $labeldata = 'permmodoprofil';
private $labeldatas = 'permmodoprofils';
public function listAction()
{
return $this->render('CadolesCoreBundle:Permmodoprofil:list.html.twig',[
'useheader' => true,
'usemenu' => false,
'usesidebar' => true,
]);
}
public function ajaxlistAction(Request $request)
{
// S'assurer que c'est un appel ajax
if (!$request->isXmlHttpRequest()) {
return new JsonResponse(array('message' => 'Interdit'), 400);
}
$em = $this->getDoctrine()->getManager();
$start=$request->query->get('start');
$length= $request->query->get('length');
$search= $request->query->get('search');
$draw= $request->query->get('draw');
$order= $request->query->get('order');
// Nombre total d'enregistrement
$total = $em->createQueryBuilder()->select('COUNT(table)')->from($this->labelentity,'table')->getQuery()->getSingleScalarResult();
// Nombre d'enregistrement filtré
if($search["value"]=="")
$totalf = $total;
else {
$qb = $em->createQueryBuilder()
->select('COUNT(table)')
->from($this->labelentity,'table')
->where('table.name LIKE :value')
->setParameter("value", "%".$search["value"]."%");
$totalf = $qb->getQuery()->getSingleScalarResult();
}
// Construction du tableau de retour
$output = array(
'draw' => $draw,
'recordsFiltered' => $totalf,
'recordsTotal' => $total,
'data' => array(),
);
// Parcours des Enregistrement
$qb = $em->createQueryBuilder();
$qb->select('table')->from($this->labelentity,'table');
if($search["value"]!="") {
$qb ->andwhere('table.name LIKE :value')
->setParameter("value", "%".$search["value"]."%");
}
switch($order[0]["column"]) {
case 1 :
$qb->orderBy('table.name',$order[0]["dir"]);
break;
}
$datas=$qb->setFirstResult($start)->setMaxResults($length)->getQuery()->getResult();
foreach($datas as $data) {
$action ="<a href='".$this->generateUrl('cadoles_core_config_permmodoprofil_update', array('id'=>$data->getId()))."'><i class='fa fa-file fa-fw'></i></a>";
if($data->getId()>0) $action.="<a href='".$this->generateUrl('cadoles_core_config_permmodoprofil_delete', array('id'=>$data->getId()))."'><i class='fa fa-trash fa-fw'></i></a>";
$action.="<a href='".$this->generateUrl('cadoles_core_config_permmodoprofil_permmodo', array('id'=>$data->getId()))."'><i class='fas fa-check-square fa-fw'></i></a>";
array_push($output["data"],array($action,$data->getName()));
}
// Retour
return new Response(json_encode($output), 200);
}
public function submitAction(Request $request)
{
// Initialisation de l'enregistrement
$data = new PermModoProfil();
// Création du formulaire
$form = $this->createForm(PermmodoprofilType::class,$data,array(
"mode" => "submit",
));
// Récupération des data du formulaire
$form->handleRequest($request);
// Sur erreur
$this->getErrorForm(null,$form,$request,$data,"submit");
// Sur validation
if ($form->get('submit')->isClicked() && $form->isValid()) {
$data = $form->getData();
$em = $this->getDoctrine()->getManager();
// Sauvegarde
$em->persist($data);
$em->flush();
// Init permission
$this->initPermModo($data);
// Retour à la liste
return $this->redirectToRoute($this->labelroute);
}
// Affichage du formulaire
return $this->render('CadolesCoreBundle:Permmodoprofil:edit.html.twig', [
'useheader' => true,
'usemenu' => false,
'usesidebar' => true,
$this->labeldata => $data,
'mode' => 'submit',
'form' => $form->createView()
]);
}
public function updateAction($id,Request $request)
{
$em = $this->getDoctrine()->getManager();
// Récupération de l'enregistrement courant
$data=$this->getData($id);
// Création du formulaire
$form = $this->createForm(PermmodoprofilType::class,$data,array(
"mode" => "update"
));
// Récupération des data du formulaire
$form->handleRequest($request);
// Sur erreur
$this->getErrorForm($id,$form,$request,$data,"update");
// Sur validation
if ($form->get('submit')->isClicked() && $form->isValid()) {
$data = $form->getData();
// Sauvegarde
$em->persist($data);
$em->flush();
// Init permission
$this->initPermModo($data);
// Retour à la liste
return $this->redirectToRoute($this->labelroute);
}
// Affichage du formulaire
return $this->render('CadolesCoreBundle:Permmodoprofil:edit.html.twig', [
'useheader' => true,
'usemenu' => false,
'usesidebar' => true,
$this->labeldata => $data,
'mode' => 'update',
'form' => $form->createView()
]);
}
public function deleteAction($id,Request $request)
{
// Récupération de l'enregistrement courant
$data=$this->getData($id);
// Création du formulaire
$form = $this->createForm(PermmodoprofilType::class,$data,array(
"mode" =>"delete",
));
// Récupération des data du formulaire
$form->handleRequest($request);
// Sur erreur
$this->getErrorForm($id,$form,$request,$data,"delete");
// Sur validation
if ($form->get('submit')->isClicked() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->remove($data);
$em->flush();
return $this->redirectToRoute($this->labelroute);
}
// Affichage du formulaire
return $this->render('CadolesCoreBundle:Permmodoprofil:edit.html.twig', [
'useheader' => true,
'usemenu' => false,
'usesidebar' => true,
$this->labeldata => $data,
'mode' => 'delete',
'form' => $form->createView()
]);
}
public function permmodoAction($id)
{
$em = $this->getDoctrine()->getManager();
$sidebars=$this->get('session')->get('sidebar');
$perms=[];
foreach($sidebars as $sidebar) {
foreach($sidebar["childs"] as $child) {
$permmod=$em->getRepository("CadolesCoreBundle:PermModo")->findOneBy(["route"=>$child["path"],"permmodoprofil"=>$id]);
if($permmod) {
array_push($perms,['id' => $permmod->getId(), 'label'=>$sidebar['label'].' >> '.$child['label'],'visible'=>$permmod->getVisible()]);
}
}
}
return $this->render('CadolesCoreBundle:Permmodoprofil:permmodo.html.twig', [
'useheader' => true,
'usemenu' => false,
'usesidebar' => true,
'profil' => $this->getData($id),
'permmodos' => $perms
]);
}
public function permmodoupdateAction(Request $request)
{
// S'assurer que c'est un appel ajax
if (!$request->isXmlHttpRequest()) return new JsonResponse(array('message' => 'Interdit'), 400);
$output=array();
$id = $request->request->get('id');
$em = $this->getDoctrine()->getManager();
$permmodo = $this->getDoctrine()->getRepository("CadolesCoreBundle:PermModo")->find($id);
if (!$permmodo) throw $this->createNotFoundException('Unable to find entity.');
$permmodo->setVisible(!$permmodo->getVisible());
$em->persist($permmodo);
$em->flush();
$response = new Response(json_encode($output));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
protected function getDatas()
{
$em = $this->getDoctrine()->getManager();
$datas = $em->getRepository($this->labelentity)->findAll();
return $datas;
}
protected function getData($id)
{
$em = $this->getDoctrine()->getManager();
$data = $em->getRepository($this->labelentity)->find($id);
if (!$data) {
throw $this->createNotFoundException('Unable to find '.$this->labeldata);
}
return $data;
}
protected function getErrorForm($id,$form,$request,$data,$mode) {
if ($form->get('submit')->isClicked()&&$mode=="delete") {
// On s'assure que le profil n'est pas rattaché à des utilisateurs
if($data->getUsers()->count() > 0) {
$form->addError(new FormError('Un utilisateur utilise ce profil de modération : suppression impossible'));
}
}
if ($form->get('submit')->isClicked() && ($mode=="submit" || $mode=="update")) {
}
if ($form->get('submit')->isClicked() && !$form->isValid()) {
$this->get('session')->getFlashBag()->clear();
$validator = $this->get('validator');
$errors = $validator->validate($data);
foreach( $errors as $error ) {
$request->getSession()->getFlashBag()->add("error", $error->getMessage());
}
$errors = $form->getErrors();
foreach( $errors as $error ) {
$request->getSession()->getFlashBag()->add("error", $error->getMessage());
}
}
}
private function initPermModo($profil) {
$this->addModeration($profil,'cadoles_core_config_commun',0);
$this->addModeration($profil,'cadoles_core_config_theme',0);
$this->addModeration($profil,'cadoles_core_config_datauser',0);
$this->addModeration($profil,'cadoles_core_config_datausers',0);
$this->addModeration($profil,'cadoles_core_config_whitelist',0);
$this->addModeration($profil,'cadoles_core_config_niveau01',1);
$this->addModeration($profil,'cadoles_core_config_niveau02',1);
$this->addModeration($profil,'cadoles_core_config_group',1);
$this->addModeration($profil,'cadoles_core_config_registration',1);
$this->addModeration($profil,'cadoles_core_config_user',1);
$this->addModeration($profil,'cadoles_portal_config_pagetemplate',1);
$this->addModeration($profil,'cadoles_portal_config_page',1);
$this->addModeration($profil,'cadoles_portal_config_item',1);
$this->addModeration($profil,'cadoles_portal_config_alert',1);
$this->addModeration($profil,'cadoles_portal_config_calendar',1);
$this->addModeration($profil,'cadoles_portal_config_blog',1);
$this->addModeration($profil,'cadoles_portal_config_project',1);
$this->addModeration($profil,'cadoles_portal_config_flux',1);
$this->addModeration($profil,'cadoles_portal_config_notice',1);
$this->addModeration($profil,'cadoles_portal_config_icon',1);
$this->addModeration($profil,'cadoles_portal_config_syncbalado',0);
$this->addModeration($profil,'cadoles_portal_config_synccdt',0);
$this->addModeration($profil,'cadoles_portal_config_syncgepiannu',0);
$this->addModeration($profil,'cadoles_portal_config_syncgepisiecle',0);
$this->addModeration($profil,'cadoles_portal_config_synclimesurvey',0);
$this->addModeration($profil,'cadoles_portal_config_syncmoodle',0);
$this->addModeration($profil,'cadoles_portal_config_syncnextcloud',0);
$this->addModeration($profil,'cadoles_portal_config_syncsacoche',0);
$this->addModeration($profil,'cadoles_portal_config_syncpiwik',0);
$this->addModeration($profil,'cadoles_portal_config_syncwordpress',0);
$this->addModeration($profil,'cadoles_core_config_statistic',1);
$this->addModeration($profil,'cadoles_core_config_mailing',1);
$this->addModeration($profil,'cadoles_core_config_importuser',0);
$this->addModeration($profil,'cadoles_cron_config',0);
$this->addModeration($profil,'cadoles_cron_config_log',0);
}
private function addModeration($profil,$route,$visible) {
$em = $this->getDoctrine()->getManager();
$entity=$em->getRepository('CadolesCoreBundle:PermModo')->findOneBy(["route"=>$route,"permmodoprofil"=>$profil]);
if(!$entity) {
$entity=new PermModo();
$entity->setRoute($route);
$entity->setVisible($visible);
$entity->setPermmodoprofil($profil);
$em->persist($entity);
$em->flush();
}
}
}

View File

@ -212,7 +212,7 @@ class RegistrationController extends Controller
// Sur erreur // Sur erreur
$this->getErrorForm(null,$form,$request,$data,"submit",$idstatut); $this->getErrorForm(null,$form,$request,$data,"submit",$idstatut);
// Sur validation(z) // Sur validation
if ($form->get('submit')->isClicked() && $form->isValid()) { if ($form->get('submit')->isClicked() && $form->isValid()) {
$data = $form->getData(); $data = $form->getData();
@ -342,6 +342,8 @@ class RegistrationController extends Controller
// A voir retour sur un écran d'info indiquant si validation par admion ou s'il doit matter ses email // A voir retour sur un écran d'info indiquant si validation par admion ou s'il doit matter ses email
$this->get('session')->set('registrationinfo', $info); $this->get('session')->set('registrationinfo', $info);
$this->get('session')->set('registrationmode', "info"); $this->get('session')->set('registrationmode', "info");
$this->get('session')->set('registrationredirectto', null);
return $this->redirectToRoute('cadoles_core_registration_info'); return $this->redirectToRoute('cadoles_core_registration_info');
} }
else { else {
@ -360,12 +362,16 @@ class RegistrationController extends Controller
{ {
$info = $this->get('session')->get('registrationinfo'); $info = $this->get('session')->get('registrationinfo');
$mode = $this->get('session')->get('registrationmode'); $mode = $this->get('session')->get('registrationmode');
$redirectto = $this->get('session')->get('registrationredirectto');
return $this->render($this->labelentity.':info.html.twig', [ return $this->render($this->labelentity.':info.html.twig', [
'useheader' => true, 'useheader' => true,
'usemenu' => false, 'usemenu' => false,
'usesidebar' => false, 'usesidebar' => false,
'info' => $info, 'info' => $info,
'mode' => $mode 'mode' => $mode,
'redirectto' => $redirectto,
]); ]);
} }
@ -467,6 +473,7 @@ class RegistrationController extends Controller
{ {
$moderegistration = $this->getParameter('moderegistration'); $moderegistration = $this->getParameter('moderegistration');
$masteridentity = $this->getParameter('masteridentity'); $masteridentity = $this->getParameter('masteridentity');
if($moderegistration=="none"||$masteridentity!="SQL") if($moderegistration=="none"||$masteridentity!="SQL")
throw $this->createNotFoundException('Permission denied'); throw $this->createNotFoundException('Permission denied');
@ -489,6 +496,7 @@ class RegistrationController extends Controller
$this->get('session')->set('registrationinfo', $info); $this->get('session')->set('registrationinfo', $info);
$this->get('session')->set('registrationmode', $mode); $this->get('session')->set('registrationmode', $mode);
$this->get('session')->set('registrationredirectto', null);
} }
else { else {
$url=$this->getUrlLogin(); $url=$this->getUrlLogin();
@ -509,6 +517,7 @@ class RegistrationController extends Controller
$user->setPasswordDirect($data[0]->getPassword()); $user->setPasswordDirect($data[0]->getPassword());
$user->setVisible($data[0]->getVisible()); $user->setVisible($data[0]->getVisible());
$user->setMotivation($data[0]->getMotivation()); $user->setMotivation($data[0]->getMotivation());
$user->setNote($data[0]->getNote());
$user->setNiveau01($data[0]->getNiveau01()); $user->setNiveau01($data[0]->getNiveau01());
$user->setSiren($data[0]->getNiveau01()->getSiren()); $user->setSiren($data[0]->getNiveau01()->getSiren());
@ -538,16 +547,24 @@ class RegistrationController extends Controller
// Si invitation à un groupe : on le rattache directement à ce groupe // Si invitation à un groupe : on le rattache directement à ce groupe
$groupid=$data[0]->getGroupid(); $groupid=$data[0]->getGroupid();
$userid=$user->getId(); $userid=$user->getId();
if($groupid) { if($groupid) {
$group=$em->getRepository("CadolesCoreBundle:Group")->find($groupid); $group=$em->getRepository("CadolesCoreBundle:Group")->find($groupid);
if($group) { if($group) {
$idpage =$group->getPages()->first()->getId();
$url = $this->generateUrl('cadoles_core_redirect', ["route"=>"cadoles_core_home","id"=>$idpage], UrlGeneratorInterface::ABSOLUTE_URL);
$info="<p>Votre compte est à présent activé</p><p>Vous allez être redirigé vers la mire de connexion puis vers votre groupe de travail</p><p><a href='".$url."'>Connexion</a>";
$this->get('session')->set('registrationinfo', $info);
$this->get('session')->set('registrationredirectto', $url);
$key = Uuid::uuid4(); $key = Uuid::uuid4();
$usergroup=new Usergroup; $usergroup=new UserGroup();
$user=$em->getRepository("CadolesCoreBundle:User")->find($userid); $user=$em->getRepository("CadolesCoreBundle:User")->find($userid);
$usergroup->setUser($user); $usergroup->setUser($user);
$usergroup->setGroup($group); $usergroup->setGroup($group);
$usergroup->setKeyvalue($key); $usergroup->setKeyvalue($key);
$usergroup->setRolegroup(0);
$em->persist($usergroup); $em->persist($usergroup);
$em->flush(); $em->flush();
@ -614,7 +631,7 @@ class RegistrationController extends Controller
{ {
$moderegistration = $this->getParameter('moderegistration'); $moderegistration = $this->getParameter('moderegistration');
$masteridentity = $this->getParameter('masteridentity'); $masteridentity = $this->getParameter('masteridentity');
if($moderegistration=="none"||$masteridentity!="SQL") if($masteridentity!="SQL")
throw $this->createNotFoundException('Permission denied'); throw $this->createNotFoundException('Permission denied');
// Création du formulaire // Création du formulaire
@ -686,6 +703,7 @@ class RegistrationController extends Controller
$mode="info"; $mode="info";
$this->get('session')->set('registrationinfo', $info); $this->get('session')->set('registrationinfo', $info);
$this->get('session')->set('registrationmode', $mode); $this->get('session')->set('registrationmode', $mode);
$this->get('session')->set('registrationredirectto', null);
return $this->redirectToRoute('cadoles_core_registration_info'); return $this->redirectToRoute('cadoles_core_registration_info');
} }
@ -700,9 +718,8 @@ class RegistrationController extends Controller
public function resetpwd02Action($key,Request $request) public function resetpwd02Action($key,Request $request)
{ {
$moderegistration = $this->getParameter('moderegistration');
$masteridentity = $this->getParameter('masteridentity'); $masteridentity = $this->getParameter('masteridentity');
if($moderegistration=="none"||$masteridentity!="SQL") if($masteridentity!="SQL")
throw $this->createNotFoundException('Permission denied'); throw $this->createNotFoundException('Permission denied');
$now=new \DateTime(); $now=new \DateTime();
@ -723,6 +740,7 @@ class RegistrationController extends Controller
$mode="danger"; $mode="danger";
$this->get('session')->set('registrationinfo', $info); $this->get('session')->set('registrationinfo', $info);
$this->get('session')->set('registrationmode', $mode); $this->get('session')->set('registrationmode', $mode);
$this->get('session')->set('registrationredirectto', null);
return $this->redirectToRoute('cadoles_core_registration_info'); return $this->redirectToRoute('cadoles_core_registration_info');
} }
else { else {
@ -782,6 +800,7 @@ class RegistrationController extends Controller
$mode="success"; $mode="success";
$this->get('session')->set('registrationinfo', $info); $this->get('session')->set('registrationinfo', $info);
$this->get('session')->set('registrationmode', $mode); $this->get('session')->set('registrationmode', $mode);
$this->get('session')->set('registrationredirectto', null);
return $this->redirectToRoute('cadoles_core_registration_info'); return $this->redirectToRoute('cadoles_core_registration_info');
} }
@ -872,7 +891,7 @@ class RegistrationController extends Controller
$niveau01=strtolower($data->getNiveau01()->getLabel()); $niveau01=strtolower($data->getNiveau01()->getLabel());
if(stripos($niveau01,"autre")===0) { if(stripos($niveau01,"autre")===0) {
if(!$data->getNiveau01other()) { if(!$data->getNiveau01other()) {
$form->addError(new FormError("Merci d'indiquer votre ".$this->getParameter("labelniveau01"))); $form->addError(new FormError("Merci de compléter le champ 'Autre ".$this->getParameter("labelniveau01")."'"));
} }
} }

View File

@ -3,32 +3,17 @@
namespace Cadoles\CoreBundle\Controller; namespace Cadoles\CoreBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Form\FormError;
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArrayInput;
use Symfony\Component\Console\Output\BufferedOutput;
use Symfony\Component\Console\Output\OutputInterface;
use Ramsey\Uuid\Uuid;
use Ramsey\Uuid\Exception\UnsatisfiedDependencyException;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Cadoles\CoreBundle\Entity\User;
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;
use Cadoles\PortalBundle\Entity\Bookmark;
class RestController extends Controller class RestController extends Controller
{ {
// rest/login
// Permet de tester l'accès à ninegate
// key = parametre obligatoire
// key = clé d'accès de l'api
public function loginAction(Request $request) public function loginAction(Request $request)
{ {
$key=$request->get('key'); $key=$request->get('key');
@ -44,9 +29,20 @@ class RestController extends Controller
return new Response(json_encode($output), 200); return new Response(json_encode($output), 200);
} }
// rest/user/{login}
// Récupération des informations utilisateurs issus du masteridentity
// key = parametre obligatoire
// key = clé d'accès de l'api
// only = paramétre optionnel
// only = liste des informations désirés = user, items, bookmarks, groups, alerts, calendars
// ssoitems = paramétre optionnel
// ssoitems = liste des items issu du ssoitems
public function userAction($login, Request $request) public function userAction($login, Request $request)
{ {
$key=$request->get('key'); $key=$request->get('key');
$only=($request->get('only')?explode(",",$request->get('only')):"");
$ssoitems=($request->get('ssoitems')?explode(",",$request->get('ssoitems')):[]);
// Vérification de la clé // Vérification de la clé
$realkey = $this->getParameter("apikeyninegate"); $realkey = $this->getParameter("apikeyninegate");
@ -66,21 +62,26 @@ class RestController extends Controller
} }
// Format de sortie // Format de sortie
$output["user"] = []; if($only==""||in_array("user",$only)) $output["user"] = [];
$output["bookmarks"] = []; if($only==""||in_array("bookmarks",$only)) $output["bookmarks"] = [];
$output["items"] = []; if($only==""||in_array("items",$only)) $output["items"] = [];
$output["itemcategorys"] = []; if($only==""||in_array("items",$only)) $output["itemcategorys"] = [];
$output["groups"] = []; if($only==""||in_array("groups",$only)) $output["groups"] = [];
if($only==""||in_array("alerts",$only)) $output["alerts"] = [];
if($only==""||in_array("alerts",$only)) $output["alertcategorys"] = [];
if($only==""||in_array("calendars",$only)) $output["calendars"] = [];
if($only==""||in_array("calendars",$only)) $output["calendarevents"] = [];
$bookmarks=null; $bookmarks=null;
$items=null; $items=null;
$itemcategorys=null; $itemcategorys=null;
$weburl="https://".$this->getParameter("weburl")."/".$this->getParameter("alias")."/"; $weburl="https://".$this->getParameter("weburl")."/".$this->getParameter("alias")."/";
$em->getRepository("CadolesPortalBundle:Item")->getUserItems($user,$bookmarks,$items,$itemcategorys,null,3); $em->getRepository("CadolesPortalBundle:Item")->getUserItems($user,$bookmarks,$items,$itemcategorys,null,$ssoitems,4);
$this->getDoctrine()->getRepository("CadolesPortalBundle:Page")->getPagesUser($user,null,$entity,$pagesuser,$pagesadmin,$groupsshared); //$this->getDoctrine()->getRepository("CadolesPortalBundle:Page")->getPagesUser($user,null,$entity,$pagesuser,$pagesadmin,$groupsshared);
// Construction de la réponse // Construction de la réponse
if($only==""||in_array("user",$only)) {
$output["user"]["firstname"] = $user->getFirstname(); $output["user"]["firstname"] = $user->getFirstname();
$output["user"]["lastname"] = $user->getLastname(); $output["user"]["lastname"] = $user->getLastname();
$output["user"]["email"] = $user->getEmail(); $output["user"]["email"] = $user->getEmail();
@ -88,7 +89,9 @@ class RestController extends Controller
$output["user"]["niveau01"] = $user->getNiveau01()->getLabel(); $output["user"]["niveau01"] = $user->getNiveau01()->getLabel();
$output["user"]["niveau02"] = ($user->getNiveau02()?$user->getNiveau02()->getLabel():null); $output["user"]["niveau02"] = ($user->getNiveau02()?$user->getNiveau02()->getLabel():null);
$output["user"]["role"] = $user->getRole(); $output["user"]["role"] = $user->getRole();
}
if($only==""||in_array("bookmarks",$only)) {
if($bookmarks) { if($bookmarks) {
foreach($bookmarks as $bookmark) { foreach($bookmarks as $bookmark) {
$tmp=[]; $tmp=[];
@ -96,14 +99,17 @@ class RestController extends Controller
$tmp["title"] = $bookmark->getTitle(); $tmp["title"] = $bookmark->getTitle();
$tmp["url"] = $bookmark->getUrl(); $tmp["url"] = $bookmark->getUrl();
$tmp["target"] = $bookmark->getTarget(); $tmp["target"] = $bookmark->getTarget();
$tmp["item"] = ($bookmark->getItem()?$bookmark->getItem()->getId():null);
$tmp["order"] = 0; $tmp["order"] = 0;
$tmp["color"] = ($bookmark->getColor()?$bookmark->getColor():$this->get('session')->get('color')["main"]); $tmp["color"] = "#".($bookmark->getColor()?$bookmark->getColor():$this->get('session')->get('color')["main"]);
$tmp["icon"] = $weburl.($bookmark->getIcon()?$bookmark->getIcon()->getLabel():"uploads/icon/icon_pin.png"); $tmp["icon"] = $weburl.($bookmark->getIcon()?$bookmark->getIcon()->getLabel():"uploads/icon/icon_pin.png");
array_push($output["bookmarks"],$tmp); array_push($output["bookmarks"],$tmp);
} }
} }
}
if($only==""||in_array("items",$only)) {
if($items) { if($items) {
foreach($items as $item) { foreach($items as $item) {
$tmp=[]; $tmp=[];
@ -112,7 +118,7 @@ class RestController extends Controller
$tmp["url"] = $item->getUrl(); $tmp["url"] = $item->getUrl();
$tmp["target"] = $item->getTarget(); $tmp["target"] = $item->getTarget();
$tmp["order"] = $item->getRoworder(); $tmp["order"] = $item->getRoworder();
$tmp["color"] = ($item->getColor()?$item->getColor():$this->get('session')->get('color')["main"]); $tmp["color"] = "#".($item->getColor()?$item->getColor():$this->get('session')->get('color')["main"]);
$tmp["icon"] = $weburl.($item->getIcon()?$item->getIcon()->getLabel():"uploads/icon/icon_pin.png"); $tmp["icon"] = $weburl.($item->getIcon()?$item->getIcon()->getLabel():"uploads/icon/icon_pin.png");
$tmp["essential"] = $item->getEssential(); $tmp["essential"] = $item->getEssential();
$tmp["category"] = $item->getItemcategory()->getId(); $tmp["category"] = $item->getItemcategory()->getId();
@ -127,12 +133,14 @@ class RestController extends Controller
$tmp["id"] = $itemcategory->getId(); $tmp["id"] = $itemcategory->getId();
$tmp["title"] = $itemcategory->getLabel(); $tmp["title"] = $itemcategory->getLabel();
$tmp["order"] = $itemcategory->getRoworder(); $tmp["order"] = $itemcategory->getRoworder();
$tmp["color"] = ($itemcategory->getColor()?$itemcategory->getColor():$this->get('session')->get('color')["main"]); $tmp["color"] = "#".($itemcategory->getColor()?$itemcategory->getColor():$this->get('session')->get('color')["main"]);
array_push($output["itemcategorys"],$tmp); array_push($output["itemcategorys"],$tmp);
} }
} }
}
if($only==""||in_array("groups",$only)) {
foreach($user->getGroups() as $usergroup) { foreach($user->getGroups() as $usergroup) {
$tmp=[]; $tmp=[];
$tmp["id"] = $usergroup->getGroup()->getId(); $tmp["id"] = $usergroup->getGroup()->getId();
@ -140,12 +148,70 @@ class RestController extends Controller
array_push($output["groups"],$tmp); array_push($output["groups"],$tmp);
} }
}
if($only==""||in_array("alerts",$only)) {
$alerts=$em->getRepository("CadolesPortalBundle:Alert")->getUserAlerts($user,null,null,$ssoitems);
foreach($alerts as $alert) {
$tmp=[];
$tmp["id"] = $alert->getId();
$tmp["title"] = $alert->getTitle();
$tmp["order"] = $alert->getRoworder();
$tmp["category"] = $alert->getAlertcategory()->getId();
$tmp["description"] = $alert->getContent();
$tmp["fghideable"] = $alert->getFghideable();
array_push($output["alerts"],$tmp);
}
$alertcategorys=$em->getRepository("CadolesPortalBundle:Alertcategory")->findAll();
foreach($alertcategorys as $alertcategory) {
$tmp=[];
$tmp["id"] = $alertcategory->getId();
$tmp["title"] = $alertcategory->getLabel();
$tmp["color"] = "#".($alertcategory->getColor()?$alertcategory->getColor():$this->get('session')->get('color')["main"]);
$tmp["icon"] = $weburl.($alertcategory->getIcon()?$alertcategory->getIcon()->getLabel():"uploads/icon/icon_pin.png");
array_push($output["alertcategorys"],$tmp);
}
}
if($only==""||in_array("calendars",$only)) {
$events=$em->getRepository("CadolesPortalBundle:Calendarevent")->getUserCalendarevents($user,$this->get('session')->get('color')["main"],null,null,$firstcalendar);
foreach($events as $event) {
$tmp=[];
$tmp["id"] = $event["id"];
$tmp["title"] = $event["title"];
$tmp["description"] = $event["description"];
$tmp['start'] = $event["start"];
$tmp['end'] = $event["end"];
$tmp['allday'] = $event["allDay"];
$tmp['calendar'] = $event["calendar"];
array_push($output["calendarevents"],$tmp);
$tmp=[];
$tmp["id"] = $event["calendar"];
$tmp["title"] = $event["name"];
$tmp["color"] = $event["color"];
if(!in_array($tmp,$output["calendars"]))
array_push($output["calendars"],$tmp);
}
}
// Retour // Retour
return new Response(json_encode($output), 200); return new Response(json_encode($output), 200);
} }
// rest/users
// Liste l'ensemble des utilisateurs de ninegate et retourne ses attributs
// key = parametre obligatoire
// key = clé d'accès de l'api
public function usersAction(Request $request) public function usersAction(Request $request)
{ {
$key=$request->get('key'); $key=$request->get('key');
@ -179,6 +245,10 @@ class RestController extends Controller
return new Response(json_encode($output), 200); return new Response(json_encode($output), 200);
} }
// rest/groups
// Liste l'ensemble des groupes de ninegate et retourne ses attributs ainsi que les membres des groupes en question
// key = parametre obligatoire
// key = clé d'accès de l'api
public function groupsAction(Request $request) public function groupsAction(Request $request)
{ {
$key=$request->get('key'); $key=$request->get('key');
@ -212,4 +282,166 @@ class RestController extends Controller
// Retour // Retour
return new Response(json_encode($output), 200); return new Response(json_encode($output), 200);
} }
// rest/bookmark/add
// Ajout d'un item ninegate existant comme bookmark d'un utilisateur
// key = parametre obligatoire
// key = clé d'accès de l'api
// login = parametre obligatoire
// login = uid de l'utilisateur sur lequel on souhaite ajouter un bookmark
// iditem = parametre obligatoire
// iditem = id de l'item ninegate qui doit etre ajouté en tant que bookmark
public function bookmarkaddAction(Request $request) {
$em = $this->getDoctrine()->getManager();
$key=$request->get('key');
$login=$request->get('login');
$iditem=$request->get('iditem');
// Vérification de la clé
$realkey = $this->getParameter("apikeyninegate");
if($key!=$realkey) {
$output["error"]="error key";
return new Response(json_encode($output), 400);
}
// Tester présence des parametres
if(is_null($login)||is_null($iditem)) {
$output["error"]="missing parameter : login - iditem";
return new Response(json_encode($output), 400);
}
// Tester l'existance du login
$user=$em->getRepository('CadolesCoreBundle:User')->findOneBy(["username"=>$login]);
if(!$user) {
$output["error"]="user not exist";
return new Response(json_encode($output), 400);
}
// Tester l'existance de l'item
$item=$em->getRepository('CadolesPortalBundle:Item')->find($iditem);
if(!$item) {
$output["error"]="item not exist";
return new Response(json_encode($output), 400);
}
$bookmark = $em->getRepository('CadolesPortalBundle:Bookmark')->findOneBy(["user"=>$user,"item"=>$item]);
if(!$bookmark) {
$bookmark = new Bookmark();
$bookmark->setTitle($item->getTitle());
$bookmark->setSubtitle($item->getSubtitle());
$bookmark->setUrl($item->getUrl());
$bookmark->setIcon($item->getIcon());
$bookmark->setColor($item->getColor());
$bookmark->setTarget($item->getTarget());
$bookmark->setItem($item);
$bookmark->setUser($user);
$em->persist($bookmark);
$em->flush();
}
$output=$bookmark->getId();
return new Response(json_encode($output), 200);
}
// rest/bookmark/del
// Suppression d'un bookmark
// key = parametre obligatoire
// key = clé d'accès de l'api
// idbookmark = parametre obligatoire
// idbookmark = id du bookmark à supprimer
public function bookmarkdelAction(Request $request) {
$em = $this->getDoctrine()->getManager();
$key=$request->get('key');
$idbookmark=$request->get('idbookmark');
// Vérification de la clé
$realkey = $this->getParameter("apikeyninegate");
if($key!=$realkey) {
$output["error"]="error key";
return new Response(json_encode($output), 400);
}
// Tester présence des parametres
if(is_null($idbookmark)) {
$output["error"]="missing parameter : idbookmark";
return new Response(json_encode($output), 400);
}
// Tester l'existance du bookmark
$bookmark=$em->getRepository('CadolesPortalBundle:Bookmark')->find($idbookmark);
if(!$bookmark) {
$output["error"]="bookmark not exist";
return new Response(json_encode($output), 400);
}
$em->remove($bookmark);
$em->flush();
$output=[];
return new Response(json_encode($output), 200);
}
// rest/alert/hide
// Cache une alert à un utilisateur
// key = parametre obligatoire
// key = clé d'accès de l'api
// login = parametre obligatoire
// login = uid de l'utilisateur sur lequel on souhaite ajouter un bookmark
// idalert = parametre obligatoire
// idalert = id de l'alert à chacher
public function alerthideAction(Request $request) {
$em = $this->getDoctrine()->getManager();
$key=$request->get('key');
$login=$request->get('login');
$idalert=$request->get('idalert');
// Vérification de la clé
$realkey = $this->getParameter("apikeyninegate");
if($key!=$realkey) {
$output["error"]="error key";
return new Response(json_encode($output), 400);
}
// Tester présence des parametres
if(is_null($login)||is_null($idalert)) {
$output["error"]="missing parameter : login - idalert";
return new Response(json_encode($output), 400);
}
// Tester l'existance du login
$user=$em->getRepository('CadolesCoreBundle:User')->findOneBy(["username"=>$login]);
if(!$user) {
$output["error"]="user not exist";
return new Response(json_encode($output), 400);
}
// Tester l'existance de l'alert
$alert=$em->getRepository('CadolesPortalBundle:Alert')->find($idalert);
if(!$alert) {
$output["error"]="alert not exist";
return new Response(json_encode($output), 400);
}
// Tester que l'alert est masquable
if(!$alert->getFghideable()) {
$output["error"]="alert not hideable";
return new Response(json_encode($output), 400);
}
// Masquer l'alert
if(!$alert->getReaders()->contains($user)) {
$alert->addReader($user);
$em->persist($alert);
$em->flush();
}
$output=[];
return new Response(json_encode($output), 200);
}
} }

View File

@ -170,7 +170,7 @@ class SecurityController extends Controller
case "CAS": case "CAS":
// Init Client CAS // Init Client CAS
\phpCAS::setDebug(false); \phpCAS::setDebug(false);
\phpCAS::client(CAS_VERSION_2_0, $this->container->getParameter('cas_host'), $this->container->getParameter('cas_port'), is_null($this->container->getParameter('cas_path')) ? '' : $this->container->getParameter('cas_path'), false); @\phpCAS::client(CAS_VERSION_2_0, $this->container->getParameter('cas_host'), $this->container->getParameter('cas_port'), is_null($this->container->getParameter('cas_path')) ? '' : $this->container->getParameter('cas_path'), false);
\phpCAS::setNoCasServerValidation(); \phpCAS::setNoCasServerValidation();
if(\phpCAS::checkAuthentication()) { if(\phpCAS::checkAuthentication()) {

View File

@ -0,0 +1,75 @@
<?php
namespace Cadoles\CoreBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\HttpFoundation\Session\Session;
class SondeController extends Controller
{
public function sondeAction()
{
// Debug sonde
$fgdebug = true;
// Calcul du login
$user=$this->getUser();
if($user) $loginsonde=crypt($user->getUsername(),"dkywqZPYNHtWDnSxACjXVcIsFuaiQT");
else $loginsonde="";
// Calcul du profil
$profilsonde="visiteur";
if($user) {
$profilsonde="utilisateur";
$attributes=$this->get('session')->get('attributes');
if(isset($attributes["ENTPersonProfils"])) $profilsonde=$attributes["ENTPersonProfils"];
}
// Calcul de la provenance
$e = explode('.', $_SERVER["REMOTE_ADDR"]);
$s = sizeof($e);
if(($e[0]=="172"&&$e[1]=="30")||($e[0]=="172"&&$e[1]=="16")||($e[0]=="10"&&($e[1]=="77"||$e[1]=="93"||$e[1]=="94")))
$provenancesonde='interne';
else
$provenancesonde='externe';
// Calcul du service associé à la page
$request = $this->get('request_stack')->getMasterRequest();
$usage=$request->query->get('usage');
$route = $request->attributes->get('_route');
if($route=="cadoles_core_user_file_list"||$route=="cadoles_core_home")
$usagesonde="nosonde";
elseif($route=="cadoles_portal_user_page_view") {
if($usage=="group") $usagesonde="collaboratif";
elseif($usage=="user") $usagesonde="collaboratif";
elseif($usage=="accueil") $usagesonde="accueil";
else $usagesonde="portail";
}
elseif(stripos($route,"cadoles_portal_user_calendar")!==false)
$usagesonde="calendrier";
elseif(stripos($route,"cadoles_portal_user_project")!==false)
$usagesonde="calendrier";
elseif(stripos($route,"cadoles_portal_user_blog")!==false)
$usagesonde="collaboratif";
elseif(stripos($route,"cadoles_core_user_file")!==false)
$usagesonde="fichier";
else
$usagesonde="portail";
$urlsonde="";
if($usagesonde!="nosonde") {
$url=$this->getParameter("widsonde_url");
$app=$this->getParameter("alias");
$urlsonde = $url."?appli=$app&profil=$profilsonde&login=$loginsonde&provenance=$provenancesonde&usage=$usagesonde&route=$route&fgdebug=$fgdebug";
}
return $this->render('CadolesCoreBundle:Sonde:sonde.html.twig',['urlsonde' => $urlsonde]);
}
}

View File

@ -68,9 +68,6 @@ class ThemeController extends Controller
$logo=$request->query->get('logo'); $logo=$request->query->get('logo');
if(!empty($logo)) $session->set('logo',"bundles/cadolescore/themes/$themename/".$logo); if(!empty($logo)) $session->set('logo',"bundles/cadolescore/themes/$themename/".$logo);
$fgheader=$request->query->get('fgheader');
if(!empty($fgheader)) $session->set('fgheader',boolval($fgheader));
$header=$request->query->get('header'); $header=$request->query->get('header');
if(!empty($header)) $session->set('header',"bundles/cadolescore/themes/$themename/".$header); if(!empty($header)) $session->set('header',"bundles/cadolescore/themes/$themename/".$header);

View File

@ -40,6 +40,14 @@ class UserController extends Controller
public function listAction($access) public function listAction($access)
{ {
// Permission
if($access=="user") {
$permannu=$this->get('session')->get('permannu');
if($permannu=="NO_BODY") throw $this->createNotFoundException('Permission denied');
if($permannu=="ROLE_ANIM" && $this->isGranted('ROLE_USER')) throw $this->createNotFoundException('Permission denied');
if($permannu=="ROLE_MODO" && ($this->isGranted('ROLE_ANIM') || $this->isGranted('ROLE_USER'))) throw $this->createNotFoundException('Permission denied');
}
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
$config=$em->getRepository('CadolesCoreBundle:Config')->find("datausers"); $config=$em->getRepository('CadolesCoreBundle:Config')->find("datausers");
$fields=$config->getValue(); $fields=$config->getValue();
@ -358,8 +366,8 @@ class UserController extends Controller
// Initialisation de l'enregistrement // Initialisation de l'enregistrement
$data = new User(); $data = new User();
$data->setVisible(true); $data->setVisible(true);
$data->setBelongingpopulation("authlevel");
$data->setAuthlevel("simple"); $data->setAuthlevel("simple");
$data->setBelongingpopulation("agent");
$fields=$this->getDefaultDatauser(); $fields=$this->getDefaultDatauser();
// Création du formulaire // Création du formulaire
@ -389,6 +397,9 @@ class UserController extends Controller
$lstgroups=array_filter(explode(",",$form->get("linkgroups")->getData())); $lstgroups=array_filter(explode(",",$form->get("linkgroups")->getData()));
$lstmodos=array_filter(explode(",",$form->get("linkmodos")->getData())); $lstmodos=array_filter(explode(",",$form->get("linkmodos")->getData()));
// Si non modérateur vider le profil de modération
if($data->getRole()!="ROLE_MODO") $data->setPermmodoprofil(null);
// Sauvegarde // Sauvegarde
$em->persist($data); $em->persist($data);
$em->flush(); $em->flush();
@ -408,6 +419,7 @@ class UserController extends Controller
$datagroup = $group; $datagroup = $group;
$usergroup->setGroup($datagroup); $usergroup->setGroup($datagroup);
$usergroup->setKeyvalue($key); $usergroup->setKeyvalue($key);
$usergroup->setRolegroup(0);
$em->persist($usergroup); $em->persist($usergroup);
$em->flush(); $em->flush();
} }
@ -417,12 +429,16 @@ class UserController extends Controller
$websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key->toString(),$iduser,$idgroup,$message); $websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key->toString(),$iduser,$idgroup,$message);
// Notification mail auprès de la personne inscrite // Notification mail auprès de la personne inscrite
if($group->getFgcanshare()) { if($group->getFgcanshare()&&$this->get('session')->get('fgnotifgroup')) {
$text="Vous venez d'être inscrit dans le groupe de travail : ".$group->getLabel(); $idpage =$group->getPages()->first()->getId();
$url = $this->generateUrl('cadoles_core_redirect', ["route"=>"cadoles_core_home","id"=>$idpage], UrlGeneratorInterface::ABSOLUTE_URL);
$texthtml="Vous venez d'être inscrit dans le groupe de travail : ".$group->getLabel()."<br>Suivez le lien suivant pour y accéder = <a href='$url'>$url</a>";
$text="Vous venez d'être inscrit dans le groupe de travail : ".$group->getLabel()."<br>Suivez le lien suivant pour y accéder = $url";
$template="template"; $template="template";
$mail_params=array( $mail_params=array(
"subject" => $this->get('session')->get('appname')." : Inscription au groupe de travail : ".$group->getLabel()."\n\n".$group->getDescription(), "subject" => $this->get('session')->get('appname')." : Inscription au groupe de travail : ".$group->getLabel()."\n\n".$group->getDescription(),
"body_html"=>nl2br($text), "body_html"=>$texthtml,
"body_text"=>$text "body_text"=>$text
); );
$to = $data->getEmail(); $to = $data->getEmail();
@ -473,6 +489,7 @@ class UserController extends Controller
$oldpassword=$data->getPassword(); $oldpassword=$data->getPassword();
$fields=$this->getDefaultDatauser(); $fields=$this->getDefaultDatauser();
// Si un acces modo via console d'admin on s'assure qu'il a les droit dessus sinon retour à la liste // Si un acces modo via console d'admin on s'assure qu'il a les droit dessus sinon retour à la liste
if($this->isGranted('ROLE_MODO')&&$access=="config") { if($this->isGranted('ROLE_MODO')&&$access=="config") {
$niveau01=$data->getNiveau01(); $niveau01=$data->getNiveau01();
@ -527,6 +544,9 @@ class UserController extends Controller
$data->setPassword($data->getPassword()); $data->setPassword($data->getPassword());
} }
// Si non modérateur vider le profil de modération
if($data->getRole()!="ROLE_MODO") $data->setPermmodoprofil(null);
// Sauvegarde // Sauvegarde
$em->persist($data); $em->persist($data);
$em->flush(); $em->flush();
@ -551,6 +571,7 @@ class UserController extends Controller
$datagroup = $group; $datagroup = $group;
$usergroup->setGroup($datagroup); $usergroup->setGroup($datagroup);
$usergroup->setKeyvalue($key); $usergroup->setKeyvalue($key);
$usergroup->setRolegroup(0);
$em->persist($usergroup); $em->persist($usergroup);
$em->flush(); $em->flush();
} }
@ -560,12 +581,16 @@ class UserController extends Controller
$websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key->toString(),$id,$idgroup,$message); $websocket = $this->container->get('cadoles.websocket.pushmessage')->send($key->toString(),$id,$idgroup,$message);
// Notification mail auprès de la personne inscrite // Notification mail auprès de la personne inscrite
if($group->getFgcanshare()) { if($group->getFgcanshare()&&$this->get('session')->get('fgnotifgroup')) {
$text="Vous venez d'être inscrit dans le groupe de travail : ".$group->getLabel(); $idpage =$group->getPages()->first()->getId();
$url = $this->generateUrl('cadoles_core_redirect', ["route"=>"cadoles_core_home","id"=>$idpage], UrlGeneratorInterface::ABSOLUTE_URL);
$texthtml="Vous venez d'être inscrit dans le groupe de travail : ".$group->getLabel()."<br>Suivez le lien suivant pour y accéder = <a href='$url'>$url</a>";
$text="Vous venez d'être inscrit dans le groupe de travail : ".$group->getLabel()."<br>Suivez le lien suivant pour y accéder = $url";
$template="template"; $template="template";
$mail_params=array( $mail_params=array(
"subject" => $this->get('session')->get('appname')." : Inscription au groupe de travail : ".$group->getLabel()."\n\n".$group->getDescription(), "subject" => $this->get('session')->get('appname')." : Inscription au groupe de travail : ".$group->getLabel()."\n\n".$group->getDescription(),
"body_html"=>nl2br($text), "body_html"=>$texthtml,
"body_text"=>$text "body_text"=>$text
); );
$to = $data->getEmail(); $to = $data->getEmail();
@ -599,7 +624,7 @@ class UserController extends Controller
$em->flush(); $em->flush();
// Notification mail auprès des managers // Notification mail auprès des managers
if($group->getFgcanshare()) { if($group->getFgcanshare()&&$this->get('session')->get('fgnotifgroup')) {
$text=$data->getUsername()." a été désinscrit du groupe de travail : ".$group->getLabel(); $text=$data->getUsername()." a été désinscrit du groupe de travail : ".$group->getLabel();
$template="template"; $template="template";
$mail_params=array( $mail_params=array(
@ -607,12 +632,14 @@ class UserController extends Controller
"body_html"=>nl2br($text), "body_html"=>nl2br($text),
"body_text"=>$text "body_text"=>$text
); );
$managers=$em->getRepository("CadolesCoreBundle:Usergroup")->findBy(array("group"=>$group,"fgmanager"=>true)); $usergroups=$em->getRepository("CadolesCoreBundle:Usergroup")->findBy(array("group"=>$group));
$to=array(); $to=array();
foreach($managers as $manager) { foreach($usergroups as $usergroup) {
array_push($to,$manager->getUser()->getEmail()); if($usergroup->getRolegroup()>=90)
array_push($to,$usergroup->getUser()->getEmail());
} }
$from = $this->getParameter('noreply');; $from = $this->getParameter('noreply');;
$fromName = $this->get('session')->get('appname'); $fromName = $this->get('session')->get('appname');
$message = $this->container->get('cadoles.core.service.mail'); $message = $this->container->get('cadoles.core.service.mail');
@ -815,12 +842,15 @@ class UserController extends Controller
public function viewAction($id, Request $request) public function viewAction($id, Request $request)
{ {
$user=$this->getData($id); $user=$this->getData($id);
$fields=$this->getDefaultDatausers();
return $this->render('CadolesCoreBundle:User:view.html.twig', [ return $this->render('CadolesCoreBundle:User:view.html.twig', [
'useheader' => false, 'useheader' => false,
'usemenu' => false, 'usemenu' => false,
'usesidebar' => false, 'usesidebar' => false,
"user" => $user 'user' => $user,
'fields' => $fields,
]); ]);
} }
@ -896,7 +926,7 @@ class UserController extends Controller
public function exportuserAction(Request $request) { public function exportuserAction(Request $request) {
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
$dir = $this->get('kernel')->getRootDir() . '/../uploads/export/'; $dir = $this->get('kernel')->getRootDir() . '/../uploads/export/';
$file = "export.csv"; $file = "exportuser.csv";
$fs = new Filesystem(); $fs = new Filesystem();
$fs->mkdir($dir); $fs->mkdir($dir);
@ -906,7 +936,7 @@ class UserController extends Controller
$e = '"'; // this is the default but i like to be explicit $e = '"'; // this is the default but i like to be explicit
// Entête de colonne // Entête de colonne
$data=["id","Login","Nom","Prénom","Email","Téléphone",$this->getParameter("labelniveau01"),$this->getParameter("labelniveau02"),"Métier","Fonction","Nom Usage","Autres Prénom","Sexe","Adresse","Date Naissance","Pays Naissance","Ville Naissance"]; $data=["id","Login","Nom","Prénom","Email","Téléphone",$this->getParameter("labelniveau01"),$this->getParameter("labelniveau02"),"Métier","Fonction","Nom Usage","Autres Prénom","Sexe","Adresse","Date Naissance","Pays Naissance","Ville Naissance","Date Visite","Cpt Visite","Groupes"];
fputcsv($csvh, $data, $d, $e); fputcsv($csvh, $data, $d, $e);
// Liste des utilisateurs en fonction du role de l'utilisateur en cours // Liste des utilisateurs en fonction du role de l'utilisateur en cours
@ -928,6 +958,17 @@ class UserController extends Controller
} }
foreach($users as $user) { foreach($users as $user) {
$groups="";
$fgfirst=true;
foreach($user->getGroups() as $key => $usergroup) {
if(!$fgfirst) $groups.=" - ";
$groups.=$usergroup->getGroup()->getLabel();
if($fgfirst) $fgfirst=false;
}
$visite = ($user->getVisitedate()?$user->getVisitedate()->format("d/m/Y H:i"):"");
$cptvisite = ($user->getVisitedate()?$user->getVisitecpt():"");
$data = [ $data = [
"id"=>$user->getId(), "id"=>$user->getId(),
"username"=>$user->getUsername(), "username"=>$user->getUsername(),
@ -946,6 +987,9 @@ class UserController extends Controller
"birthdate"=>($user->getBirthdate()?$user->getBirthdate()->format("d/m/Y"):""), "birthdate"=>($user->getBirthdate()?$user->getBirthdate()->format("d/m/Y"):""),
"birthcountry"=>($user->getBirthcountry()?$user->getBirthcountry()->getLabel():""), "birthcountry"=>($user->getBirthcountry()?$user->getBirthcountry()->getLabel():""),
"birthplace"=>($user->getBirthplace()?$user->getBirthplace()->getLabel():""), "birthplace"=>($user->getBirthplace()?$user->getBirthplace()->getLabel():""),
"visite"=>$visite,
"cptvisite"=>$cptvisite,
"groups"=>$groups,
]; ];
@ -1216,8 +1260,32 @@ class UserController extends Controller
$id=$request->request->get('id'); $id=$request->request->get('id');
$value=$request->request->get('value'); $value=$request->request->get('value');
// Récupérer les préférences de l'utilisateur
$preference=$this->getUser()->getPreference(); $preference=$this->getUser()->getPreference();
// Cas particulier de page bookmark, on vide la préférence si on reset la meme valeur
if($key=="pagebookmark") {
if(is_array($preference)&&array_key_exists("pagebookmark",$preference)) {
$oldid=$preference["pagebookmark"][0];
if($oldid==$value) {
unset($preference["pagebookmark"]);
$em = $this->getDoctrine()->getManager();
$this->getUser()->setPreference($preference);
$this->get('session')->set("pagebookmark", "");
$em->persist($this->getUser());
$em->flush();
return new Response();
}
}
}
// Mise à jour de la préférence
$toupdate=false; $toupdate=false;
if(!is_array($preference)) {
$toupdate=true;
$preference=[];
}
if(!array_key_exists($key,$preference)) { if(!array_key_exists($key,$preference)) {
$toupdate=true; $toupdate=true;
$preference[$key]=[]; $preference[$key]=[];
@ -1226,7 +1294,7 @@ class UserController extends Controller
$toupdate=true; $toupdate=true;
$preference[$key][$id]=$value; $preference[$key][$id]=$value;
} }
if($value&&$preference[$key][$id]!=$value) { if($preference[$key][$id]!=$value) {
$toupdate=true; $toupdate=true;
$preference[$key][$id]=$value; $preference[$key][$id]=$value;
} }
@ -1389,6 +1457,75 @@ class UserController extends Controller
$fields["visite"]["perm"]=1; $fields["visite"]["perm"]=1;
$fields["visite"]["label"]="Visite"; $fields["visite"]["label"]="Visite";
} }
return $fields;
}
protected function getDefaultDatausers()
{
$em = $this->getDoctrine()->getManager();
$session=$this->get('session');
$config=$em->getRepository('CadolesCoreBundle:Config')->find("datausers");
$fields=$config->getValue();
$fields=json_decode($fields, true);
if(!is_array($fields)) $fields=[];
// Valeur par défaut 0=caché / 3=visible
if(!array_key_exists("avatar",$fields)) {
$fields["avatar"]["perm"]=1;
$fields["avatar"]["label"]="Avatar";
}
if(!array_key_exists("login",$fields)) {
$fields["login"]["perm"]=1;
$fields["login"]["label"]="Login";
}
if(!array_key_exists("lastname",$fields)) {
$fields["lastname"]["perm"]=1;
$fields["lastname"]["label"]="Nom";
}
if(!array_key_exists("firstname",$fields)) {
$fields["firstname"]["perm"]=1;
$fields["firstname"]["label"]="Prenom";
}
if(!array_key_exists("email",$fields)) {
$fields["email"]["perm"]=1;
$fields["email"]["label"]="Email";
}
if(!array_key_exists("niveau01",$fields)) {
$fields["niveau01"]["perm"]=1;
$fields["niveau01"]["label"]=$session->get('labelniveau01');
}
if(!array_key_exists("niveau02",$fields)) {
$fields["niveau02"]["perm"]=1;
$fields["niveau02"]["label"]=$session->get('labelniveau02');
}
if(!array_key_exists("group",$fields)) $fields["group"]["perm"]=1;
$fields["group"]["label"]="Groupes (caché uniquement pour le rôle Utilisateur) ";
if(!array_key_exists("job",$fields)) {
$fields["job"]["perm"]=1;
$fields["job"]["label"]="Métier";
}
if(!array_key_exists("position",$fields)) {
$fields["position"]["perm"]=1;
$fields["position"]["label"]="Fonction";
}
if(!array_key_exists("role",$fields)) {
$fields["role"]["perm"]=1;
$fields["role"]["label"]="Rôles";
}
if(!array_key_exists("telephonenumber",$fields)) {
$fields["telephonenumber"]["perm"]=1;
$fields["telephonenumber"]["label"]="Téléphone";
}
if(!array_key_exists("visitedate",$fields)) $fields["visitedate"]["perm"]=1;
$fields["visitedate"]["label"]="Visite (caché uniquement pour les rôles Animateur et Utilisateur) ";
if(!$session->get('viewniveau02'))
unset($fields["niveau02"]);
return $fields; return $fields;
} }
@ -1414,11 +1551,16 @@ class UserController extends Controller
$form->addError(new FormError('Une inscription utilise déjà ce login ou cet email')); $form->addError(new FormError('Une inscription utilise déjà ce login ou cet email'));
} }
// On s'assure que les modérateurs aient un profil de modération
if($data->getRole()=="ROLE_MODO"&&!$data->getPermmodoprofil()) {
$form->addError(new FormError('Vous devez préciser un profil de modération'));
}
// Si niveau01 commence par autre = niveau01other obligatoire // Si niveau01 commence par autre = niveau01other obligatoire
$niveau01=strtolower($data->getNiveau01()->getLabel()); $niveau01=strtolower($data->getNiveau01()->getLabel());
if(stripos($niveau01,"autre")===0) { if(stripos($niveau01,"autre")===0) {
if(!$data->getNiveau01other()) { if(!$data->getNiveau01other()) {
$form->addError(new FormError("Merci d'indiquer votre ".$this->getParameter("labelniveau01"))); $form->addError(new FormError("Merci de compléter le champ 'Autre ".$this->getParameter("labelniveau01")."'"));
} }
} }
} }

View File

@ -207,6 +207,25 @@ class WhitelistController extends Controller
]); ]);
} }
public function ajaxiswhitelistAction(Request $request)
{
// S'assurer que c'est un appel ajax
if (!$request->isXmlHttpRequest()) {
return new JsonResponse(array('message' => 'Interdit'), 400);
}
$email=$request->request->get('email');
$email=explode("@",$email);
$domaine=end($email);
// Rechercher le mail dans la liste blanche
$em = $this->getDoctrine()->getManager();
$whitelist=$em->getRepository($this->labelentity)->findOneBy(["label"=>$domaine]);
if($whitelist)
return new Response("OK", 200);
else
return new Response("KO", 200);
}
protected function getDatas() protected function getDatas()
{ {
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();

View File

@ -43,6 +43,11 @@ class Group
*/ */
private $color; private $color;
/**
* @ORM\Column(type="string", length=250, nullable=true)
*/
private $email;
/** /**
* @ORM\Column(type="boolean", options={"default" : false}) * @ORM\Column(type="boolean", options={"default" : false})
*/ */
@ -98,6 +103,11 @@ class Group
*/ */
private $idonlyoffice; private $idonlyoffice;
/**
* @ORM\Column(name="invitations", type="array", nullable=true)
*/
private $invitations;
/** /**
* @ORM\ManyToOne(targetEntity="Cadoles\PortalBundle\Entity\Icon", inversedBy="groups") * @ORM\ManyToOne(targetEntity="Cadoles\PortalBundle\Entity\Icon", inversedBy="groups")
* @ORM\JoinColumn(nullable=true, onDelete="SET NULL") * @ORM\JoinColumn(nullable=true, onDelete="SET NULL")
@ -1056,4 +1066,52 @@ class Group
{ {
return $this->statistics; return $this->statistics;
} }
/**
* Set email.
*
* @param string|null $email
*
* @return Group
*/
public function setEmail($email = null)
{
$this->email = $email;
return $this;
}
/**
* Get email.
*
* @return string|null
*/
public function getEmail()
{
return $this->email;
}
/**
* Set invitations
*
* @param array $invitations
*
* @return Group
*/
public function setInvitations($invitations)
{
$this->invitations = $invitations;
return $this;
}
/**
* Get invitations
*
* @return array
*/
public function getInvitations()
{
return $this->invitations;
}
} }

View File

@ -23,7 +23,7 @@ class PermModo
private $id; private $id;
/** /**
* @ORM\Column(type="string", length=50, unique=true) * @ORM\Column(type="string", length=50)
*/ */
private $route; private $route;
@ -32,6 +32,11 @@ class PermModo
*/ */
private $visible; private $visible;
/**
* @ORM\ManyToOne(targetEntity="PermModoProfil", inversedBy="permmodos")
* @ORM\JoinColumn(nullable=true)
*/
private $permmodoprofil;
/** /**
* Get id * Get id
@ -90,4 +95,29 @@ class PermModo
{ {
return $this->visible; return $this->visible;
} }
/**
* Set permmodoprofil
*
* @param \Cadoles\CoreBundle\Entity\PermModoProfil $permmodoprofil
*
* @return PermModo
*/
public function setPermmodoprofil(\Cadoles\CoreBundle\Entity\PermModoProfil $permmodoprofil = null)
{
$this->permmodoprofil = $permmodoprofil;
return $this;
}
/**
* Get permmodoprofil
*
* @return \Cadoles\CoreBundle\Entity\PermModoProfil
*/
public function getPermmodoprofil()
{
return $this->permmodoprofil;
}
} }

View File

@ -0,0 +1,164 @@
<?php
namespace Cadoles\CoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity
* @ORM\Table(name="permmodoprofil")
*
*/
class PermModoProfil
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string", length=50, unique=true)
*/
private $name;
/**
* @ORM\OneToMany(targetEntity="PermModo", mappedBy="permmodoprofil", cascade={"persist"}, orphanRemoval=true)
*/
private $permmodos;
/**
* @ORM\OneToMany(targetEntity="User", mappedBy="permmodoprofil")
*/
private $users;
/**
* Constructor
*/
public function __construct()
{
$this->permmodos = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Get id.
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set id.
*
* @param string $id
*
* @return PermModoProfil
*/
public function setId($id)
{
$this->id = $id;
return $this;
}
/**
* Set name.
*
* @param string $name
*
* @return PermModoProfil
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* Get name.
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* Add permmodo.
*
* @param \Cadoles\CoreBundle\Entity\PermModo $permmodo
*
* @return PermModoProfil
*/
public function addPermmodo(\Cadoles\CoreBundle\Entity\PermModo $permmodo)
{
$this->permmodos[] = $permmodo;
return $this;
}
/**
* Remove permmodo.
*
* @param \Cadoles\CoreBundle\Entity\PermModo $permmodo
*
* @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
*/
public function removePermmodo(\Cadoles\CoreBundle\Entity\PermModo $permmodo)
{
return $this->permmodos->removeElement($permmodo);
}
/**
* Get permmodos.
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getPermmodos()
{
return $this->permmodos;
}
/**
* Add user
*
* @param \Cadoles\CoreBundle\Entity\User $user
*
* @return PermModoProfil
*/
public function addUser(\Cadoles\CoreBundle\Entity\User $user)
{
$this->users[] = $user;
return $this;
}
/**
* Remove user
*
* @param \Cadoles\CoreBundle\Entity\User $user
*/
public function removeUser(\Cadoles\CoreBundle\Entity\User $user)
{
$this->users->removeElement($user);
}
/**
* Get users
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getUsers()
{
return $this->users;
}
}

View File

@ -6,8 +6,8 @@ use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Cadoles\CoreBundle\Validator as CadolesCoreAssert;
use Symfony\Component\Validator\Constraints as Assert; use Symfony\Component\Validator\Constraints as Assert;
use Cadoles\CoreBundle\Validator\Password;
/** /**
* @ORM\Entity * @ORM\Entity
@ -27,10 +27,10 @@ class Registration implements UserInterface, \Serializable
private $id; private $id;
/** /**
* @ORM\Column(type="string", length=25, unique=true) * @ORM\Column(type="string", length=128, unique=true)
* @Assert\Length( * @Assert\Length(
* min = "5", * min = "5",
* max = "25", * max = "128",
* minMessage = "Votre nom doit faire au moins {{ limit }} caractères", * minMessage = "Votre nom doit faire au moins {{ limit }} caractères",
* maxMessage = "Votre nom ne peut pas être plus long que {{ limit }} caractères" * maxMessage = "Votre nom ne peut pas être plus long que {{ limit }} caractères"
* ) * )
@ -52,13 +52,23 @@ class Registration implements UserInterface, \Serializable
*/ */
private $password; private $password;
/**
* @CadolesCoreAssert\Password()
*/
private $passwordplain;
/** /**
* @ORM\Column(type="string", length=250) * @ORM\Column(type="string", length=250)
*/ */
private $salt; private $salt;
/** /**
* @ORM\Column(type="string", length=60, unique=true) * @ORM\Column(type="string", length=250, nullable=true)
*/
private $passwordad;
/**
* @ORM\Column(type="string", length=128, unique=true)
*/ */
private $email; private $email;
@ -133,6 +143,11 @@ class Registration implements UserInterface, \Serializable
*/ */
private $motivation; private $motivation;
/**
* @ORM\Column(name="note", type="text", nullable=true)
*/
private $note;
/** /**
* @ORM\Column(type="integer", length=60, nullable=true) * @ORM\Column(type="integer", length=60, nullable=true)
*/ */
@ -180,13 +195,23 @@ class Registration implements UserInterface, \Serializable
public function setPassword($password) public function setPassword($password)
{ {
if($password!=$this->password&&$password!=""){ if($password!=$this->password&&$password!=""){
$this->tempopassword=$password; // Placer le password non encodé dans une variable tempo sur laquel on va appliquer la contraite
$this->passwordplain = $password;
// Password encrypté format openldap
mt_srand((double)microtime()*1000000); mt_srand((double)microtime()*1000000);
$this->salt = pack("CCCC", mt_rand(), mt_rand(), mt_rand(), mt_rand()); $this->salt = pack("CCCC", mt_rand(), mt_rand(), mt_rand(), mt_rand());
$hash = "{SSHA}" . base64_encode(pack("H*", sha1($password . $this->salt)) . $this->salt); $hash = "{SSHA}" . base64_encode(pack("H*", sha1($password . $this->salt)) . $this->salt);
$this->password = $hash; $this->password = $hash;
// Password encrypté AD
$newPassword = "\"" . $password . "\"";
$len = strlen($newPassword);
$newPassw = "";
for($i=0;$i<$len;$i++) {
$newPassw .= "{$newPassword{$i}}\000";
}
$this->passwordad = $newPassw;
} }
return $this; return $this;
@ -796,4 +821,52 @@ class Registration implements UserInterface, \Serializable
{ {
return $this->motivation; return $this->motivation;
} }
/**
* Set passwordad.
*
* @param string|null $passwordad
*
* @return Registration
*/
public function setPasswordad($passwordad = null)
{
$this->passwordad = $passwordad;
return $this;
}
/**
* Get passwordad.
*
* @return string|null
*/
public function getPasswordad()
{
return $this->passwordad;
}
/**
* Set note
*
* @param string $note
*
* @return Registration
*/
public function setNote($note)
{
$this->note = $note;
return $this;
}
/**
* Get note
*
* @return string
*/
public function getNote()
{
return $this->note;
}
} }

View File

@ -6,8 +6,10 @@ use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Cadoles\CoreBundle\Validator as CadolesCoreAssert;
use Symfony\Component\Validator\Constraints as Assert; use Symfony\Component\Validator\Constraints as Assert;
use Cadoles\CoreBundle\Validator\Password;
/** /**
@ -28,7 +30,13 @@ class User implements UserInterface, \Serializable
private $id; private $id;
/** /**
* @ORM\Column(type="string", length=50, unique=true) * @ORM\Column(type="string", length=128, unique=true)
* @Assert\Length(
* min = "5",
* max = "128",
* minMessage = "Votre nom doit faire au moins {{ limit }} caractères",
* maxMessage = "Votre nom ne peut pas être plus long que {{ limit }} caractères"
* )
*/ */
private $username; private $username;
@ -47,18 +55,23 @@ class User implements UserInterface, \Serializable
*/ */
private $password; private $password;
/**
* @CadolesCoreAssert\Password()
*/
private $passwordplain;
/** /**
* @ORM\Column(type="string", length=250) * @ORM\Column(type="string", length=250)
*/ */
private $salt; private $salt;
/** /**
* @Password() * @ORM\Column(type="string", length=250, nullable=true)
*/ */
private $tempopassword; private $passwordad;
/** /**
* @ORM\Column(type="string", length=60, unique=true) * @ORM\Column(type="string", length=128, unique=true)
*/ */
private $email; private $email;
@ -183,11 +196,22 @@ class User implements UserInterface, \Serializable
*/ */
private $motivation; private $motivation;
/**
* @ORM\Column(name="note", type="text", nullable=true)
*/
private $note;
/** /**
* @ORM\Column(name="preference", type="array", nullable=true) * @ORM\Column(name="preference", type="array", nullable=true)
*/ */
private $preference; private $preference;
/**
* @ORM\ManyToOne(targetEntity="PermModoProfil", inversedBy="users")
* @ORM\JoinColumn(nullable=true)
*/
private $permmodoprofil;
/** /**
* @ORM\ManyToOne(targetEntity="Country", inversedBy="users") * @ORM\ManyToOne(targetEntity="Country", inversedBy="users")
* @ORM\JoinColumn(nullable=true) * @ORM\JoinColumn(nullable=true)
@ -386,12 +410,23 @@ class User implements UserInterface, \Serializable
public function setPassword($password) public function setPassword($password)
{ {
if($password!=$this->password&&$password!=""){ if($password!=$this->password&&$password!=""){
$this->tempopassword=$password; // Placer le password non encodé dans une variable tempo sur laquel on va appliquer la contraite
$this->passwordplain = $password;
$this->salt = uniqid(mt_rand(), true); // Password encrypté format openldap
mt_srand((double)microtime()*1000000);
$this->salt = pack("CCCC", mt_rand(), mt_rand(), mt_rand(), mt_rand());
$hash = "{SSHA}" . base64_encode(pack("H*", sha1($password . $this->salt)) . $this->salt); $hash = "{SSHA}" . base64_encode(pack("H*", sha1($password . $this->salt)) . $this->salt);
$this->password = $hash; $this->password = $hash;
// Password encrypté AD
$newPassword = "\"" . $password . "\"";
$len = strlen($newPassword);
$newPassw = "";
for($i=0;$i<$len;$i++) {
$newPassw .= "{$newPassword{$i}}\000";
}
$this->passwordad = $newPassw;
} }
return $this; return $this;
@ -399,8 +434,8 @@ class User implements UserInterface, \Serializable
public function setPasswordDirect($password) public function setPasswordDirect($password)
{ {
// Permet de setter le password généré lors de l'inscription
$this->password = $password; $this->password = $password;
return $this; return $this;
} }
@ -1981,4 +2016,76 @@ class User implements UserInterface, \Serializable
{ {
return $this->preference; return $this->preference;
} }
/**
* Set permmodoprofil
*
* @param \Cadoles\CoreBundle\Entity\PermModoProfil $permmodoprofil
*
* @return User
*/
public function setPermmodoprofil(\Cadoles\CoreBundle\Entity\PermModoProfil $permmodoprofil = null)
{
$this->permmodoprofil = $permmodoprofil;
return $this;
}
/**
* Get permmodoprofil
*
* @return \Cadoles\CoreBundle\Entity\PermModoProfil
*/
public function getPermmodoprofil()
{
return $this->permmodoprofil;
}
/**
* Set passwordad.
*
* @param string|null $passwordad
*
* @return User
*/
public function setPasswordad($passwordad = null)
{
$this->passwordad = $passwordad;
return $this;
}
/**
* Get passwordad.
*
* @return string|null
*/
public function getPasswordad()
{
return $this->passwordad;
}
/**
* Set note
*
* @param string $note
*
* @return User
*/
public function setNote($note)
{
$this->note = $note;
return $this;
}
/**
* Get note
*
* @return string
*/
public function getNote()
{
return $this->note;
}
} }

View File

@ -37,9 +37,15 @@ class UserGroup
/** /**
* @ORM\Column(type="boolean", options={"default" : false}) * @ORM\Column(type="boolean", options={"default" : false})
* CE CHAMP N'EST PLUS UTILSE
*/ */
private $fgmanager = false; private $fgmanager = false;
/**
* @ORM\Column(type="integer", length=60, nullable=true)
*/
private $rolegroup;
/** /**
* @ORM\Column(type="string", length=60, nullable=true) * @ORM\Column(type="string", length=60, nullable=true)
*/ */
@ -208,4 +214,28 @@ class UserGroup
{ {
return $this->visitecpt; return $this->visitecpt;
} }
/**
* Set rolegroup
*
* @param integer $rolegroup
*
* @return UserGroup
*/
public function setRolegroup($rolegroup)
{
$this->rolegroup = $rolegroup;
return $this;
}
/**
* Get rolegroup
*
* @return integer
*/
public function getRolegroup()
{
return $this->rolegroup;
}
} }

View File

@ -13,15 +13,18 @@
class sessionListener { class sessionListener {
protected $container; protected $container;
protected $em; protected $em;
protected $token_storage;
protected $session;
public function __construct($container, EntityManager $em, TokenStorageInterface $token_storage) public function __construct($container, EntityManager $em, TokenStorageInterface $token_storage,Session $session)
{ {
$this->container = $container; $this->container = $container;
$this->em = $em; $this->em = $em;
$this->token_storage = $token_storage; $this->token_storage = $token_storage;
$this->session = $session;
} }
public function haveRole($roles,$tohave,$route) { public function haveRole($curentuser,$roles,$tohave,$route) {
$haverole=false; $haverole=false;
if($roles=="") { if($roles=="") {
if(empty($tohave)) $haverole=true; if(empty($tohave)) $haverole=true;
@ -35,7 +38,7 @@
if($route!=null) { if($route!=null) {
if($haverole&&in_array("ROLE_MODO",$roles)) { if($haverole&&in_array("ROLE_MODO",$roles)) {
$permmodo=$this->em->getRepository("CadolesCoreBundle:PermModo")->findOneBy(["route"=>$route,"visible"=>true]); $permmodo=$this->em->getRepository("CadolesCoreBundle:PermModo")->findOneBy(["route"=>$route,"visible"=>true,"permmodoprofil"=>$curentuser->getPermmodoprofil()]);
if(!$permmodo) $haverole=false; if(!$permmodo) $haverole=false;
} }
} }
@ -44,9 +47,7 @@
} }
public function onDomainParse(Event $event) { public function onDomainParse(Event $event) {
$session = new Session(); $session = $this->session;
$configs = $this->em->getRepository("CadolesCoreBundle:Config")->findAll(); $configs = $this->em->getRepository("CadolesCoreBundle:Config")->findAll();
foreach($configs as $config) { foreach($configs as $config) {
@ -93,6 +94,7 @@
$app["activate_widwordpress"] =$this->container->getParameter('activate_widwordpress'); $app["activate_widwordpress"] =$this->container->getParameter('activate_widwordpress');
$app["widbalado_activate_syncenvole"] =$this->container->getParameter('widbalado_activate_syncenvole'); $app["widbalado_activate_syncenvole"] =$this->container->getParameter('widbalado_activate_syncenvole');
$app["widcdt_activate_syncenvole"] =$this->container->getParameter('widcdt_activate_syncenvole');
$app["widgepi_activate_syncenvole"] =$this->container->getParameter('widgepi_activate_syncenvole'); $app["widgepi_activate_syncenvole"] =$this->container->getParameter('widgepi_activate_syncenvole');
$app["widnextcloud_activate_syncenvole"] =$this->container->getParameter('widnextcloud_activate_syncenvole'); $app["widnextcloud_activate_syncenvole"] =$this->container->getParameter('widnextcloud_activate_syncenvole');
$app["widpiwik_activate_syncenvole"] =$this->container->getParameter('widpiwik_activate_syncenvole'); $app["widpiwik_activate_syncenvole"] =$this->container->getParameter('widpiwik_activate_syncenvole');
@ -120,7 +122,9 @@
if(in_array("ROLE_MODO",$roles)) { if(in_array("ROLE_MODO",$roles)) {
$request = $event->getRequest(); $request = $event->getRequest();
$route = $request->attributes->get('_route'); $route = $request->attributes->get('_route');
if($route!="cadoles_core_config"&&stripos($route,"_config")!==false) { if($route!="cadoles_core_config"&&stripos($route,"_config")!==false&&stripos($route,"cadoles_core_config_file")===false) {
$permmodoprofil=$curentuser->getPermmodoprofil();
if(stripos($route,"cadoles_core_config_logo")!==false) $route="cadoles_portal_config_page"; if(stripos($route,"cadoles_core_config_logo")!==false) $route="cadoles_portal_config_page";
if(stripos($route,"cadoles_core_config_header")!==false) $route="cadoles_portal_config_page"; if(stripos($route,"cadoles_core_config_header")!==false) $route="cadoles_portal_config_page";
@ -133,6 +137,9 @@
if(stripos($route,"cadoles_portal_config_itemcategory")!==false) $route="cadoles_portal_config_item"; if(stripos($route,"cadoles_portal_config_itemcategory")!==false) $route="cadoles_portal_config_item";
if(stripos($route,"cadoles_portal_config_alertcategory")!==false) $route="cadoles_portal_config_alert"; if(stripos($route,"cadoles_portal_config_alertcategory")!==false) $route="cadoles_portal_config_alert";
if(stripos($route,"cadoles_portal_config_calendarevent")!==false) $route="cadoles_portal_config_calendar"; if(stripos($route,"cadoles_portal_config_calendarevent")!==false) $route="cadoles_portal_config_calendar";
if(stripos($route,"cadoles_portal_config_blogarticle")!==false) $route="cadoles_portal_config_blog";
if(stripos($route,"cadoles_portal_config_blogcomment")!==false) $route="cadoles_portal_config_blog";
if(stripos($route,"cadoles_portal_config_projecttask")!==false) $route="cadoles_portal_config_project";
if(stripos($route,"cadoles_cron_config")!==false) $route="cadoles_cron_config"; if(stripos($route,"cadoles_cron_config")!==false) $route="cadoles_cron_config";
$tbroute=explode("_",$route); $tbroute=explode("_",$route);
@ -141,7 +148,7 @@
$route.=(isset($tbroute[2])?"_".$tbroute[2]:""); $route.=(isset($tbroute[2])?"_".$tbroute[2]:"");
$route.=(isset($tbroute[3])?"_".$tbroute[3]:""); $route.=(isset($tbroute[3])?"_".$tbroute[3]:"");
$permmodo = $this->em->getRepository("CadolesCoreBundle:PermModo")->findOneBy(['route'=> $route, "visible"=>true]); $permmodo = $this->em->getRepository("CadolesCoreBundle:PermModo")->findOneBy(['permmodoprofil'=>$permmodoprofil,'route'=> $route, "visible"=>true]);
if(!$permmodo) die('Permission denied'); if(!$permmodo) die('Permission denied');
} }
} }
@ -149,7 +156,7 @@
$sidebar=array(); $sidebar=array();
$nvs1 = $this->em->getRepository("CadolesCoreBundle:Sidebar")->findBy(array('parent'=> NULL), array('roworder' => 'ASC')); $nvs1 = $this->em->getRepository("CadolesCoreBundle:Sidebar")->findBy(array('parent'=> NULL), array('roworder' => 'ASC'));
foreach($nvs1 as $nv1) { foreach($nvs1 as $nv1) {
if($this->haveRole($roles,$nv1->getPermission(),$nv1->getPath())) { if($this->haveRole($curentuser,$roles,$nv1->getPermission(),$nv1->getPath())) {
$sidebar[$nv1->getRoworder()] = array( $sidebar[$nv1->getRoworder()] = array(
"fonticon" => $nv1->getFonticon(), "fonticon" => $nv1->getFonticon(),
"label" => $nv1->getLabel(), "label" => $nv1->getLabel(),
@ -180,7 +187,7 @@
foreach($nv1->getChilds() as $nv2) { foreach($nv1->getChilds() as $nv2) {
if($this->haveRole($roles,$nv2->getPermission(),$nv2->getPath())) { if($this->haveRole($curentuser,$roles,$nv2->getPermission(),$nv2->getPath())) {
$sidebar[$nv1->getRoworder()]["childs"][$nv2->getRoworder()] = array ( $sidebar[$nv1->getRoworder()]["childs"][$nv2->getRoworder()] = array (
"fonticon" => $nv2->getFonticon(), "fonticon" => $nv2->getFonticon(),
"label" => $nv2->getLabel(), "label" => $nv2->getLabel(),
@ -215,7 +222,7 @@
} }
foreach($nv2->getChilds() as $nv3) { foreach($nv2->getChilds() as $nv3) {
if($this->haveRole($roles,$nv3->getPermission(),$nv3->getPath())) { if($this->haveRole($curentuser,$roles,$nv3->getPermission(),$nv3->getPath())) {
$sidebar[$nv1->getRoworder()]["childs"][$nv2->getRoworder()]["childs"][$nv3->getRoworder()] = array ( $sidebar[$nv1->getRoworder()]["childs"][$nv2->getRoworder()]["childs"][$nv3->getRoworder()] = array (
"fonticon" => $nv3->getFonticon(), "fonticon" => $nv3->getFonticon(),
"label" => $nv3->getLabel(), "label" => $nv3->getLabel(),
@ -304,8 +311,24 @@
$color = $this->container->get('cadoles.core.service.color'); $color = $this->container->get('cadoles.core.service.color');
$color->setColor(); $color->setColor();
// Visite
if($curentuser!="anon.") { if($curentuser!="anon.") {
// Préférence
$preference=$curentuser->getPreference();
if(is_array($preference)) {
// Préférence header
if(array_key_exists("fgheader",$preference)) {
$fgheader=($preference["fgheader"][0]=="true");
$session->set("fgheader", $fgheader);
}
// Préférence header
if(array_key_exists("pagebookmark",$preference)) {
$pagebookmark=$preference["pagebookmark"][0];
$session->set("pagebookmark", $pagebookmark);
}
}
// Visite
$now=new \DateTime(); $now=new \DateTime();
if(!$curentuser->getVisitedate()) { if(!$curentuser->getVisitedate()) {
$curentuser->setVisitedate($now); $curentuser->setVisitedate($now);

View File

@ -42,6 +42,7 @@ class syncGroup implements EventSubscriber
$this->shouldSync = $args->hasChangedField('label') || $this->shouldSync = $args->hasChangedField('label') ||
$args->hasChangedField('description') || $args->hasChangedField('description') ||
$args->hasChangedField('owner') || $args->hasChangedField('owner') ||
$args->hasChangedField('email') ||
$args->hasChangedField('fgcanshare'); $args->hasChangedField('fgcanshare');
if($args->hasChangedField('label')) $this->oldid=$args->getOldValue('label'); if($args->hasChangedField('label')) $this->oldid=$args->getOldValue('label');

View File

@ -60,19 +60,17 @@ class syncNiveau01 implements EventSubscriber
if ($entity instanceof Niveau01 && ($this->changeSiren||$this->changeLabel)) { if ($entity instanceof Niveau01 && ($this->changeSiren||$this->changeLabel)) {
// On change le SIRET de l'ensemble des utlisateurs associés à cet établissement // On change le SIRET de l'ensemble des utlisateurs associés à ce Niveau01
// Pas de déclencheur bdd car trop long
// La synchronisation journalière mettra à jour l'annuaire de l'utilisateur
$qb = $this->em->createQueryBuilder(); $qb = $this->em->createQueryBuilder();
$datas= $qb ->select('table')->from('CadolesCoreBundle:User','table') $q = $qb->update('CadolesCoreBundle:User','user')
->where('table.niveau01 = :id') ->set('user.labelniveau01', $qb->expr()->literal($entity->getLabel()))
->setParameter("id", $entity->getId()) ->set('user.siren', $qb->expr()->literal($entity->getSiren()))
->getQuery() ->where('user.niveau01 = :niveau01')
->getResult(); ->setParameter("niveau01", $entity->getId())
foreach($datas as $data) { ->getQuery();
$data->setSiren($entity->getSiren()); $q->execute();
$data->setLabelniveau01($entity->getLabel());
$this->em->persist($data);
$this->em->flush();
}
} }
} }

View File

@ -59,19 +59,17 @@ class syncNiveau02 implements EventSubscriber
} }
if ($entity instanceof Niveau02 && ($this->changeSiret||$this->changeLabel)) { if ($entity instanceof Niveau02 && ($this->changeSiret||$this->changeLabel)) {
// On change le SIRET de l'ensemble des utlisateurs associés à cet établissement // On change le SIREN de l'ensemble des utlisateurs associés à ce Niveau02
// Pas de déclencheur bdd car trop long
// La synchronisation journalière mettra à jour l'annuaire de l'utilisateur
$qb = $this->em->createQueryBuilder(); $qb = $this->em->createQueryBuilder();
$datas= $qb ->select('table')->from('CadolesCoreBundle:User','table') $q = $qb->update('CadolesCoreBundle:User','user')
->where('table.niveau02 = :id') ->set('user.labelniveau02', $qb->expr()->literal($entity->getSiret()))
->setParameter("id", $entity->getId()) ->set('user.siret', $qb->expr()->literal($entity->getSiren()))
->getQuery() ->where('user.niveau02 = :niveau02')
->getResult(); ->setParameter("niveau02", $entity->getId())
foreach($datas as $data) { ->getQuery();
$data->setSiret($entity->getSiret()); $q->execute();
$data->setLabelniveau02($entity->getLabel());
$this->em->persist($data);
$this->em->flush();
}
} }
} }

View File

@ -17,12 +17,16 @@ class syncUser implements EventSubscriber
{ {
protected $container; protected $container;
protected $shouldSync; protected $shouldSync;
protected $shouldSyncpwd;
protected $baseUser; protected $baseUser;
protected $ldap_username;
public function __construct($container, EntityManager $em) { public function __construct($container, EntityManager $em, $ldap_username) {
$this->container = $container; $this->container = $container;
$this->em = $em; $this->em = $em;
$this->shouldSync = true; $this->shouldSync = true;
$this->shouldSyncpwd = true;
$this->ldap_username = $ldap_username;
} }
public function getSubscribedEvents() public function getSubscribedEvents()
@ -47,7 +51,6 @@ class syncUser implements EventSubscriber
$args->hasChangedField('lastname') || $args->hasChangedField('lastname') ||
$args->hasChangedField('email') || $args->hasChangedField('email') ||
$args->hasChangedField('role') || $args->hasChangedField('role') ||
$args->hasChangedField('password') ||
$args->hasChangedField('avatar') || $args->hasChangedField('avatar') ||
$args->hasChangedField('niveau01') || $args->hasChangedField('niveau01') ||
$args->hasChangedField('niveau02') || $args->hasChangedField('niveau02') ||
@ -69,6 +72,8 @@ class syncUser implements EventSubscriber
$args->hasChangedField('birthplace') $args->hasChangedField('birthplace')
; ;
$this->shouldSyncpwd = $args->hasChangedField('password');
$entity->setSiren($entity->getNiveau01()->getSiren()); $entity->setSiren($entity->getNiveau01()->getSiren());
$entity->setLabelniveau01($entity->getNiveau01()->getLabel()); $entity->setLabelniveau01($entity->getNiveau01()->getLabel());
if($entity->getNiveau02()!==null) { if($entity->getNiveau02()!==null) {
@ -90,6 +95,11 @@ class syncUser implements EventSubscriber
if ($entity instanceof User && $this->shouldSync) { if ($entity instanceof User && $this->shouldSync) {
$this->upsertUser($entity); $this->upsertUser($entity);
} }
// On met à jour/créé le password de l'utilisateur dans l'annuaire
if ($entity instanceof User && $this->shouldSyncpwd) {
$this->upsertUserpwd($entity);
}
} }
public function postPersist(LifecycleEventArgs $args) public function postPersist(LifecycleEventArgs $args)
@ -99,6 +109,7 @@ class syncUser implements EventSubscriber
// On créait une fiche pour l'usager dans l'annuaire // On créait une fiche pour l'usager dans l'annuaire
if ($entity instanceof User) { if ($entity instanceof User) {
$this->upsertUser($entity); $this->upsertUser($entity);
$this->upsertUserpwd($entity);
} }
} }
@ -116,9 +127,9 @@ class syncUser implements EventSubscriber
$ldap = $this->container->get('cadoles.core.service.ldap'); $ldap = $this->container->get('cadoles.core.service.ldap');
if($ldap->isEnabled()) { if($ldap->isEnabled()) {
// On recherche l'utilisateur dans l'annuaire // On recherche l'utilisateur dans l'annuaire
$criteria = '(uid='.$user->getUsername().')'; $criteria = '('.$this->ldap_username.'='.$user->getUsername().')';
$subbranch=$this->baseUser; $subbranch=$this->baseUser;
$results = $ldap->search($criteria, array('uid'), $subbranch); $results = $ldap->search($criteria, array($this->ldap_username), $subbranch);
if(count($results)) { if(count($results)) {
$ldap->deleteUser($user); $ldap->deleteUser($user);
@ -138,9 +149,9 @@ class syncUser implements EventSubscriber
$ldap = $this->container->get('cadoles.core.service.ldap'); $ldap = $this->container->get('cadoles.core.service.ldap');
if($ldap->isEnabled()) { if($ldap->isEnabled()) {
// On recherche l'utilisateur dans l'annuaire // On recherche l'utilisateur dans l'annuaire
$criteria = '(uid='.$user->getUsername().')'; $criteria = '('.$this->ldap_username.'='.$user->getUsername().')';
$subbranch=$this->baseUser; $subbranch=$this->baseUser;
$results = $ldap->search($criteria, array('uid'), $subbranch); $results = $ldap->search($criteria, array($this->ldap_username), $subbranch);
// Mise à jour si elle existe // Mise à jour si elle existe
if(count($results) > 0) { if(count($results) > 0) {
@ -170,12 +181,30 @@ class syncUser implements EventSubscriber
$data->setUser($user); $data->setUser($user);
$data->setGroup($fgall[0]); $data->setGroup($fgall[0]);
$data->setKeyvalue($key); $data->setKeyvalue($key);
$data->setRolegroup(0);
$this->em->persist($data); $this->em->persist($data);
$this->em->flush(); $this->em->flush();
} }
} }
} }
public function upsertUserpwd($user, $force = false)
{
// Synchonisation LDAP
$ldap = $this->container->get('cadoles.core.service.ldap');
if($ldap->isEnabled()) {
// On recherche l'utilisateur dans l'annuaire
$criteria = '('.$this->ldap_username.'='.$user->getUsername().')';
$subbranch=$this->baseUser;
$results = $ldap->search($criteria, array($this->ldap_username), $subbranch);
// Mise à jour si elle existe
if(count($results) > 0) {
$ldap->modifyUserpwd($user);
}
}
}
public function getBaseUser() { public function getBaseUser() {
return $this->baseUser; return $this->baseUser;
} }

View File

@ -85,12 +85,16 @@ class ConfigType extends AbstractType
"Chewy-Regular" => "Chewy-Regular", "Chewy-Regular" => "Chewy-Regular",
"Courgette-Regular" => "Courgette-Regular", "Courgette-Regular" => "Courgette-Regular",
"FredokaOne-Regular" => "FredokaOne-Regular", "FredokaOne-Regular" => "FredokaOne-Regular",
"Gothic-Bold" => "Gothic-Bold",
"Gothic-Regular" => "Gothic-Regular",
"Grandstander" => "Grandstander", "Grandstander" => "Grandstander",
"Helvetica" => "Helvetica", "Helvetica" => "Helvetica",
"Justanotherhand-Regular" => "Justanotherhand-Regular", "Justanotherhand-Regular" => "Justanotherhand-Regular",
"Lato-Regular" => "Lato-Regular", "Lato-Regular" => "Lato-Regular",
"LexendDeca-Regular" => "LexendDeca-Regular", "LexendDeca-Regular" => "LexendDeca-Regular",
"LuckiestGuy-Regular" => "LuckiestGuy-Regular", "LuckiestGuy-Regular" => "LuckiestGuy-Regular",
"Marianne-Bold" => "Marianne-Bold",
"Marianne-Regular" => "Marianne-Regular",
"Overpass-Black" => "Overpass-Black", "Overpass-Black" => "Overpass-Black",
"PassionOne" => "PassionOne", "PassionOne" => "PassionOne",
"Peacesans" => "Peacesans", "Peacesans" => "Peacesans",
@ -152,6 +156,7 @@ class ConfigType extends AbstractType
"NO_BODY" => "NO_BODY", "NO_BODY" => "NO_BODY",
"ROLE_USER" => "ROLE_USER", "ROLE_USER" => "ROLE_USER",
"ROLE_ANIM" => "ROLE_ANIM", "ROLE_ANIM" => "ROLE_ANIM",
"ROLE_MODO" => "ROLE_MODO",
); );
$builder->add("value", ChoiceType::class, $builder->add("value", ChoiceType::class,

View File

@ -83,6 +83,15 @@ class GroupType extends AbstractType
} }
if($options["access"]=="config") { if($options["access"]=="config") {
$builder->add('email',
EmailType::class, array(
"label" =>"Mail",
"disabled" => ($options["mode"]=="delete"?true:false),
"required" => false,
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px")
)
);
$builder->add("fgcancreatepage", $builder->add("fgcancreatepage",
ChoiceType::class,array( ChoiceType::class,array(
"label" =>"Permission de créer des Pages", "label" =>"Permission de créer des Pages",

View File

@ -52,7 +52,7 @@ class MailType extends AbstractType
'mapped'=> false, 'mapped'=> false,
'required' => false, 'required' => false,
'attr' => array("class" => "form-control", "style" => "margin-bottom:15px"), 'attr' => array("class" => "form-control", "style" => "margin-bottom:15px"),
'config' => ["height" => "150px",'filebrowserUploadRoute' => 'cadoles_portal_user_pagewidget_upload'] 'config' => ["height" => "150px"]
]); ]);
} }

View File

@ -99,7 +99,7 @@ class MailingType extends AbstractType
'mapped'=> false, 'mapped'=> false,
'required' => true, 'required' => true,
'attr' => array("class" => "form-control", "style" => "margin-bottom:15px"), 'attr' => array("class" => "form-control", "style" => "margin-bottom:15px"),
'config' => ["height" => "400px",'filebrowserUploadRoute' => 'cadoles_portal_user_pagewidget_upload'] 'config' => ["height" => "400px"]
]); ]);
} }

View File

@ -0,0 +1,52 @@
<?php
namespace Cadoles\CoreBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\EntityManager;
class PermmodoprofilType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('submit',
SubmitType::class, array(
"label" => ($options["mode"]=="delete"?"Confirmer la Suppression":"Valider"),
"attr" => ($options["mode"]=="delete"?array("class" => "btn btn-danger"):array("class" => "btn btn-success"))
)
);
$builder->add('name',
TextType::class, array(
"label" =>"Label",
"disabled" => ($options["mode"]=="delete"?true:false),
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px")
)
);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Cadoles\CoreBundle\Entity\PermModoProfil',
'mode' => "string",
'labelsiren' => "string",
'masteridentity' => "string"
));
}
}

View File

@ -45,6 +45,15 @@ class RegistrationType extends AbstractType
"attr" => array("class" => "btn btn-success") "attr" => array("class" => "btn btn-success")
) )
); );
$builder->add('note',
TextareaType::class, array(
"label" => "Notes Administrateur",
"required" => false,
"disabled" => ($options["mode"]=="delete"?true:false),
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px; height: 130px")
)
);
} }
# Obligatoire # Obligatoire
@ -78,13 +87,16 @@ class RegistrationType extends AbstractType
"label" => $session->get('labelniveau01'), "label" => $session->get('labelniveau01'),
'placeholder' => '== Choisir '.$session->get('labelniveau01').' ==', 'placeholder' => '== Choisir '.$session->get('labelniveau01').' ==',
"choice_label" => "label", "choice_label" => "label",
"query_builder"=> function (EntityRepository $er) {
return $er->createQueryBuilder('niveau01')->orderBy('niveau01.label','ASC');
},
"disabled" => ($options["mode"]=="delete"?true:false), "disabled" => ($options["mode"]=="delete"?true:false),
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px","readonly" => ($options["mode"]=="delete"?true:false)))); "attr" => array("class" => "form-control", "style" => "margin-bottom:15px","readonly" => ($options["mode"]=="delete"?true:false))));
$builder->add('niveau01other', $builder->add('niveau01other',
TextType::class, array( TextType::class, array(
"label" =>"Autre ".$session->get('labelniveau01'), "label" =>"Autre ".$session->get('labelniveau01'). " *",
"disabled" => ($options["mode"]=="delete"?true:false), "disabled" => ($options["mode"]=="delete"?true:false),
"required" => false, "required" => false,
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px") "attr" => array("class" => "form-control", "style" => "margin-bottom:15px")
@ -98,7 +110,8 @@ class RegistrationType extends AbstractType
"type" => PasswordType::class, "type" => PasswordType::class,
"required" => ($options["mode"]=="submit"?true:false), "required" => ($options["mode"]=="submit"?true:false),
"first_options" => array("label" => "Mot de Passe","attr" => array("class" => "form-control", "style" => "margin-bottom:15px", "autocomplete" => "new-password")), "first_options" => array("label" => "Mot de Passe","attr" => array("class" => "form-control", "style" => "margin-bottom:15px", "autocomplete" => "new-password")),
"second_options" => array('label' => 'Confirmer Mot de Passe',"attr" => array("class" => "form-control", "style" => "margin-bottom:15px")) "second_options" => array('label' => 'Confirmer Mot de Passe',"attr" => array("class" => "form-control", "style" => "margin-bottom:15px")),
"invalid_message" => "Mot de passe non valide"
) )
); );

View File

@ -45,7 +45,8 @@ class ResetpwdType extends AbstractType
"required" => ($options["mode"]=="submit"?true:false), "required" => ($options["mode"]=="submit"?true:false),
"options" => array("always_empty" => true), "options" => array("always_empty" => true),
"first_options" => array("label" => "Votre nouveau Mot de Passe","attr" => array("class" => "form-control", "style" => "margin-bottom:15px")), "first_options" => array("label" => "Votre nouveau Mot de Passe","attr" => array("class" => "form-control", "style" => "margin-bottom:15px")),
"second_options" => array('label' => 'Confirmer votre nouveau Mot de Passe',"attr" => array("class" => "form-control", "style" => "margin-bottom:15px")) "second_options" => array('label' => 'Confirmer votre nouveau Mot de Passe',"attr" => array("class" => "form-control", "style" => "margin-bottom:15px")),
"invalid_message" => "Mot de passe non valide"
) )
); );
} }

View File

@ -0,0 +1,95 @@
<?php
namespace Cadoles\CoreBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\OptionsResolver\OptionsResolver;
class IconChoiceType extends AbstractType
{
/**
* Cache for multiple icon fields or sub-requests.
*
* @var array
*/
private $choices;
private $fontawesomeIconsFile;
public function __construct($fontawesomeIconsFile)
{
// Liste des icones FontAwesome au format JSON
// Récupéré depuis le dépôt officiel via la commande "make fetch-fontawesome-icons"
// Voir service.yml
$this->fontawesomeIconsFile = $fontawesomeIconsFile;
}
public function buildView(FormView $view, FormInterface $form, array $options)
{
// Pass this flag is necessary to render the label as raw.
// See below the twig field template for more details.
$view->vars['raw_label'] = true;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'attr' => [
// It's the key of the solution and can be done in many ways.
// Now, the rendered <select> element will have a new font.
'style' => "font-family: 'FontAwesome';",
'class' => 'select2-icon',
],
'choices' => $this->getFontAwesomeIconChoices(),
]);
}
public function getParent()
{
return ChoiceType::class;
}
protected function getFontAwesomeIconChoices()
{
if (null !== $this->choices) {
return $this->choices;
}
$fileContent = file_get_contents($this->fontawesomeIconsFile);
if (!$fileContent) {
throw new \Error('Could not load fontawesome icons file');
}
$icons = json_decode($fileContent, true);
foreach ($icons as $iconName => $iconMetadata) {
foreach ($iconMetadata['free'] as $iconStyle) {
if ('brands' === $iconStyle) {
// On ne propose pas les icônes de marques déposées.
continue;
}
$iconClass = '';
switch ($iconStyle) {
case 'solid':
$iconClass .= ' fas';
break;
case 'regular':
$iconClass .= ' far';
break;
case 'brands':
default:
$iconClass .= ' fa';
break;
}
$iconClass .= ' fa-' . $iconName;
$this->choices[$iconMetadata['label'] . ' (' . $iconStyle . ')'] = trim($iconClass);
}
}
return $this->choices;
}
}

View File

@ -75,6 +75,26 @@ class UserType extends AbstractType
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px;$readonly","onfocus" => $onfocus, "onchange" => $onchange), "attr" => array("class" => "form-control", "style" => "margin-bottom:15px;$readonly","onfocus" => $onfocus, "onchange" => $onchange),
"required" => true, "required" => true,
"choices" => $choices)); "choices" => $choices));
$builder->add('permmodoprofil',
EntityType::class,[
"class" => "CadolesCoreBundle:PermModoProfil",
"label" => "Profil de Modération",
"choice_label" => "name",
'disabled' => ($options["mode"]=="delete"?true:false),
"required" => false,
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px;$readonly","onfocus" => $onfocus, "onchange" => $onchange),
]
);
$builder->add('note',
TextareaType::class, array(
"label" => "Notes Administrateur",
"required" => false,
"disabled" => ($options["mode"]=="delete"?true:false),
"attr" => array("class" => "form-control", "style" => "margin-bottom:15px; height: 130px")
)
);
} }
$perm=$options["perm"]; $perm=$options["perm"];
@ -89,16 +109,16 @@ class UserType extends AbstractType
"query_builder"=> function (EntityRepository $er) use($access,$perm,$userid) { "query_builder"=> function (EntityRepository $er) use($access,$perm,$userid) {
if($access=="config") { if($access=="config") {
if($perm) if($perm)
return $er->createQueryBuilder('niveau01'); return $er->createQueryBuilder('niveau01')->orderBy('niveau01.label','ASC');
else { else {
$result=$er->createQueryBuilder("table")->innerJoin("CadolesCoreBundle:UserModo", "usermodo", Join::WITH, "table.id = usermodo.niveau01"); $result=$er->createQueryBuilder("table")->innerJoin("CadolesCoreBundle:UserModo", "usermodo", Join::WITH, "table.id = usermodo.niveau01")->orderBy('table.label','ASC');
$result->andWhere("usermodo.user = :userid"); $result->andWhere("usermodo.user = :userid");
$result->setParameter('userid', $userid); $result->setParameter('userid', $userid);
return $result; return $result;
} }
} }
else { else {
return $er->createQueryBuilder('niveau01'); return $er->createQueryBuilder('niveau01')->orderBy('niveau01.label','ASC');
} }
}, },
"disabled" => ($options["mode"]=="delete"||$options["masteridentity"]!="SQL"?true:false), "disabled" => ($options["mode"]=="delete"||$options["masteridentity"]!="SQL"?true:false),
@ -121,7 +141,8 @@ class UserType extends AbstractType
"required" => ($options["mode"]=="submit"?true:false), "required" => ($options["mode"]=="submit"?true:false),
"options" => array("always_empty" => true), "options" => array("always_empty" => true),
"first_options" => array("label" => "Mot de Passe","attr" => array("class" => "form-control", "style" => "margin-bottom:15px", "autocomplete" => "new-password")), "first_options" => array("label" => "Mot de Passe","attr" => array("class" => "form-control", "style" => "margin-bottom:15px", "autocomplete" => "new-password")),
"second_options" => array('label' => 'Confirmer Mot de Passe',"attr" => array("class" => "form-control", "style" => "margin-bottom:15px")) "second_options" => array('label' => 'Confirmer Mot de Passe',"attr" => array("class" => "form-control", "style" => "margin-bottom:15px")),
"invalid_message" => "Mot de passe non valide"
) )
); );
} }

View File

@ -21,15 +21,15 @@ class GroupRepository extends \Doctrine\ORM\EntityRepository
foreach($attgroup as $key => $value) { foreach($attgroup as $key => $value) {
if(array_key_exists($key,$attruser)) { if(array_key_exists($key,$attruser)) {
if(is_array($value)) { if(is_array($attruser[$key])) {
foreach($value as $val) { foreach($attruser[$key] as $val) {
if($val=="*") if($value=="*")
$retgroups->add($group); $retgroups->add($group);
elseif($val==$attruser[$key]) elseif($val==$value)
$retgroups->add($group); $retgroups->add($group);
} }
} }
elseif(array_key_exists($key,$attruser)) { else {
if($value=="*") if($value=="*")
$retgroups->add($group); $retgroups->add($group);
elseif($value==$attruser[$key]) elseif($value==$attruser[$key])
@ -63,6 +63,7 @@ class GroupRepository extends \Doctrine\ORM\EntityRepository
$usergroup->setUser($user); $usergroup->setUser($user);
$usergroup->setGroup($retgroup); $usergroup->setGroup($retgroup);
$usergroup->setKeyvalue($key); $usergroup->setKeyvalue($key);
$usergroup->setRolegroup(0);
$this->_em->persist($usergroup); $this->_em->persist($usergroup);
$this->_em->flush(); $this->_em->flush();

View File

@ -15,15 +15,15 @@ class Niveau01Repository extends \Doctrine\ORM\EntityRepository
foreach($attniveau as $key => $value) { foreach($attniveau as $key => $value) {
if(array_key_exists($key,$attruser)) { if(array_key_exists($key,$attruser)) {
if(is_array($value)) { if(is_array($attruser[$key])) {
foreach($value as $val) { foreach($attruser[$key] as $val) {
if($val=="*") if($value=="*")
return $niveau01; return $niveau01;
elseif($val==$attruser[$key]) elseif($val==$value)
return $niveau01; return $niveau01;
} }
} }
else if(array_key_exists($key,$attruser)) { else {
if($value=="*") if($value=="*")
return $niveau01; return $niveau01;
elseif($value==$attruser[$key]) elseif($value==$attruser[$key])

View File

@ -45,6 +45,11 @@ cadoles_core_redirect:
path: /user/redirect/{route}/{id} path: /user/redirect/{route}/{id}
defaults: { _controller: CadolesCoreBundle:Security:redirect } defaults: { _controller: CadolesCoreBundle:Security:redirect }
#== Sonde ================================================================================================================
cadoles_core_sonde:
path: /sonde
defaults: { _controller: CadolesCoreBundle:Sonde:sonde }
#== Crop Image =========================================================================================================== #== Crop Image ===========================================================================================================
cadoles_core_crop01: cadoles_core_crop01:
path: /crop01 path: /crop01
@ -69,10 +74,30 @@ cadoles_core_config_file_subdirectory:
path: /config/file/subdirectory/{id}/{type} path: /config/file/subdirectory/{id}/{type}
defaults: { _controller: CadolesCoreBundle:File:subdirectory, access: config } defaults: { _controller: CadolesCoreBundle:File:subdirectory, access: config }
cadoles_core_config_file_rename:
path: /config/file/rename/{id}/{oldname}
defaults: { _controller: CadolesCoreBundle:File:rename, access: config }
cadoles_core_config_file_trash:
path: /config/file/trash/
defaults: { _controller: CadolesCoreBundle:File:trash, access: config }
cadoles_core_config_file_restaure:
path: /config/file/restaure/
defaults: { _controller: CadolesCoreBundle:File:restaure, access: config }
cadoles_core_config_file_purgetrash:
path: /config/file/purgetrash/{directory}
defaults: { _controller: CadolesCoreBundle:File:purgetrash, access: config }
cadoles_core_config_file_delete: cadoles_core_config_file_delete:
path: /config/file/delete/ path: /config/file/delete/
defaults: { _controller: CadolesCoreBundle:File:delete, access: config } defaults: { _controller: CadolesCoreBundle:File:delete, access: config }
cadoles_core_config_file_move:
path: /config/file/move/
defaults: { _controller: CadolesCoreBundle:File:move, access: config }
cadoles_core_config_file_view: cadoles_core_config_file_view:
path: /config/file/view/{directory}/{filename} path: /config/file/view/{directory}/{filename}
defaults: { _controller: CadolesCoreBundle:File:view, access: config } defaults: { _controller: CadolesCoreBundle:File:view, access: config }
@ -98,10 +123,30 @@ cadoles_core_user_file_subdirectory:
path: /user/file/subdirectory/{id}/{type} path: /user/file/subdirectory/{id}/{type}
defaults: { _controller: CadolesCoreBundle:File:subdirectory, access: user } defaults: { _controller: CadolesCoreBundle:File:subdirectory, access: user }
cadoles_core_user_file_rename:
path: /user/file/rename/{id}/{oldname}
defaults: { _controller: CadolesCoreBundle:File:rename, access: user }
cadoles_core_user_file_trash:
path: /user/file/trash/
defaults: { _controller: CadolesCoreBundle:File:trash, access: user }
cadoles_core_user_file_restaure:
path: /user/file/restaure/
defaults: { _controller: CadolesCoreBundle:File:restaure, access: user }
cadoles_core_user_file_purgetrash:
path: /user/file/purgetrash/{directory}
defaults: { _controller: CadolesCoreBundle:File:purgetrash, access: user }
cadoles_core_user_file_delete: cadoles_core_user_file_delete:
path: /user/file/delete path: /user/file/delete
defaults: { _controller: CadolesCoreBundle:File:delete, access: user } defaults: { _controller: CadolesCoreBundle:File:delete, access: user }
cadoles_core_user_file_move:
path: /user/file/move/
defaults: { _controller: CadolesCoreBundle:File:move, access: user }
cadoles_core_user_file_view: cadoles_core_user_file_view:
path: /user/file/view/{directory}/{filename} path: /user/file/view/{directory}/{filename}
defaults: { _controller: CadolesCoreBundle:File:view, access: user } defaults: { _controller: CadolesCoreBundle:File:view, access: user }
@ -115,6 +160,7 @@ cadoles_core_user_file_show:
defaults: { _controller: CadolesCoreBundle:File:show, access: user } defaults: { _controller: CadolesCoreBundle:File:show, access: user }
#== Ajax ================================================================================================================= #== Ajax =================================================================================================================
cadoles_core_ajax_country_list: cadoles_core_ajax_country_list:
path: /ajax/country/list path: /ajax/country/list
@ -144,6 +190,13 @@ cadoles_core_ajax_group_read:
path: /ajax/group/read path: /ajax/group/read
defaults: { _controller: CadolesCoreBundle:Ajax:groupread } defaults: { _controller: CadolesCoreBundle:Ajax:groupread }
cadoles_core_ajax_item_list:
path: /ajax/item/list
defaults: { _controller: CadolesCoreBundle:Ajax:itemlist }
cadoles_core_ajax_iswhitelist:
path: /ajax/iswhitelist
defaults: { _controller: CadolesCoreBundle:Whitelist:ajaxiswhitelist }
#== Home Config ========================================================================================================== #== Home Config ==========================================================================================================
cadoles_core_config: cadoles_core_config:
@ -178,14 +231,6 @@ cadoles_core_config_header:
path: /config/commun/header path: /config/commun/header
defaults: { _controller: CadolesCoreBundle:Config:header } defaults: { _controller: CadolesCoreBundle:Config:header }
cadoles_core_config_permmodo:
path: /config/commun/permmodo
defaults: { _controller: CadolesCoreBundle:Config:permmodo }
cadoles_core_config_permmodo_update:
path: /config/commun/permmodo/update
defaults: { _controller: CadolesCoreBundle:Config:permmodoupdate }
cadoles_core_config_datauser: cadoles_core_config_datauser:
path: /config/commun/datauser path: /config/commun/datauser
defaults: { _controller: CadolesCoreBundle:Config:datauser } defaults: { _controller: CadolesCoreBundle:Config:datauser }
@ -323,6 +368,35 @@ cadoles_core_user_preference:
defaults: { _controller: CadolesCoreBundle:User:preference } defaults: { _controller: CadolesCoreBundle:User:preference }
#== Permmodoprofil ========================================================================================================
cadoles_core_config_permmodoprofil:
path: /config/permmodoprofil
defaults: { _controller: CadolesCoreBundle:Permmodoprofil:list }
cadoles_core_config_permmodoprofil_submit:
path: /config/permmodoprofil/submit
defaults: { _controller: CadolesCoreBundle:Permmodoprofil:submit }
cadoles_core_config_permmodoprofil_update:
path: /config/permmodoprofil/update/{id}
defaults: { _controller: CadolesCoreBundle:Permmodoprofil:update }
cadoles_core_config_permmodoprofil_delete:
path: /config/permmodoprofil/delete/{id}
defaults: { _controller: CadolesCoreBundle:Permmodoprofil:delete }
cadoles_core_config_permmodoprofil_ajax_list:
path: /config/permmodoprofil/ajax/list
defaults: { _controller: CadolesCoreBundle:Permmodoprofil:ajaxlist }
cadoles_core_config_permmodoprofil_permmodo:
path: /config/permmodoprofil/permmodo/{id}
defaults: { _controller: CadolesCoreBundle:Permmodoprofil:permmodo }
cadoles_core_config_permmodo_update:
path: /config/permmodo/update
defaults: { _controller: CadolesCoreBundle:Permmodoprofil:permmodoupdate }
#== Niveau01 ============================================================================================================= #== Niveau01 =============================================================================================================
cadoles_core_config_niveau01: cadoles_core_config_niveau01:
path: /config/niveau01 path: /config/niveau01
@ -420,14 +494,22 @@ cadoles_core_config_group_ajax_usergroup_del:
path: /config/group/ajax/usergroupdel path: /config/group/ajax/usergroupdel
defaults: { _controller: CadolesCoreBundle:Group:usergroupdel, access: config } defaults: { _controller: CadolesCoreBundle:Group:usergroupdel, access: config }
cadoles_core_config_group_ajax_switchmanager: cadoles_core_config_group_ajax_changerole:
path: /config/group/ajax/switchmanager path: /config/group/ajax/changerole
defaults: { _controller: CadolesCoreBundle:Group:switchmanager, access: config } defaults: { _controller: CadolesCoreBundle:Group:changerole, access: config }
cadoles_core_config_group_export:
path: /config/group/export
defaults: { _controller: CadolesCoreBundle:Group:groupexport }
cadoles_core_config_group_usergroup_export: cadoles_core_config_group_usergroup_export:
path: /config/group/users/export/{id} path: /config/group/users/export/{id}
defaults: { _controller: CadolesCoreBundle:Group:usergroupexport, access: config } defaults: { _controller: CadolesCoreBundle:Group:usergroupexport, access: config }
cadoles_core_config_group_invitation:
path: /config/group/invitation/{id}
defaults: { _controller: CadolesCoreBundle:Group:invitation, access: config }
#-- Access user #-- Access user
cadoles_core_user_group: cadoles_core_user_group:
path: /user/group path: /user/group
@ -477,14 +559,18 @@ cadoles_core_user_group_ajax_usergroup_del:
path: /user/group/ajax/usergroupdel path: /user/group/ajax/usergroupdel
defaults: { _controller: CadolesCoreBundle:Group:usergroupdel, access: user } defaults: { _controller: CadolesCoreBundle:Group:usergroupdel, access: user }
cadoles_core_user_group_ajax_switchmanager: cadoles_core_user_group_ajax_changerole:
path: /user/group/ajax/switchmanager path: /user/group/ajax/changerole
defaults: { _controller: CadolesCoreBundle:Group:switchmanager, access: user } defaults: { _controller: CadolesCoreBundle:Group:changerole, access: user }
cadoles_core_user_group_usergroup_export: cadoles_core_user_group_usergroup_export:
path: /user/group/users/export/{id} path: /user/group/users/export/{id}
defaults: { _controller: CadolesCoreBundle:Group:usergroupexport, access: user } defaults: { _controller: CadolesCoreBundle:Group:usergroupexport, access: user }
cadoles_core_user_group_invitation:
path: /user/group/invitation/{id}
defaults: { _controller: CadolesCoreBundle:Group:invitation, access: user }
#== Whitelist ============================================================================================================ #== Whitelist ============================================================================================================
cadoles_core_config_whitelist: cadoles_core_config_whitelist:
@ -528,3 +614,15 @@ cadoles_core_rest_users:
cadoles_core_rest_groups: cadoles_core_rest_groups:
path: /rest/groups path: /rest/groups
defaults: { _controller: CadolesCoreBundle:Rest:groups } defaults: { _controller: CadolesCoreBundle:Rest:groups }
cadoles_core_rest_bookmark_add:
path: /rest/bookmark/add
defaults: { _controller: CadolesCoreBundle:Rest:bookmarkadd }
cadoles_core_rest_bookmark_del:
path: /rest/bookmark/del
defaults: { _controller: CadolesCoreBundle:Rest:bookmarkdel }
cadoles_core_rest_alert_hide:
path: /rest/alert/hide
defaults: { _controller: CadolesCoreBundle:Rest:alerthide }

View File

@ -26,7 +26,7 @@ services:
cadoles.core.session.listener: cadoles.core.session.listener:
public: true public: true
class: Cadoles\CoreBundle\EventListener\sessionListener class: Cadoles\CoreBundle\EventListener\sessionListener
arguments: ['@service_container','@doctrine.orm.entity_manager',"@security.token_storage"] arguments: ['@service_container','@doctrine.orm.entity_manager',"@security.token_storage","@session"]
tags: tags:
- { name: kernel.event_listener, event: kernel.request, method: onDomainParse } - { name: kernel.event_listener, event: kernel.request, method: onDomainParse }
@ -51,6 +51,7 @@ services:
arguments: arguments:
- "@service_container" - "@service_container"
- "@doctrine.orm.entity_manager" - "@doctrine.orm.entity_manager"
- %ldap_username%
tags: tags:
- { name: doctrine.event_subscriber } - { name: doctrine.event_subscriber }
calls: calls:
@ -106,6 +107,10 @@ services:
arguments: arguments:
- %ldap_host% - %ldap_host%
- %ldap_port% - %ldap_port%
- %ldap_tls%
- %ldap_type%
- %ldap_addomainehome%
- %ldap_addomaineprofil%
calls: calls:
- [setUser, ["%ldap_user%"]] - [setUser, ["%ldap_user%"]]
- [setPassword, ["%ldap_password%"]] - [setPassword, ["%ldap_password%"]]
@ -158,6 +163,16 @@ services:
public: true public: true
class: Cadoles\CoreBundle\Service\samlAttributeMapperService class: Cadoles\CoreBundle\Service\samlAttributeMapperService
cadoles.form.icon_choice_type:
class: Cadoles\CoreBundle\Form\Type\IconChoiceType
arguments:
# Liste des icones FontAwesome au format JSON
# Récupéré depuis le dépôt officiel via la commande "make fetch-fontawesome-icons"
# Voir Makefile du MSE
- "%kernel.root_dir%/../web/fonts/fontawesome/fontawesome-icons.json"
tags:
- { name: form.type }

View File

@ -1,10 +1,7 @@
@font-face { @font-face {
font-family: 'Redressed'; font-family: 'ABeeZee-Regular';
src: url('../fonts/typo/Redressed-webfont.eot'); src: url('../fonts/typo/ABeeZee-Regular.ttf') format('truetype');
src: url('../fonts/typo/Redressed-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/typo/Redressed-webfont.woff') format('woff'),
url('../fonts/typo/Redressed-webfont.ttf') format('truetype'),
url('../fonts/typo/Redressed-webfont.svg#redressedregular') format('svg');
font-weight: normal; font-weight: normal;
font-style: normal; font-style: normal;
} }
@ -20,53 +17,6 @@
font-style: normal; font-style: normal;
} }
@font-face {
font-family: 'Peacesans';
src: url('../fonts/typo/Peacesans-webfont.eot');
src: url('../fonts/typo/Peacesans-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/typo/Peacesans-webfont.woff') format('woff'),
url('../fonts/typo/Peacesans-webfont.ttf') format('truetype'),
url('../fonts/typo/Peacesans-webfont.svg#peacesans') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Roboto-Regular';
src: url('../fonts/typo/Roboto-Regular-webfont.eot');
src: url('../fonts/typo/Roboto-Regular-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/typo/Roboto-Regular-webfont.woff') format('woff'),
url('../fonts/typo/Roboto-Regular-webfont.ttf') format('truetype'),
url('../fonts/typo/Roboto-Regular-webfont.svg#peacesansregular') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Justanotherhand-Regular';
src: url('../fonts/typo/Justanotherhand-Regular-webfont.eot');
src: url('../fonts/typo/Justanotherhand-Regular-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/typo/Justanotherhand-Regular-webfont.woff') format('woff'),
url('../fonts/typo/Justanotherhand-Regular-webfont.ttf') format('truetype'),
url('../fonts/typo/Justanotherhand-Regular-webfont.svg#justanotherhandregular') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Lato-Regular';
src: url('../fonts/typo/Lato-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'ABeeZee-Regular';
src: url('../fonts/typo/ABeeZee-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face { @font-face {
font-family: 'AlfaSlabOne-Regular'; font-family: 'AlfaSlabOne-Regular';
src: url('../fonts/typo/AlfaSlabOne-Regular.ttf') format('truetype'); src: url('../fonts/typo/AlfaSlabOne-Regular.ttf') format('truetype');
@ -81,48 +31,6 @@
font-style: normal; font-style: normal;
} }
@font-face {
font-family: 'FredokaOne-Regular';
src: url('../fonts/typo/FredokaOne-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Overpass-Black';
src: url('../fonts/typo/Overpass-Black.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Righteous-Regular';
src: url('../fonts/typo/Righteous-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Signika-Regular';
src: url('../fonts/typo/Signika-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Teko-Bold';
src: url('../fonts/typo/Teko-Bold.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'LuckiestGuy-Regular';
src: url('../fonts/typo/LuckiestGuy-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face { @font-face {
font-family: 'Baloo-Regular'; font-family: 'Baloo-Regular';
src: url('../fonts/typo/Baloo-Regular.ttf') format('truetype'); src: url('../fonts/typo/Baloo-Regular.ttf') format('truetype');
@ -151,6 +59,52 @@
font-style: normal; font-style: normal;
} }
@font-face {
font-family: 'FredokaOne-Regular';
src: url('../fonts/typo/FredokaOne-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Gothic-Regular';
src: url('../fonts/typo/Gothic-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Gothic-Bold';
src: url('../fonts/typo/Gothic-Bold.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Grandstander';
src: url('../fonts/typo/Grandstander-Black.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Justanotherhand-Regular';
src: url('../fonts/typo/Justanotherhand-Regular-webfont.eot');
src: url('../fonts/typo/Justanotherhand-Regular-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/typo/Justanotherhand-Regular-webfont.woff') format('woff'),
url('../fonts/typo/Justanotherhand-Regular-webfont.ttf') format('truetype'),
url('../fonts/typo/Justanotherhand-Regular-webfont.svg#justanotherhandregular') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Lato-Regular';
src: url('../fonts/typo/Lato-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face { @font-face {
font-family: 'LexendDeca-Regular'; font-family: 'LexendDeca-Regular';
src: url('../fonts/typo/LexendDeca-Regular.ttf') format('truetype'); src: url('../fonts/typo/LexendDeca-Regular.ttf') format('truetype');
@ -158,6 +112,85 @@
font-style: normal; font-style: normal;
} }
@font-face {
font-family: 'Marianne-Bold';
src: url('../fonts/typo/Marianne-Bold.otf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Marianne-Regular';
src: url('../fonts/typo/Marianne-Regular.otf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Justanotherhand-Regular';
src: url('../fonts/typo/Justanotherhand-Regular-webfont.eot');
src: url('../fonts/typo/Justanotherhand-Regular-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/typo/Justanotherhand-Regular-webfont.woff') format('woff'),
url('../fonts/typo/Justanotherhand-Regular-webfont.ttf') format('truetype'),
url('../fonts/typo/Justanotherhand-Regular-webfont.svg#justanotherhandregular') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Overpass-Black';
src: url('../fonts/typo/Overpass-Black.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'PassionOne';
src: url('../fonts/typo/PassionOne-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Peacesans';
src: url('../fonts/typo/Peacesans-webfont.eot');
src: url('../fonts/typo/Peacesans-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/typo/Peacesans-webfont.woff') format('woff'),
url('../fonts/typo/Peacesans-webfont.ttf') format('truetype'),
url('../fonts/typo/Peacesans-webfont.svg#peacesans') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Redressed';
src: url('../fonts/typo/Redressed-webfont.eot');
src: url('../fonts/typo/Redressed-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/typo/Redressed-webfont.woff') format('woff'),
url('../fonts/typo/Redressed-webfont.ttf') format('truetype'),
url('../fonts/typo/Redressed-webfont.svg#redressedregular') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Righteous-Regular';
src: url('../fonts/typo/Righteous-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Roboto-Regular';
src: url('../fonts/typo/Roboto-Regular-webfont.eot');
src: url('../fonts/typo/Roboto-Regular-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/typo/Roboto-Regular-webfont.woff') format('woff'),
url('../fonts/typo/Roboto-Regular-webfont.ttf') format('truetype'),
url('../fonts/typo/Roboto-Regular-webfont.svg#peacesansregular') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face { @font-face {
font-family: 'RubikMonoOne-Regular'; font-family: 'RubikMonoOne-Regular';
src: url('../fonts/typo/RubikMonoOne-Regular.ttf') format('truetype'); src: url('../fonts/typo/RubikMonoOne-Regular.ttf') format('truetype');
@ -172,23 +205,23 @@
font-style: normal; font-style: normal;
} }
@font-face {
font-family: 'Signika-Regular';
src: url('../fonts/typo/Signika-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Teko-Bold';
src: url('../fonts/typo/Teko-Bold.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face { @font-face {
font-family: 'Viga-Regular'; font-family: 'Viga-Regular';
src: url('../fonts/typo/Viga-Regular.ttf') format('truetype'); src: url('../fonts/typo/Viga-Regular.ttf') format('truetype');
font-weight: normal; font-weight: normal;
font-style: normal; font-style: normal;
} }
@font-face {
font-family: 'Grandstander';
src: url('../fonts/typo/Grandstander-Black.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'PassionOne';
src: url('../fonts/typo/PassionOne-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}

View File

@ -0,0 +1,12 @@
/* jQuery UI Datepicker moving pixels fix */
table.ui-datepicker-calendar {border-collapse: separate;}
.ui-datepicker-calendar td {border: 1px solid transparent;}
/* jQuery UI Datepicker hide datepicker helper */
#ui-datepicker-div {display:none;}
/* jQuery UI Datepicker emphasis on selected dates */
.ui-datepicker .ui-datepicker-calendar .ui-state-highlight a {
background: #743620 none;
color: white;
}

View File

@ -60,8 +60,21 @@ body {
height: 20px; height: 20px;
} }
@media (max-width: 991px) {
.header .title{
font-size: 30px;
}
.header small {
font-size:14px;
top: 25px;
}
}
@media (max-width: 767px) { @media (max-width: 767px) {
.header { display: none } .header { display: none }
#menu-header { display: none }
#navbarsmalltitle { display: none }
} }
@ -108,6 +121,25 @@ body {
margin-left: 10px; margin-left: 10px;
} }
#navbar-nameuser {
position: absolute;
top: 50px;
right: 30px;
}
.navbar-top-links #navbar-nameuser {
position: relative;
top: -8px;
right: inherit;
}
@media (max-width: 991px) {
.navbar-top-links #navbar-nameuser {
display: none;
}
}
@media (max-width: 767px) { @media (max-width: 767px) {
.navbar-default .navbar-header #title { .navbar-default .navbar-header #title {
display: none; display: none;
@ -127,11 +159,6 @@ body {
border-bottom: 5px solid #FFF; border-bottom: 5px solid #FFF;
} }
.dropdown-menu {
max-height: 450px;
overflow-y: auto;
}
.dropdown-submenu { .dropdown-submenu {
position: relative; position: relative;
} }
@ -180,6 +207,11 @@ body {
border-radius: 6px 0 6px 6px; border-radius: 6px 0 6px 6px;
} }
.list-group-item.active, .list-group-item.active:focus, .list-group-item.active:hover {
background-color: #cdcdcd;
border-color: #cdcdcd;
}
/*== SIDEBAR ============================================================================================================================================*/ /*== SIDEBAR ============================================================================================================================================*/
@media (max-width: 767px) { @media (max-width: 767px) {
@ -335,12 +367,12 @@ span.item-drag {
.grid-item .item-link img { .grid-item .item-link img {
display: block; display: block;
max-width: 100%; margin: 10px;
//max-height: 110px; height: 105px;
height: auto;
} }
.grid-item .grid-item-title { .grid-item .grid-item-title {
display: inline-block; display: inline-block;
vertical-align: top; vertical-align: top;
@ -379,6 +411,15 @@ a.item-update {
z-index: 1000; z-index: 1000;
} }
a.item-restaure {
display: none;
position: absolute;
right: 25px;
top: 2px;
z-index: 1000;
}
a.item-delete { a.item-delete {
display: none; display: none;
position: absolute; position: absolute;
@ -671,6 +712,13 @@ a.item-heart {
margin-top:30px; margin-top:30px;
} }
.widget-mini {
display: inline-block;
height:50px;
width:50px;
margin-top:0px;
}
.widgetmenu { .widgetmenu {
right: 20px; right: 20px;
position: absolute; position: absolute;
@ -717,6 +765,11 @@ a.item-heart {
max-width: 100%; max-width: 100%;
} }
.widget-ckeditor img {
height:auto !important;
}
.frameitem { .frameitem {
position: absolute; position: absolute;
right: 0px; right: 0px;

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,498 @@
/*
* MultiDatesPicker v1.6.4
* http://multidatespickr.sourceforge.net/
*
* Copyright 2014, Luca Lauretta
* Dual licensed under the MIT or GPL version 2 licenses.
*/
(function( $ ){
$.extend($.ui, { multiDatesPicker: { version: "1.6.4" } });
$.fn.multiDatesPicker = function(method) {
var mdp_arguments = arguments;
var ret = this;
var today_date = new Date();
var day_zero = new Date(0);
var mdp_events = {};
function removeDate(date, type) {
if(!type) type = 'picked';
date = dateConvert.call(this, date);
for(var i = 0; i < this.multiDatesPicker.dates[type].length; i++)
if(!methods.compareDates(this.multiDatesPicker.dates[type][i], date))
return this.multiDatesPicker.dates[type].splice(i, 1).pop();
}
function removeIndex(index, type) {
if(!type) type = 'picked';
return this.multiDatesPicker.dates[type].splice(index, 1).pop();
}
function addDate(date, type, no_sort) {
if(!type) type = 'picked';
date = dateConvert.call(this, date);
// @todo: use jQuery UI datepicker method instead
date.setHours(0);
date.setMinutes(0);
date.setSeconds(0);
date.setMilliseconds(0);
if (methods.gotDate.call(this, date, type) === false) {
this.multiDatesPicker.dates[type].push(date);
if(!no_sort) this.multiDatesPicker.dates[type].sort(methods.compareDates);
}
}
function sortDates(type) {
if(!type) type = 'picked';
this.multiDatesPicker.dates[type].sort(methods.compareDates);
}
function dateConvert(date, desired_type, date_format) {
if(!desired_type) desired_type = 'object';/*
if(!date_format && (typeof date == 'string')) {
date_format = $(this).datepicker('option', 'dateFormat');
if(!date_format) date_format = $.datepicker._defaults.dateFormat;
}
*/
return methods.dateConvert.call(this, date, desired_type, date_format);
}
var methods = {
init : function( options ) {
var $this = $(this);
this.multiDatesPicker.changed = false;
var mdp_events = {
beforeShow: function(input, inst) {
this.multiDatesPicker.changed = false;
if(this.multiDatesPicker.originalBeforeShow)
this.multiDatesPicker.originalBeforeShow.call(this, input, inst);
},
onSelect : function(dateText, inst) {
var $this = $(this);
this.multiDatesPicker.changed = true;
if (dateText) {
$this.multiDatesPicker('toggleDate', dateText);
this.multiDatesPicker.changed = true;
// @todo: this will be optimized when I'll move methods to the singleton.
}
if (this.multiDatesPicker.mode == 'normal' && this.multiDatesPicker.pickableRange) {
if(this.multiDatesPicker.dates.picked.length > 0) {
var min_date = this.multiDatesPicker.dates.picked[0],
max_date = new Date(min_date.getTime());
methods.sumDays(max_date, this.multiDatesPicker.pickableRange-1);
// counts the number of disabled dates in the range
if(this.multiDatesPicker.adjustRangeToDisabled) {
var c_disabled,
disabled = this.multiDatesPicker.dates.disabled.slice(0);
do {
c_disabled = 0;
for(var i = 0; i < disabled.length; i++) {
if(disabled[i].getTime() <= max_date.getTime()) {
if((min_date.getTime() <= disabled[i].getTime()) && (disabled[i].getTime() <= max_date.getTime()) ) {
c_disabled++;
}
disabled.splice(i, 1);
i--;
}
}
max_date.setDate(max_date.getDate() + c_disabled);
} while(c_disabled != 0);
}
if(this.multiDatesPicker.maxDate && (max_date > this.multiDatesPicker.maxDate))
max_date = this.multiDatesPicker.maxDate;
$this
.datepicker("option", "minDate", min_date)
.datepicker("option", "maxDate", max_date);
} else {
$this
.datepicker("option", "minDate", this.multiDatesPicker.minDate)
.datepicker("option", "maxDate", this.multiDatesPicker.maxDate);
}
}
if(this.multiDatesPicker.originalOnSelect && dateText)
this.multiDatesPicker.originalOnSelect.call(this, dateText, inst);
},
beforeShowDay : function(date) {
var $this = $(this),
gotThisDate = $this.multiDatesPicker('gotDate', date) !== false,
isDisabledCalendar = $this.datepicker('option', 'disabled'),
isDisabledDate = $this.multiDatesPicker('gotDate', date, 'disabled') !== false,
areAllSelected = this.multiDatesPicker.maxPicks <= this.multiDatesPicker.dates.picked.length;
var bsdReturn = [true, '', null];
if(this.multiDatesPicker.originalBeforeShowDay)
bsdReturn = this.multiDatesPicker.originalBeforeShowDay.call(this, date);
bsdReturn[1] = gotThisDate ? 'ui-state-highlight '+bsdReturn[1] : bsdReturn[1];
bsdReturn[0] = bsdReturn[0] && !(isDisabledCalendar || isDisabledDate || (areAllSelected && !bsdReturn[1]));
return bsdReturn;
}
};
// value have to be extracted before datepicker is initiated
if($this.val()) var inputDates = $this.val()
if(options) {
// value have to be extracted before datepicker is initiated
//if(options.altField) var inputDates = $(options.altField).val();
if(options.separator) this.multiDatesPicker.separator = options.separator;
if(!this.multiDatesPicker.separator) this.multiDatesPicker.separator = ', ';
this.multiDatesPicker.originalBeforeShow = options.beforeShow;
this.multiDatesPicker.originalOnSelect = options.onSelect;
this.multiDatesPicker.originalBeforeShowDay = options.beforeShowDay;
this.multiDatesPicker.originalOnClose = options.onClose;
// datepicker init
$this.datepicker(options);
this.multiDatesPicker.minDate = $.datepicker._determineDate(this, options.minDate, null);
this.multiDatesPicker.maxDate = $.datepicker._determineDate(this, options.maxDate, null);
if(options.addDates) methods.addDates.call(this, options.addDates);
if(options.addDisabledDates)
methods.addDates.call(this, options.addDisabledDates, 'disabled');
methods.setMode.call(this, options);
} else {
$this.datepicker();
}
$this.datepicker('option', mdp_events);
// adds any dates found in the input or alt field
if(inputDates) $this.multiDatesPicker('value', inputDates);
// generates the new string of added dates
var inputs_values = $this.multiDatesPicker('value');
// fills the input field back with all the dates in the calendar
$this.val(inputs_values);
// Fixes the altField filled with defaultDate by default
var altFieldOption = $this.datepicker('option', 'altField');
if (altFieldOption) $(altFieldOption).val(inputs_values);
// Updates the calendar view
$this.datepicker('refresh');
},
compareDates : function(date1, date2) {
date1 = dateConvert.call(this, date1);
date2 = dateConvert.call(this, date2);
// return > 0 means date1 is later than date2
// return == 0 means date1 is the same day as date2
// return < 0 means date1 is earlier than date2
var diff = date1.getFullYear() - date2.getFullYear();
if(!diff) {
diff = date1.getMonth() - date2.getMonth();
if(!diff)
diff = date1.getDate() - date2.getDate();
}
return diff;
},
sumDays : function( date, n_days ) {
var origDateType = typeof date;
obj_date = dateConvert.call(this, date);
obj_date.setDate(obj_date.getDate() + n_days);
return dateConvert.call(this, obj_date, origDateType);
},
dateConvert : function( date, desired_format, dateFormat ) {
var from_format = typeof date;
var $this = $(this);
if(from_format == desired_format) {
if(from_format == 'object') {
try {
date.getTime();
} catch (e) {
$.error('Received date is in a non supported format!');
return false;
}
}
return date;
}
if(typeof date == 'undefined') date = new Date(0);
if(desired_format != 'string' && desired_format != 'object' && desired_format != 'number')
$.error('Date format "'+ desired_format +'" not supported!');
if(!dateFormat) {
// thanks to bibendus83 -> http://sourceforge.net/tracker/index.php?func=detail&aid=3213174&group_id=358205&atid=1495382
var dp_dateFormat = $this.datepicker('option', 'dateFormat');
if (dp_dateFormat) {
dateFormat = dp_dateFormat;
} else {
dateFormat = $.datepicker._defaults.dateFormat;
}
}
// converts to object as a neutral format
switch(from_format) {
case 'object': break;
case 'string': date = $.datepicker.parseDate(dateFormat, date); break;
case 'number': date = new Date(date); break;
default: $.error('Conversion from "'+ desired_format +'" format not allowed on jQuery.multiDatesPicker');
}
// then converts to the desired format
switch(desired_format) {
case 'object': return date;
case 'string': return $.datepicker.formatDate(dateFormat, date);
case 'number': return date.getTime();
default: $.error('Conversion to "'+ desired_format +'" format not allowed on jQuery.multiDatesPicker');
}
return false;
},
gotDate : function( date, type ) {
if(!type) type = 'picked';
for(var i = 0; i < this.multiDatesPicker.dates[type].length; i++) {
if(methods.compareDates.call(this, this.multiDatesPicker.dates[type][i], date) === 0) {
return i;
}
}
return false;
},
value : function( value ) {
if(value && typeof value == 'string') {
methods.addDates.call(this, value.split(this.multiDatesPicker.separator));
} else {
var dates = methods.getDates.call(this, 'string');
return dates.length
? dates.join(this.multiDatesPicker.separator)
: "";
}
},
getDates : function( format, type ) {
if(!format) format = 'string';
if(!type) type = 'picked';
switch (format) {
case 'object':
return this.multiDatesPicker.dates[type];
case 'string':
case 'number':
var o_dates = new Array();
for(var i in this.multiDatesPicker.dates[type])
o_dates.push(
dateConvert.call(
this,
this.multiDatesPicker.dates[type][i],
format
)
);
return o_dates;
default: $.error('Format "'+format+'" not supported!');
}
},
addDates : function( dates, type ) {
if(dates.length > 0) {
if(!type) type = 'picked';
switch(typeof dates) {
case 'object':
case 'array':
if(dates.length) {
for(var i = 0; i < dates.length; i++)
addDate.call(this, dates[i], type, true);
sortDates.call(this, type);
break;
} // else does the same as 'string'
case 'string':
case 'number':
addDate.call(this, dates, type);
break;
default:
$.error('Date format "'+ typeof dates +'" not allowed on jQuery.multiDatesPicker');
}
//$(this).datepicker('refresh');
} else {
$.error('Empty array of dates received.');
}
},
removeDates : function( dates, type ) {
if(!type) type = 'picked';
var removed = [];
if (Object.prototype.toString.call(dates) === '[object Array]') {
for(var i in dates.sort(function(a,b){return b-a})) {
removed.push(removeDate.call(this, dates[i], type));
}
} else {
removed.push(removeDate.call(this, dates, type));
}
return removed;
},
removeIndexes : function( indexes, type ) {
if(!type) type = 'picked';
var removed = [];
if (Object.prototype.toString.call(indexes) === '[object Array]') {
for(var i in indexes.sort(function(a,b){return b-a})) {
removed.push(removeIndex.call(this, indexes[i], type));
}
} else {
removed.push(removeIndex.call(this, indexes, type));
}
return removed;
},
resetDates : function ( type ) {
if(!type) type = 'picked';
this.multiDatesPicker.dates[type] = [];
},
toggleDate : function( date, type ) {
if(!type) type = 'picked';
switch(this.multiDatesPicker.mode) {
case 'daysRange':
this.multiDatesPicker.dates[type] = []; // deletes all picked/disabled dates
var end = this.multiDatesPicker.autoselectRange[1];
var begin = this.multiDatesPicker.autoselectRange[0];
if(end < begin) { // switch
end = this.multiDatesPicker.autoselectRange[0];
begin = this.multiDatesPicker.autoselectRange[1];
}
for(var i = begin; i < end; i++)
methods.addDates.call(this, methods.sumDays.call(this,date, i), type);
break;
default:
if(methods.gotDate.call(this, date) === false) // adds dates
methods.addDates.call(this, date, type);
else // removes dates
methods.removeDates.call(this, date, type);
break;
}
},
setMode : function( options ) {
var $this = $(this);
if(options.mode) this.multiDatesPicker.mode = options.mode;
switch(this.multiDatesPicker.mode) {
case 'normal':
for(option in options)
switch(option) {
case 'maxPicks':
case 'minPicks':
case 'pickableRange':
case 'adjustRangeToDisabled':
this.multiDatesPicker[option] = options[option];
break;
//default: $.error('Option ' + option + ' ignored for mode "'.options.mode.'".');
}
break;
case 'daysRange':
case 'weeksRange':
var mandatory = 1;
for(option in options)
switch(option) {
case 'autoselectRange':
mandatory--;
case 'pickableRange':
case 'adjustRangeToDisabled':
this.multiDatesPicker[option] = options[option];
break;
//default: $.error('Option ' + option + ' does not exist for setMode on jQuery.multiDatesPicker');
}
if(mandatory > 0) $.error('Some mandatory options not specified!');
break;
}
/*
if(options.pickableRange) {
$this.datepicker("option", "maxDate", options.pickableRange);
$this.datepicker("option", "minDate", this.multiDatesPicker.minDate);
}
*/
if(mdp_events.onSelect)
mdp_events.onSelect();
},
destroy: function(){
this.multiDatesPicker = null;
$(this).datepicker('destroy');
}
};
this.each(function() {
var $this = $(this);
if (!this.multiDatesPicker) {
this.multiDatesPicker = {
dates: {
picked: [],
disabled: []
},
mode: 'normal',
adjustRangeToDisabled: true
};
}
if(methods[method]) {
var exec_result = methods[method].apply(this, Array.prototype.slice.call(mdp_arguments, 1));
switch(method) {
case 'removeDates':
case 'removeIndexes':
case 'resetDates':
case 'toggleDate':
case 'addDates':
var altField = $this.datepicker('option', 'altField');
// @todo: should use altFormat for altField
var dates_string = methods.value.call(this);
if (altField !== undefined && altField != "") {
$(altField).val(dates_string);
}
$this.val(dates_string);
$.datepicker._refreshDatepicker(this);
}
switch(method) {
case 'removeDates':
case 'getDates':
case 'gotDate':
case 'sumDays':
case 'compareDates':
case 'dateConvert':
case 'value':
ret = exec_result;
}
return exec_result;
} else if( typeof method === 'object' || ! method ) {
return methods.init.apply(this, mdp_arguments);
} else {
$.error('Method ' + method + ' does not exist on jQuery.multiDatesPicker');
}
return false;
});
return ret;
};
var PROP_NAME = 'multiDatesPicker';
var dpuuid = new Date().getTime();
var instActive;
$.multiDatesPicker = {version: false};
//$.multiDatesPicker = new MultiDatesPicker(); // singleton instance
$.multiDatesPicker.initialized = false;
$.multiDatesPicker.uuid = new Date().getTime();
$.multiDatesPicker.version = $.ui.multiDatesPicker.version;
// allows MDP not to hide everytime a date is picked
$.multiDatesPicker._hideDatepicker = $.datepicker._hideDatepicker;
$.datepicker._hideDatepicker = function(){
var target = this._curInst.input[0];
var mdp = target.multiDatesPicker;
if(!mdp || (this._curInst.inline === false && !mdp.changed)) {
return $.multiDatesPicker._hideDatepicker.apply(this, arguments);
} else {
mdp.changed = false;
$.datepicker._refreshDatepicker(target);
return;
}
};
// Workaround for #4055
// Add another global to avoid noConflict issues with inline event handlers
window['DP_jQuery_' + dpuuid] = $;
})( jQuery );

View File

@ -1,6 +1,5 @@
{% set logo = "icart.png" %} {% set logo = "icart.png" %}
{% set fgheader = "true" %}
{% set header = "header.jpg" %} {% set header = "header.jpg" %}
{% set heightheader = "" %} {% set heightheader = "" %}
@ -15,7 +14,6 @@
render(url("cadoles_core_theme_setconfig", render(url("cadoles_core_theme_setconfig",
{ {
'logo':logo, 'logo':logo,
'fgheader':fgheader,
'header': header, 'header': header,
'heightheader': heightheader, 'heightheader': heightheader,
'colormain': colormain, 'colormain': colormain,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -1,6 +1,5 @@
{% set logo = "" %} {% set logo = "" %}
{% set fgheader = "" %}
{% set header = "" %} {% set header = "" %}
{% set heightheader = "" %} {% set heightheader = "" %}
@ -15,7 +14,6 @@
render(url("cadoles_core_theme_setconfig", render(url("cadoles_core_theme_setconfig",
{ {
'logo':logo, 'logo':logo,
'fgheader':fgheader,
'header': header, 'header': header,
'heightheader': heightheader, 'heightheader': heightheader,
'colormain': colormain, 'colormain': colormain,

View File

@ -1,5 +1,4 @@
{% macro logo() %}{{ app.session.get('logo') }}{% endmacro %} {% macro logo() %}{{ app.session.get('logo') }}{% endmacro %}
{% macro fgheader() %}{{ app.session.get('fgheader') }}{% endmacro %}
{% macro header() %}{{ app.session.get('header') }}{% endmacro %} {% macro header() %}{{ app.session.get('header') }}{% endmacro %}
{% macro heightheader() %}{{ app.session.get('heightheader') }}{% endmacro %} {% macro heightheader() %}{{ app.session.get('heightheader') }}{% endmacro %}
{% macro colorR() %}{{ app.session.get('color')['mainrgb']['r'] }}{% endmacro %} {% macro colorR() %}{{ app.session.get('color')['mainrgb']['r'] }}{% endmacro %}

View File

@ -1,6 +1,5 @@
{% set logo = "" %} {% set logo = "" %}
{% set fgheader = "" %}
{% set header = "" %} {% set header = "" %}
{% set heightheader = "" %} {% set heightheader = "" %}
@ -15,7 +14,6 @@
render(url("cadoles_core_theme_setconfig", render(url("cadoles_core_theme_setconfig",
{ {
'logo':logo, 'logo':logo,
'fgheader':fgheader,
'header': header, 'header': header,
'heightheader': heightheader, 'heightheader': heightheader,
'colormain': colormain, 'colormain': colormain,

View File

@ -1,6 +1,5 @@
{% set logo = "" %} {% set logo = "" %}
{% set fgheader = "" %}
{% set header = "" %} {% set header = "" %}
{% set heightheader = "" %} {% set heightheader = "" %}
@ -15,7 +14,6 @@
render(url("cadoles_core_theme_setconfig", render(url("cadoles_core_theme_setconfig",
{ {
'logo':logo, 'logo':logo,
'fgheader':fgheader,
'header': header, 'header': header,
'heightheader': heightheader, 'heightheader': heightheader,
'colormain': colormain, 'colormain': colormain,

View File

@ -0,0 +1,26 @@
{% set logo = "logo.png" %}
{% set header = "" %}
{% set heightheader = "150" %}
{% set colormain = "2c3e50" %}
{% set fontcolorhover = "ffffff" %}
{% set colorbody = "ffffff" %}
{% set fontfacetitle = "Marianne-Regular" %}
{% set fontfacebody = "Gothic-Regular" %}
{{
render(url("cadoles_core_theme_setconfig",
{
'logo':logo,
'header': header,
'heightheader': heightheader,
'colormain': colormain,
'fontcolorhover': fontcolorhover,
'colorbody': colorbody,
'fontfacetitle': fontfacetitle,
'fontfacebody': fontfacebody
}
))
}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -0,0 +1,3 @@
name: Métice
author: Pierre Cadéot
version: 1.0

View File

@ -0,0 +1,71 @@
$(function() {
var _reduit_timeout=null
var _resize_timeout=null
var METICE= {
logoutSelector : ".navbar-top-links li:last-child a",
logoutSessionName : "_metice_logout"
}
window.addEventListener("message", function(msg){
var header = window.top.document.getElementsByClassName("header")
// logout url envoyé par message, pour changer le lien de logout
if (msg.data.message=="setLogoutUrl" && header && header.length!=0) {
// récupère la valeur de l'attribut href du lien de login/logout
var elt=header[0].querySelector(METICE.logoutSelector);
var logoutUrl=elt.getAttribute("href")
// Ce n'est pas du logout => on ne fait rien
if (logoutUrl.indexOf("logout")==-1) {
return;
}
// url de logout déja renseignée, on va l'utiliser
var logoutSession = sessionStorage.getItem(METICE.logoutSessionName)
if (logoutSession) {
if (header && header.length!=0) { header[0].querySelector(METICE.logoutSelector).setAttribute("href",logoutSession) }
return;
}
var elt=header[0].querySelector(METICE.logoutSelector);
logoutUrl = window.location.origin+logoutUrl
elt.setAttribute("href",msg.data.url+"?orign="+logoutUrl)
// Sauvegarde de l'url de logout, pour restauration lors de l'actualisation page
sessionStorage.setItem(METICE.logoutSessionName,msg.data.url+"?orign="+logoutUrl)
return;
}
// message on scroll, pour réduire le header
if (msg.data.message=="onScroll" && header && header.length!=0){
if (msg.data.position > 100 ) {
if(_reduit_timeout) {clearTimeout(_reduit_timeout);_reduit_timeout=null}
header[0].classList.add("reduit");
if (_resize_timeout==null) {
_resize_timeout=setTimeout(function() {console.log("resize");window.top.resizeFrame();_resize_timeout=null},100);
}
}
if (msg.data.position == 0 ) {
header[0].classList.remove("reduit");
_reduit_timeout = setTimeout(function(){ console.log("resize");window.top.resizeFrame();},100)
}
return;
}
});
// Remise en place de l'url de logout si c'est une url de logout qui est présente dans
var header = window.top.document.getElementsByClassName("header")
if (header && header.length!=0) {
var logout = sessionStorage.getItem(METICE.logoutSessionName)
var elt = header[0].querySelector(METICE.logoutSelector);
var logoutUrl = elt.getAttribute("href")
if (logout && logoutUrl.indexOf("logout")!=-1) {
header[0].querySelector(METICE.logoutSelector).setAttribute("href",logout)
}
}
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 KiB

View File

@ -0,0 +1,353 @@
/* feuille de style Ninegate
* METICE 2020 - Académie de la Réunion
* --
* DSI4
*/
/* Teintes en fonction du profil utilisateur */
/* eleves #VERT #169B62
* dark : #3b8211
* light : #dffdcf
*/
/* ====== ESSAI D'UN MODE REDUIT ======= */
.header.reduit {
height: 50px !important;
overflow-y: hidden;
}
.header.reduit .nav.navbar-top-links.navbar-right > li a {font-size: 1.5em; }
.header .title img {transition:margin-left 0.1s ease; }
.header.reduit #logo {
/* remplacer l'image en définissant une image de background */
/* et en positionnant un padding de la largeur de l'image */
display: block;
-moz-box-sizing: border-box;
box-sizing: border-box;
background: var(--logo) no-repeat;
width: 62px; /* Width of new image */
height: 23px !important; /* Height of new image */
padding-left: 62px; /* Equal to width of new image */
margin-top: 21px;
margin-left: 11px;
margin-right: 10px;
}
.header.reduit small {
top: 25px !important;
font-size: 0.5em;
}
.header.reduit > a.title > span {
line-height: 25px !important;
transition:line-height 0.5s ease;
font-size: 0.9em;
margin-top: 4px;
padding-left: 0px !important;
}
.header.reduit .avatar {height: 25px; }
.header.reduit #navbar-nameuser
{
top: 14px;
right: 210px;
}
/* ===================== FIN MODE REDUIT ==========================*/
/* fix defaut d'affichage sur toogle switch */
body, .slick .slicksubtitle, .slick .slicklink { height: 30px;}
body {
background: linear-gradient(180deg, var(--main), white,50%);
}
#navbar-nameuser a {
color: var(--main, #004d9a) !important;
}
body.eleves, body.grp-National_1, body.grp-eleves {
--colorbody: #ffffff;
--main: #169b62;
--mainR: 22;
--mainG: 155;
--mainB: 98;
--dark: #006930;
--darkR: 0;
--darkG: 105;
--darkB: 48;
--light: #48cd94;
--lightR: 72;
--lightG: 205;
--lightB: 148;
--heightheader: 150;
}
/* responsables #MAUVE #7D4E5B
*/
body.responsables, body.grp-National_2,body.grp-responsables {
--colorbody: #ffffff;
--main: #7d4e5b;
--mainR: 125;
--mainG: 78;
--mainB: 91;
--dark: #4b1c29;
--darkR: 75;
--darkG: 28;
--darkB: 41;
--light: #af7f8d;
--lightR: 175;
--lightG: 128;
--lightB: 141;
--heightheader: 150;
}
/* professeurs, enseignants1d #BLEU1 #5770BE */
body.professeurs, body.enseignants1d, body.grp-National_3, body.grp-professeurs {
--colorbody: #ffffff;
--main: #5770be;
--mainR: 87;
--mainG: 112;
--mainB: 190;
--dark: #253e8c;
--darkR: 37;
--darkG: 62;
--darkB: 140;
--light: #89a2f0;
--lightR: 137;
--lightG: 162;
--lightB: 240;
--heightheader: 150;
}
/* administratifs, admin #ORANGE #FF6F4C */
body.administratifs, body.admin, body.grp-National_4 , body.grp-National_5, body.grp-National_6 , body.grp-administratifs, {
--colorbody: #ffffff;
--main: #ff6f4c;
--mainR: 255;
--mainG: 111;
--mainB: 76;
--dark: #cd3d1a;
--darkR: 205;
--darkG: 61;
--darkB: 26;
--light: #ffa17e;
--lightR: 255;
--lightG: 161;
--lightB: 126;
--heightheader: 150;
}
/* PersAcad #BLEU2 #484d7a */
body.PersAcad, body.grp-National_7, body.grp-PersAcad {
--colorbody: #ffffff;
--main: #484d7a;
--mainR: 72;
--mainG: 77;
--mainB: 122;
--dark: #161b48;
--darkR: 22;
--darkG: 27;
--darkB: 72;
--light: #7a7fac;
--lightR: 122;
--lightG: 127;
--lightB: 172;
--heightheader: 150;
}
/* Cartouche header Métice - région académique La Réunion */
div.header {
background: white !important;
/*background-image: linear-gradient(45deg, white 200px, var(--light));
background-position-x: 300px;
background-repeat: no-repeat;*/
}
@media all and (min-width: 768px)
{
#logo {
height: 130px !important;
float: left !important;
top: -10px !important;
left: 0px !important;
position: relative !important;
}
}
@media all and (max-width: 600px)
{
.navbar-brand {
width: 24em;
overflow: hidden;
height: 2.6em;
}
}
@media all and (min-width: 601px) and (max-width: 767px)
{
.navbar-brand {
width: 28em;
height: 2.6em;
}
}
@media all and (max-width: 767px)
{
nav.navbarsmall {
background: white !important;
}
.navbarsmall .navbar-brand {
color: black !important;
font-family: var(--fontfacetitle);
}
#logo {
float: left !important;
top: 0px !important;
left: 0px !important;
position: relative !important;
}
.navbarsmall {
height: 50px !important;
overflow-y: hidden;
}
.navbarsmall .nav.navbar-top-links.navbar-right > li a {font-size: 1.5em; }
.navbarsmall .title img { margin-left:-300px !important;}
.navbarsmall small {
top: 18px !important;
font-size: 0.5em;
}
.nav.navbar-top-links.navbar-left li {
display: block;
}
.navbarsmall a.navbar-brand {
line-height: 27px !important;
transition:line-height 0.5s ease;
font-size: 1.3em;
margin-left: -90px;
margin-top: -3px;
}
#logo {
/* remplacer l'image en définissant une image de background */
/* et en positionnant un padding de la largeur de l'image */
display: block;
-moz-box-sizing: border-box;
box-sizing: border-box;
background: var(--logo) no-repeat;
width: 62px; /* Width of new image */
height: 23px !important; /* Height of new image */
padding-left: 62px; /* Equal to width of new image */
margin-top: -1px;
margin-left: 86px;
margin-right: 14px;
}
.navbarsmall .avatar {height: 25px; }
}
.container-fluid #logo { display: none; }
.header .avatar {height: 32px; }
.header .title {
font-size: 30px !important;
}
div.header > a.title > span {
color: black !important;
line-height: 114px !important;
padding-left: 20px !important;
}
.header small {
/* font-size: 16px !important; */
font-size: initial;
top: 24px !important;
margin-left: 3px !important;
font-family: var(--fontfacebody) !important;
}
/* reprise des couleurs sur les icones d'action */
.nav.navbar-top-links.navbar-right > li a {
color: var(--main, #337ab7) !important;
font-size: 2.0em;
padding-top: 9px;
}
.nav.navbar-top-links.navbar-right > li a:hover {
color: var(--fontcolorhover, white) !important;
background: var(--light, black) !important;
border-radius: 5px;
padding-top: 1px;
}
/*
* mise à jour du thème pour le bandeau escamotable #31431
*/
nav.navbarsmall {
background: white !important;
}
.navbarsmall .navbar-brand {
color: black !important;
font-family: var(--fontfacetitle);
}
.navbarsmall #logo {
float: left !important;
top: 0px !important;
left: 0px !important;
position: relative !important;
}
.navbarsmall {
height: 50px !important;
overflow-y: hidden;
}
.navbarsmall .nav.navbar-top-links.navbar-right > li a {font-size: 1.5em; }
.navbarsmall .title img { margin-left:-300px !important;}
.navbarsmall small {
top: 18px !important;
font-size: 0.5em;
}
.navbarsmall .nav.navbar-top-links.navbar-left li {
display: block;
}
.navbarsmall a.navbar-brand {
line-height: 27px !important;
transition:line-height 0.5s ease;
font-size: 1.3em;
margin-left: -90px;
margin-top: -3px;
}
.navbarsmall #logo {
/* remplacer l'image en définissant une image de background */
/* et en positionnant un padding de la largeur de l'image */
display: block;
-moz-box-sizing: border-box;
box-sizing: border-box;
background: var(--logo) no-repeat;
width: 62px; /* Width of new image */
height: 23px !important; /* Height of new image */
padding-left: 62px; /* Equal to width of new image */
margin-top: -1px;
margin-left: 86px;
margin-right: 14px;
}
.navbarsmall .avatar {height: 25px; }

Some files were not shown because too many files have changed in this diff Show More