diff --git a/package-lock.json b/package-lock.json index 75529fa355afaf009a389b2a98c7ae813fcbda77..df35bb706847fff6fd94ea74e72ea60258b04677 100644 --- a/package-lock.json +++ b/package-lock.json @@ -157,7 +157,6 @@ "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, "requires": { "co": "4.6.0", "fast-deep-equal": "1.0.0", @@ -1024,8 +1023,7 @@ "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "code-point-at": { "version": "1.1.0", @@ -2146,6 +2144,15 @@ "object-assign": "4.1.1" } }, + "file-loader": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.10.tgz", + "integrity": "sha512-dNnT4yJgUPtGDg0+m03kQ0b/PZi3Y12EnqYuRPNCsbYkBZc6j+fwVWy40jWzZjn5kIzQ4BLIxzJimbwAYlnPGw==", + "requires": { + "loader-utils": "1.1.0", + "schema-utils": "0.4.5" + } + }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", @@ -5753,6 +5760,32 @@ "ret": "0.1.15" } }, + "schema-utils": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", + "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", + "requires": { + "ajv": "6.2.0", + "ajv-keywords": "3.1.0" + }, + "dependencies": { + "ajv": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.2.0.tgz", + "integrity": "sha1-r6wpW7qgFSRJ5SJ0LkVHwa6TKNI=", + "requires": { + "fast-deep-equal": "1.0.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "ajv-keywords": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.1.0.tgz", + "integrity": "sha1-rCsnk5xUPpXSwG5/f1wnvkqlQ74=" + } + } + }, "semver": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", @@ -6723,6 +6756,26 @@ } } }, + "url-loader": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.6.2.tgz", + "integrity": "sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==", + "requires": { + "loader-utils": "1.1.0", + "mime": "1.4.1", + "schema-utils": "0.3.0" + }, + "dependencies": { + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "requires": { + "ajv": "5.5.2" + } + } + } + }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", diff --git a/package.json b/package.json index 2227f83fe49302f4c9dbb55c6ff6597f48699132..012148b1897a5c3f756b868280ec9b738d66478e 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "cors": "^2.8.4", "express": "^4.16.2", "express-session": "^1.15.6", + "file-loader": "^1.1.10", "fs": "0.0.1-security", "fuse.js": "^3.2.0", "graphql": "^0.13.1", @@ -25,6 +26,7 @@ "pg": "^7.4.1", "pug": "^2.0.0-rc.4", "serve-favicon": "^2.4.5", + "url-loader": "^0.6.2", "webpack": "^3.11.0", "webpack-node-externals": "^1.6.0" }, diff --git a/sigma-back-dev.service b/sigma-back-dev.service index 118eacbb61a3fab935a2a8129acf3264f68dc82e..46874305bf25d714ce7152bae87ebc0d2ff3aa66 100644 --- a/sigma-back-dev.service +++ b/sigma-back-dev.service @@ -6,7 +6,7 @@ After=network-online.target [Service] Environment=NODE_ENV=development WorkingDirectory=/opt/sigma-back -ExecStart=/usr/bin/node app.js +ExecStart=node app.js Restart=always [Install] diff --git a/src/graphql/schema.js b/src/graphql/schema.js index 304b8f553c9afc573c87648e9623ef9af32d5168..ef56500bb671a00b63e1987290a97687b4c6091a 100644 --- a/src/graphql/schema.js +++ b/src/graphql/schema.js @@ -1,5 +1,5 @@ /** - * @file Ce fichier genere le shema utilise par Apollo. C'est ici que les requetes GraphQl sont résolues. + * @file Ce fichier génère le schéma GraphQL. C'est ici que les requêtes GraphQl sont résolues. * @author akka vodol */ import knex from '../../db/knex_router'; @@ -36,11 +36,11 @@ const typeDefs = ` type Mutation { createGroup( - uid: ID = null, - name: String, - website: String, - description: String, - school: String, + uid: ID = null + name: String + website: String + description: String + school: String parentuid : String ): Group } @@ -172,15 +172,11 @@ const resolvers = { }; }; - const result = rens(args.uid).then((res) => { - let refactData = res.map(data => { - let result = refactorer(data); - return result; - }); - console.log(refactData); - return refactData; + const result = rens(context.user, args.uid).then(res => { + const output = res.map(entry => refactorer(entry)); + return output; }); - console.log(result); + return result; } }, diff --git a/src/ldap/ldap_data.js b/src/ldap/ldap_data.js index f34fba5f56a1ea0ce166f89df11264cfef9c745f..27fd16790a56d292cbf3a4daab14acb7a428eedb 100644 --- a/src/ldap/ldap_data.js +++ b/src/ldap/ldap_data.js @@ -208,7 +208,7 @@ function listAdmins(user, gid) { * @arg {Object} user - Utilisateur de la forme nécessaire au bind * @arg {string} user[key] - uid et password * @arg {string} uid - Identifiant de l'utilisateur - * @return {Object} Informations recueillies ; rennvoit une liste de dictionnaire avec les mêmes clés que dans le TOL, voir config.json. + * @return {Object} Informations recueillies ; renvoie une liste de dictionnaire avec les mêmes clés que dans le TOL, voir config.json. */ function rens(user, uid) { return new Promise(function(resolve, reject) { diff --git a/src/server.js b/src/server.js index 994fb46cc9d8847dc0fd87a5dd5fdadca11b600d..c26bebffef094ca1f8a219a2c2bfe8da1a96ee44 100644 --- a/src/server.js +++ b/src/server.js @@ -40,13 +40,12 @@ server.use('/graphql', bodyParser.json(), cors(), try { uid = "anatole.romon"; - password = "mythe" + password = "mythe"; //uid = req.session.id; //password = req.session.password; } catch (err) { - uid = "louis.vanneau"; - password = "mythe" - + uid = "louis.vaneau"; + password = "mythe"; } return { diff --git a/webpack.config.js b/webpack.config.js index eb89149a2ae7cb850e9071bfd68a5003c01ebb95..192a23d259b42d65fd9ccf028e7e989052844c8c 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,19 +1,30 @@ const path = require('path'); const nodeExternals = require('webpack-node-externals'); -var config = { +const config = { entry: './src/index.js', + target: 'node', + output: { - filename: 'bundle.js', - path: path.resolve(__dirname, 'build') + path: path.resolve(__dirname, 'build'), + publicPath: '/', + filename: 'bundle.js' }, + externals: [nodeExternals()], + module: { loaders: [{ - test: /\.(png|jpg|ico)/, + test: /\.css$/, + use: ['style-loader', 'css-loader'] + },{ + test: /\.(png|jpg|ico)$/, exclude: /node_modules/, - loader: 'url-loader' + loader: 'file-loader', + options: { + limit: 10000 + } }] } };