From 5d2100f45d7d3d60d365b97d4771589f6f8319aa Mon Sep 17 00:00:00 2001 From: ManifoldFR <wilson.jallet@gmail.com> Date: Fri, 2 Mar 2018 09:35:04 +0100 Subject: [PATCH] New fields for GraphQL user query --- package-lock.json | 376 +++++++++++++++++++++++++++++++++++++++++- package.json | 1 + src/graphql/schema.js | 10 +- src/index.js | 4 - src/ldap/ldap_auth.js | 3 - src/ldap/ldap_data.js | 2 +- src/server.js | 16 +- 7 files changed, 390 insertions(+), 22 deletions(-) diff --git a/package-lock.json b/package-lock.json index df35bb7..9f65303 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,47 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@f/animate": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@f/animate/-/animate-1.0.1.tgz", + "integrity": "sha1-oDE5itrfmgvTpWOYzskx+HfYhIU=", + "requires": { + "@f/elapsed-time": "1.0.0", + "@f/raf": "1.0.3", + "@f/tween": "1.0.1" + } + }, + "@f/elapsed-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@f/elapsed-time/-/elapsed-time-1.0.0.tgz", + "integrity": "sha1-ageaYQSocni/W0CARE7wLRtZVEk=", + "requires": { + "@f/timestamp": "1.0.0" + } + }, + "@f/map-obj": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@f/map-obj/-/map-obj-1.2.2.tgz", + "integrity": "sha1-2an4vXbKoq4RtjPdok2cbMzB5g0=" + }, + "@f/raf": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@f/raf/-/raf-1.0.3.tgz", + "integrity": "sha1-Mt3KN940WyDIw4QwGMxRuPiXkU0=" + }, + "@f/timestamp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@f/timestamp/-/timestamp-1.0.0.tgz", + "integrity": "sha1-MqkWbiUW5cy5sPz9yJIjgZcQ6Iw=" + }, + "@f/tween": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@f/tween/-/tween-1.0.1.tgz", + "integrity": "sha1-GK73nEl15UQVrfMm5LXg0FPSB/A=", + "requires": { + "@f/map-obj": "1.2.2" + } + }, "@types/babel-types": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.1.tgz", @@ -823,6 +864,11 @@ } } }, + "chain-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/chain-function/-/chain-function-1.0.0.tgz", + "integrity": "sha1-DUqzfn4Y6tC9xHuSB2QRjOWHM9w=" + }, "chalk": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", @@ -955,6 +1001,11 @@ } } }, + "classnames": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz", + "integrity": "sha1-+zgB1FNGdknvNgPH1hoCvRKb3m0=" + }, "clean-css": { "version": "3.4.28", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz", @@ -1003,6 +1054,16 @@ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", "dev": true }, + "clipboard": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-1.7.1.tgz", + "integrity": "sha1-Ng1taUbpmnof7zleQrqStem1oWs=", + "requires": { + "good-listener": "1.2.2", + "select": "1.1.2", + "tiny-emitter": "2.0.2" + } + }, "cliui": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", @@ -1062,6 +1123,17 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==" }, + "commonmark": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.28.1.tgz", + "integrity": "sha1-Buq41SM4uDn6Gi11rwCF7tGxvq4=", + "requires": { + "entities": "1.1.1", + "mdurl": "1.0.1", + "minimist": "1.2.0", + "string.prototype.repeat": "0.2.0" + } + }, "component-emitter": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", @@ -1235,6 +1307,15 @@ "sha.js": "2.4.10" } }, + "cross-fetch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.0.0.tgz", + "integrity": "sha512-gnx0GnDyW73iDq6DpqceL8i4GGn55PPKDzNwZkopJ3mKPcfJ0BUIXBsnYfJBVw+jFDB+hzIp2ELNRdqoxN6M3w==", + "requires": { + "node-fetch": "2.0.0", + "whatwg-fetch": "2.0.3" + } + }, "cross-spawn": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", @@ -1352,6 +1433,11 @@ } } }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -1405,6 +1491,11 @@ "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=" }, + "dom-helpers": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.3.1.tgz", + "integrity": "sha512-2Sm+JaYn74OiTM2wHvxJOo3roiq/h25Yi69Fqk269cNUwIXsCvATB6CRSFC9Am/20G2b28hGv/+7NiWydIrPvg==" + }, "domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", @@ -1469,6 +1560,14 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "0.4.19" + } + }, "enhanced-resolve": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", @@ -1480,6 +1579,11 @@ "tapable": "0.2.8" } }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" + }, "errno": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", @@ -1834,6 +1938,11 @@ "strip-eof": "1.0.0" } }, + "exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -2125,6 +2234,27 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fbjs": { + "version": "0.8.16", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", + "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.3.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.17" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + } + } + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -3262,6 +3392,14 @@ } } }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "requires": { + "delegate": "3.2.0" + } + }, "got": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", @@ -3308,6 +3446,14 @@ "source-map-support": "0.5.3" } }, + "graphql-request": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-1.5.1.tgz", + "integrity": "sha512-p1f1q+D+5k1PMxsaZszestYW1BAEKjygliqTAhJI5nueRe74WRmwNQWAdrRBoCFRIpM0SZer98cbJF4PZHXaqg==", + "requires": { + "cross-fetch": "2.0.0" + } + }, "graphql-server-express": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/graphql-server-express/-/graphql-server-express-1.3.2.tgz", @@ -3328,6 +3474,27 @@ "uuid": "3.2.1" } }, + "graphql-voyager": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/graphql-voyager/-/graphql-voyager-1.0.0-rc.15.tgz", + "integrity": "sha512-qKXGrUrWL4/BPUt6XFCSskCcSLwwxiXmNdO+DC6g2I1TRfU/hpMsxQQCZ3ImsrxRSO2FnlIZio58Wzb43Hx0RA==", + "requires": { + "@f/animate": "1.0.1", + "classnames": "2.2.5", + "clipboard": "1.7.1", + "commonmark": "0.28.1", + "graphql-request": "1.5.1", + "lodash": "4.17.5", + "prop-types": "15.6.1", + "react-modal": "2.4.1", + "react-redux": "5.0.7", + "react-toolbox": "2.0.0-beta.12", + "redux": "3.7.2", + "redux-thunk": "2.2.0", + "reselect": "3.0.1", + "svg-pan-zoom": "3.5.3" + } + }, "has": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", @@ -3415,6 +3582,11 @@ "minimalistic-crypto-utils": "1.0.1" } }, + "hoist-non-react-statics": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.0.tgz", + "integrity": "sha512-6Bl6XsDT1ntE0lHbIhr4Kp2PGcleGZ66qu5Jqk8lc0Xc/IeG6gVLmwUGs/K0Us+L8VWoKgj0uWdPMataOsm31w==" + }, "homedir-polyfill": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", @@ -3536,6 +3708,14 @@ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" }, + "invariant": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.3.tgz", + "integrity": "sha512-7Z5PPegwDTyjbaeCnV0efcyS6vdKAU51kpEmS7QFib3P4822l8ICYyMn7qvJnc+WzLoDsuI9gPMKbJ8pCu8XtA==", + "requires": { + "loose-envify": "1.3.1" + } + }, "invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", @@ -3829,6 +4009,26 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "1.7.3", + "whatwg-fetch": "2.0.3" + }, + "dependencies": { + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "0.1.12", + "is-stream": "1.1.0" + } + } + } + }, "iterall": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.2.1.tgz", @@ -3847,8 +4047,7 @@ "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, "js-yaml": { "version": "3.10.0", @@ -4179,11 +4378,24 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" }, + "lodash-es": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.5.tgz", + "integrity": "sha512-Ez3ONp3TK9gX1HYKp6IhetcVybD+2F+Yp6GS9dfH8ue6EOCEzQtQEh4K0FYWBP9qLv+lzeQAYXw+3ySfxyZqkw==" + }, "longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "requires": { + "js-tokens": "3.0.2" + } + }, "lowercase-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", @@ -4271,6 +4483,11 @@ } } }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -4518,6 +4735,11 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, + "node-fetch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.0.0.tgz", + "integrity": "sha1-mCu6Q+zU8pIqKcwYamu7C7c/y6Y=" + }, "node-libs-browser": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", @@ -5241,6 +5463,16 @@ "asap": "2.0.6" } }, + "prop-types": { + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.1.tgz", + "integrity": "sha512-4ec7bY1Y66LymSUOH/zARVYObB23AT2h8cf6e/O6ZALB/N0sqZFEx7rq6EYPX2MkOdKORuooI/H5k9TlR4q7kQ==", + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1" + } + }, "proxy-addr": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", @@ -5424,6 +5656,11 @@ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" }, + "ramda": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.23.0.tgz", + "integrity": "sha1-zNE//3NJepOXTj6GMnv9h71ujis=" + }, "random-bytes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", @@ -5493,6 +5730,77 @@ "strip-json-comments": "2.0.1" } }, + "react-css-themr": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/react-css-themr/-/react-css-themr-2.1.2.tgz", + "integrity": "sha1-4BdRTkccIy9Dp1SlW0nYH69dr7g=", + "requires": { + "hoist-non-react-statics": "1.2.0", + "invariant": "2.2.3" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz", + "integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs=" + } + } + }, + "react-modal": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-2.4.1.tgz", + "integrity": "sha512-3WQCn3xqkbEUvxRUO3nkeqxMNgt1F4CyEU3BiUIrg7C71tnqjQIuSE7+JXp85yFl8X1iRTJouySNpwNqv4kiWg==", + "requires": { + "exenv": "1.2.2", + "prop-types": "15.6.1" + } + }, + "react-redux": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.7.tgz", + "integrity": "sha512-5VI8EV5hdgNgyjfmWzBbdrqUkrVRKlyTKk1sGH3jzM2M2Mhj/seQgPXaz6gVAj2lz/nz688AdTqMO18Lr24Zhg==", + "requires": { + "hoist-non-react-statics": "2.5.0", + "invariant": "2.2.3", + "lodash": "4.17.5", + "lodash-es": "4.17.5", + "loose-envify": "1.3.1", + "prop-types": "15.6.1" + } + }, + "react-style-proptype": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/react-style-proptype/-/react-style-proptype-3.2.0.tgz", + "integrity": "sha512-Mafmkzj3oNmLSJNOlH+WWWyGIdzVLhPj+d12fDxQMQdwDQ5sMX7vQKOLpry4U+zRWieTCx448AyRKK0NLWuXmg==", + "requires": { + "prop-types": "15.6.1" + } + }, + "react-toolbox": { + "version": "2.0.0-beta.12", + "resolved": "https://registry.npmjs.org/react-toolbox/-/react-toolbox-2.0.0-beta.12.tgz", + "integrity": "sha1-HZ3XzEHjs12r3OXrEAqAaO7ojEU=", + "requires": { + "classnames": "2.2.5", + "core-js": "2.5.3", + "ramda": "0.23.0", + "react-css-themr": "2.1.2", + "react-style-proptype": "3.2.0", + "react-transition-group": "1.2.1" + } + }, + "react-transition-group": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-1.2.1.tgz", + "integrity": "sha512-CWaL3laCmgAFdxdKbhhps+c0HRGF4c+hdM4H23+FI1QBNUyx/AMeIJGWorehPNSaKnQNOAxL7PQmqMu78CDj3Q==", + "requires": { + "chain-function": "1.0.0", + "dom-helpers": "3.3.1", + "loose-envify": "1.3.1", + "prop-types": "15.6.1", + "warning": "3.0.0" + } + }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -5555,6 +5863,22 @@ "resolve": "1.5.0" } }, + "redux": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", + "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", + "requires": { + "lodash": "4.17.5", + "lodash-es": "4.17.5", + "loose-envify": "1.3.1", + "symbol-observable": "1.2.0" + } + }, + "redux-thunk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.2.0.tgz", + "integrity": "sha1-5hWhbha0ehmlFXZhM9Hj6Zt4UuU=" + }, "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", @@ -5648,6 +5972,11 @@ } } }, + "reselect": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-3.0.1.tgz", + "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=" + }, "resolve": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", @@ -5786,6 +6115,11 @@ } } }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" + }, "semver": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", @@ -6254,6 +6588,11 @@ "strip-ansi": "4.0.0" } }, + "string.prototype.repeat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz", + "integrity": "sha1-q6Nt4I3O5qWjN9SbLqHaGyj8Ds8=" + }, "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", @@ -6295,6 +6634,16 @@ "has-flag": "3.0.0" } }, + "svg-pan-zoom": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/svg-pan-zoom/-/svg-pan-zoom-3.5.3.tgz", + "integrity": "sha512-jlHEOXRW4IF0W2e2DTk+hjKPKassF4TpJSSC7ilHJoZHX9hthFzU63WhluEwzSbTQF4akrWcjmbWxiCoGPa6PA==" + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, "table": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", @@ -6367,6 +6716,11 @@ "setimmediate": "1.0.5" } }, + "tiny-emitter": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz", + "integrity": "sha512-2NM0auVBGft5tee/OxP4PI3d8WItkDM+fPnaRAVo6xTDI2knbz9eC5ArWGqtGlYqiH3RU5yMpdyTTO7MguC4ow==" + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -6535,6 +6889,11 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "ua-parser-js": { + "version": "0.7.17", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", + "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==" + }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", @@ -6949,6 +7308,14 @@ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=" }, + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "requires": { + "loose-envify": "1.3.1" + } + }, "watchpack": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", @@ -7154,6 +7521,11 @@ } } }, + "whatwg-fetch": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", + "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" + }, "which": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", diff --git a/package.json b/package.json index 012148b..cd95995 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "graphql": "^0.13.1", "graphql-server-express": "^1.3.2", "graphql-tools": "^2.21.0", + "graphql-voyager": "^1.0.0-rc.15", "knex": "^0.14.4", "ldap-escape": "^1.1.5", "ldapjs": "^1.0.2", diff --git a/src/graphql/schema.js b/src/graphql/schema.js index 66854b9..d8fa175 100644 --- a/src/graphql/schema.js +++ b/src/graphql/schema.js @@ -30,8 +30,11 @@ const typeDefs = ` givenName: String! lastName: String! uid: ID! - birthdate: String + birthdate: String! + mail: String + phone: String groups: [String] + address: String } type Mutation { @@ -169,7 +172,10 @@ const resolvers = { lastName: data.sn, givenName: data.givenName, birthdate: data.brBirthdate, - groups: data.brMemberOf + groups: data.brMemberOf, + mail: data.mail, + phone: data.telephoneNumber, + room: data.brRoom }; }; diff --git a/src/index.js b/src/index.js index 2d73129..f67d6bc 100644 --- a/src/index.js +++ b/src/index.js @@ -3,12 +3,8 @@ */ import server from './server'; import colors from 'colors'; -import setupLdapAuth from './ldap/ldap_auth.js'; import router from './admin_view/admin_router'; -// setting up ldap authentication -setupLdapAuth(server); - // setting up l'interface admin des BDD server.use(router); diff --git a/src/ldap/ldap_auth.js b/src/ldap/ldap_auth.js index c881e17..6c4effd 100644 --- a/src/ldap/ldap_auth.js +++ b/src/ldap/ldap_auth.js @@ -40,9 +40,6 @@ function setupLdapAuth(server) { passport.deserializeUser(function(user, done) { done(null, user); }); - - // Returns middleware that parses cookies - //server.use(cookieParser()); } export default setupLdapAuth; diff --git a/src/ldap/ldap_data.js b/src/ldap/ldap_data.js index c1ba16e..633ed19 100644 --- a/src/ldap/ldap_data.js +++ b/src/ldap/ldap_data.js @@ -9,7 +9,7 @@ import fs from 'fs'; import ldapEscape from 'ldap-escape'; import path from 'path'; */ -/**/var ldap = require('ldapjs'); +var ldap = require('ldapjs'); var fs = require('fs'); var ldapEscape = require('ldap-escape'); var path = require('path'); diff --git a/src/server.js b/src/server.js index 99184c8..f98d163 100644 --- a/src/server.js +++ b/src/server.js @@ -2,13 +2,13 @@ * @file Cree le serveur express avec tous les middleware qui vont bien */ import express from 'express'; -import session from 'express-session'; import bodyParser from 'body-parser'; import favicon from 'serve-favicon'; import morgan from 'morgan'; import path from 'path'; import cors from 'cors'; import schema from './graphql/schema'; +import setupLdapAuth from './ldap/ldap_auth'; import { graphqlExpress, graphiqlExpress } from 'graphql-server-express'; import flash from 'connect-flash'; @@ -20,19 +20,15 @@ server.use(bodyParser.urlencoded({ extended: true })); +/** + * @description Configuration authentification + */ +setupLdapAuth(server); + /** * @description Cache le fait que l'application tourne sous Express dans le header HTTP. */ server.disable('x-powered-by'); - -// Configuration de express-session -server.use(session({ - secret: 'race condition', - cookie: { maxAge: 60000 }, - resave: true, - saveUninitialized: true -})); - // setting up view engine for pug let viewpath = path.resolve('./','src','views'); server.set('views', viewpath); -- GitLab