| 
									
										
										
										
											2017-11-06 11:14:43 +01:00
										 |  |  | 'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * UsersPermissions.js controller | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @description: A set of functions called "actions" of the `users-permissions` plugin. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-15 15:06:09 +01:00
										 |  |  | const _ = require('lodash'); | 
					
						
							| 
									
										
										
										
											2020-06-15 10:34:59 +02:00
										 |  |  | const { isValidEmailTemplate } = require('./validation/email-template'); | 
					
						
							| 
									
										
										
										
											2017-11-15 15:06:09 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-06 11:14:43 +01:00
										 |  |  | module.exports = { | 
					
						
							|  |  |  |   /** | 
					
						
							|  |  |  |    * Default action. | 
					
						
							|  |  |  |    * | 
					
						
							|  |  |  |    * @return {Object} | 
					
						
							|  |  |  |    */ | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |   async createRole(ctx) { | 
					
						
							| 
									
										
										
										
											2017-11-23 11:03:26 +01:00
										 |  |  |     if (_.isEmpty(ctx.request.body)) { | 
					
						
							|  |  |  |       return ctx.badRequest(null, [{ messages: [{ id: 'Cannot be empty' }] }]); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2017-11-23 17:13:46 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-23 11:03:26 +01:00
										 |  |  |     try { | 
					
						
							| 
									
										
										
										
											2020-03-02 15:18:08 +01:00
										 |  |  |       await strapi.plugins['users-permissions'].services.userspermissions.createRole( | 
					
						
							|  |  |  |         ctx.request.body | 
					
						
							|  |  |  |       ); | 
					
						
							| 
									
										
										
										
											2018-01-23 15:38:43 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-23 11:03:26 +01:00
										 |  |  |       ctx.send({ ok: true }); | 
					
						
							| 
									
										
										
										
											2019-04-09 12:09:03 +02:00
										 |  |  |     } catch (err) { | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |       strapi.log.error(err); | 
					
						
							| 
									
										
										
										
											2017-11-23 11:03:26 +01:00
										 |  |  |       ctx.badRequest(null, [{ messages: [{ id: 'An error occured' }] }]); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2017-11-06 11:14:43 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |   async deleteRole(ctx) { | 
					
						
							| 
									
										
										
										
											2019-04-09 12:09:03 +02:00
										 |  |  |     // Fetch public role.
 | 
					
						
							| 
									
										
										
										
											2020-03-02 15:18:08 +01:00
										 |  |  |     const publicRole = await strapi.query('role', 'users-permissions').findOne({ type: 'public' }); | 
					
						
							| 
									
										
										
										
											2018-01-23 15:38:43 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-13 16:31:29 +02:00
										 |  |  |     const publicRoleID = publicRole.id; | 
					
						
							| 
									
										
										
										
											2017-11-23 18:08:14 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-23 15:38:43 +01:00
										 |  |  |     const roleID = ctx.params.role; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (!roleID) { | 
					
						
							| 
									
										
										
										
											2017-11-23 18:08:14 +01:00
										 |  |  |       return ctx.badRequest(null, [{ messages: [{ id: 'Bad request' }] }]); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-09 12:09:03 +02:00
										 |  |  |     // Prevent from removing the public role.
 | 
					
						
							|  |  |  |     if (roleID.toString() === publicRoleID.toString()) { | 
					
						
							| 
									
										
										
										
											2017-11-27 17:02:45 +01:00
										 |  |  |       return ctx.badRequest(null, [{ messages: [{ id: 'Unauthorized' }] }]); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     try { | 
					
						
							| 
									
										
										
										
											2020-03-02 15:18:08 +01:00
										 |  |  |       await strapi.plugins['users-permissions'].services.userspermissions.deleteRole( | 
					
						
							|  |  |  |         roleID, | 
					
						
							|  |  |  |         publicRoleID | 
					
						
							|  |  |  |       ); | 
					
						
							| 
									
										
										
										
											2018-01-23 15:38:43 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |       ctx.send({ ok: true }); | 
					
						
							| 
									
										
										
										
											2019-04-09 12:09:03 +02:00
										 |  |  |     } catch (err) { | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |       strapi.log.error(err); | 
					
						
							| 
									
										
										
										
											2018-01-23 15:38:43 +01:00
										 |  |  |       ctx.badRequest(null, [{ messages: [{ id: 'Bad request' }] }]); | 
					
						
							| 
									
										
										
										
											2017-11-27 17:02:45 +01:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2017-11-23 18:08:14 +01:00
										 |  |  |   }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |   async getPermissions(ctx) { | 
					
						
							| 
									
										
										
										
											2017-11-15 15:11:10 +01:00
										 |  |  |     try { | 
					
						
							| 
									
										
										
										
											2019-04-09 12:09:03 +02:00
										 |  |  |       const permissions = await strapi.plugins[ | 
					
						
							|  |  |  |         'users-permissions' | 
					
						
							| 
									
										
										
										
											2020-08-27 15:57:20 +02:00
										 |  |  |       ].services.userspermissions.getActions(); | 
					
						
							| 
									
										
										
										
											2018-01-23 15:38:43 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-16 17:59:41 +01:00
										 |  |  |       ctx.send({ permissions }); | 
					
						
							| 
									
										
										
										
											2019-04-09 12:09:03 +02:00
										 |  |  |     } catch (err) { | 
					
						
							| 
									
										
										
										
											2017-11-15 15:11:10 +01:00
										 |  |  |       ctx.badRequest(null, [{ message: [{ id: 'Not Found' }] }]); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |   async getPolicies(ctx) { | 
					
						
							| 
									
										
										
										
											2018-01-23 15:38:43 +01:00
										 |  |  |     ctx.send({ | 
					
						
							| 
									
										
										
										
											2019-04-09 12:09:03 +02:00
										 |  |  |       policies: _.without( | 
					
						
							|  |  |  |         _.keys(strapi.plugins['users-permissions'].config.policies), | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |         'permissions' | 
					
						
							| 
									
										
										
										
											2019-04-09 12:09:03 +02:00
										 |  |  |       ), | 
					
						
							| 
									
										
										
										
											2017-11-29 18:45:51 +01:00
										 |  |  |     }); | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |   async getRole(ctx) { | 
					
						
							| 
									
										
										
										
											2017-11-15 14:00:51 +01:00
										 |  |  |     const { id } = ctx.params; | 
					
						
							| 
									
										
										
										
											2018-01-05 16:19:53 +01:00
										 |  |  |     const { lang } = ctx.query; | 
					
						
							| 
									
										
										
										
											2020-03-02 15:18:08 +01:00
										 |  |  |     const plugins = await strapi.plugins['users-permissions'].services.userspermissions.getPlugins( | 
					
						
							|  |  |  |       lang | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |     const role = await strapi.plugins['users-permissions'].services.userspermissions.getRole( | 
					
						
							|  |  |  |       id, | 
					
						
							|  |  |  |       plugins | 
					
						
							|  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2017-11-15 15:11:10 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (_.isEmpty(role)) { | 
					
						
							| 
									
										
										
										
											2017-11-20 14:35:24 +01:00
										 |  |  |       return ctx.badRequest(null, [{ messages: [{ id: `Role don't exist` }] }]); | 
					
						
							| 
									
										
										
										
											2017-11-15 15:11:10 +01:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2017-11-15 14:00:51 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-23 15:38:43 +01:00
										 |  |  |     ctx.send({ role }); | 
					
						
							| 
									
										
										
										
											2017-11-15 14:00:51 +01:00
										 |  |  |   }, | 
					
						
							| 
									
										
										
										
											2017-11-06 11:14:43 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |   async getRoles(ctx) { | 
					
						
							| 
									
										
										
										
											2017-11-27 16:04:57 +01:00
										 |  |  |     try { | 
					
						
							| 
									
										
										
										
											2020-03-02 15:18:08 +01:00
										 |  |  |       const roles = await strapi.plugins['users-permissions'].services.userspermissions.getRoles(); | 
					
						
							| 
									
										
										
										
											2017-11-27 16:04:57 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |       ctx.send({ roles }); | 
					
						
							| 
									
										
										
										
											2019-04-09 12:09:03 +02:00
										 |  |  |     } catch (err) { | 
					
						
							| 
									
										
										
										
											2017-11-27 16:04:57 +01:00
										 |  |  |       ctx.badRequest(null, [{ messages: [{ id: 'Not found' }] }]); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |   async getRoutes(ctx) { | 
					
						
							| 
									
										
										
										
											2017-11-30 16:34:43 +01:00
										 |  |  |     try { | 
					
						
							| 
									
										
										
										
											2019-04-09 12:09:03 +02:00
										 |  |  |       const routes = await strapi.plugins[ | 
					
						
							|  |  |  |         'users-permissions' | 
					
						
							|  |  |  |       ].services.userspermissions.getRoutes(); | 
					
						
							| 
									
										
										
										
											2017-11-30 16:34:43 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |       ctx.send({ routes }); | 
					
						
							| 
									
										
										
										
											2019-04-09 12:09:03 +02:00
										 |  |  |     } catch (err) { | 
					
						
							| 
									
										
										
										
											2017-11-30 16:34:43 +01:00
										 |  |  |       ctx.badRequest(null, [{ messages: [{ id: 'Not found' }] }]); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |   async index(ctx) { | 
					
						
							| 
									
										
										
										
											2017-11-06 11:14:43 +01:00
										 |  |  |     // Send 200 `ok`
 | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |     ctx.send({ message: 'ok' }); | 
					
						
							| 
									
										
										
										
											2017-11-14 17:09:13 +01:00
										 |  |  |   }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |   async searchUsers(ctx) { | 
					
						
							|  |  |  |     const { id } = ctx.params; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-02 15:18:08 +01:00
										 |  |  |     const data = await strapi.query('user', 'users-permissions').custom(searchQueries)({ | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |       id, | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2018-01-23 15:38:43 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ctx.send(data); | 
					
						
							| 
									
										
										
										
											2017-11-27 12:19:36 +01:00
										 |  |  |   }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |   async updateRole(ctx) { | 
					
						
							| 
									
										
										
										
											2018-01-22 18:19:44 +01:00
										 |  |  |     const roleID = ctx.params.role; | 
					
						
							| 
									
										
										
										
											2017-11-27 17:50:51 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (_.isEmpty(ctx.request.body)) { | 
					
						
							|  |  |  |       return ctx.badRequest(null, [{ messages: [{ id: 'Bad request' }] }]); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-23 17:13:46 +01:00
										 |  |  |     try { | 
					
						
							| 
									
										
										
										
											2020-03-02 15:18:08 +01:00
										 |  |  |       await strapi.plugins['users-permissions'].services.userspermissions.updateRole( | 
					
						
							|  |  |  |         roleID, | 
					
						
							|  |  |  |         ctx.request.body | 
					
						
							|  |  |  |       ); | 
					
						
							| 
									
										
										
										
											2018-01-22 18:19:44 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-23 17:13:46 +01:00
										 |  |  |       ctx.send({ ok: true }); | 
					
						
							| 
									
										
										
										
											2019-05-14 12:41:17 +02:00
										 |  |  |     } catch (err) { | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |       strapi.log.error(err); | 
					
						
							| 
									
										
										
										
											2017-11-23 17:13:46 +01:00
										 |  |  |       ctx.badRequest(null, [{ messages: [{ id: 'An error occurred' }] }]); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2018-01-15 11:59:10 +01:00
										 |  |  |   }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |   async getEmailTemplate(ctx) { | 
					
						
							| 
									
										
										
										
											2019-04-09 12:09:03 +02:00
										 |  |  |     ctx.send( | 
					
						
							|  |  |  |       await strapi | 
					
						
							|  |  |  |         .store({ | 
					
						
							|  |  |  |           environment: '', | 
					
						
							|  |  |  |           type: 'plugin', | 
					
						
							|  |  |  |           name: 'users-permissions', | 
					
						
							|  |  |  |           key: 'email', | 
					
						
							|  |  |  |         }) | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |         .get() | 
					
						
							| 
									
										
										
										
											2019-04-09 12:09:03 +02:00
										 |  |  |     ); | 
					
						
							| 
									
										
										
										
											2018-01-15 12:05:01 +01:00
										 |  |  |   }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |   async updateEmailTemplate(ctx) { | 
					
						
							| 
									
										
										
										
											2018-01-15 12:05:01 +01:00
										 |  |  |     if (_.isEmpty(ctx.request.body)) { | 
					
						
							|  |  |  |       return ctx.badRequest(null, [{ messages: [{ id: 'Cannot be empty' }] }]); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-06-15 10:34:59 +02:00
										 |  |  |     const emailTemplates = ctx.request.body['email-templates']; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     for (let key in emailTemplates) { | 
					
						
							|  |  |  |       const template = emailTemplates[key].options.message; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       if (!isValidEmailTemplate(template)) { | 
					
						
							|  |  |  |         return ctx.badRequest(null, [{ messages: [{ id: 'Invalid template' }] }]); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-09 12:09:03 +02:00
										 |  |  |     await strapi | 
					
						
							|  |  |  |       .store({ | 
					
						
							|  |  |  |         environment: '', | 
					
						
							|  |  |  |         type: 'plugin', | 
					
						
							|  |  |  |         name: 'users-permissions', | 
					
						
							|  |  |  |         key: 'email', | 
					
						
							|  |  |  |       }) | 
					
						
							| 
									
										
										
										
											2020-06-15 10:34:59 +02:00
										 |  |  |       .set({ value: emailTemplates }); | 
					
						
							| 
									
										
										
										
											2018-01-15 12:05:01 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-18 16:23:31 +01:00
										 |  |  |     ctx.send({ ok: true }); | 
					
						
							| 
									
										
										
										
											2018-01-15 16:23:54 +01:00
										 |  |  |   }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |   async getAdvancedSettings(ctx) { | 
					
						
							| 
									
										
										
										
											2018-03-12 15:56:25 +01:00
										 |  |  |     ctx.send({ | 
					
						
							| 
									
										
										
										
											2019-04-09 12:09:03 +02:00
										 |  |  |       settings: await strapi | 
					
						
							|  |  |  |         .store({ | 
					
						
							|  |  |  |           environment: '', | 
					
						
							|  |  |  |           type: 'plugin', | 
					
						
							|  |  |  |           name: 'users-permissions', | 
					
						
							|  |  |  |           key: 'advanced', | 
					
						
							|  |  |  |         }) | 
					
						
							|  |  |  |         .get(), | 
					
						
							| 
									
										
										
										
											2020-03-02 15:18:08 +01:00
										 |  |  |       roles: await strapi.plugins['users-permissions'].services.userspermissions.getRoles(), | 
					
						
							| 
									
										
										
										
											2018-03-12 15:56:25 +01:00
										 |  |  |     }); | 
					
						
							| 
									
										
										
										
											2018-01-15 16:23:54 +01:00
										 |  |  |   }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |   async updateAdvancedSettings(ctx) { | 
					
						
							| 
									
										
										
										
											2018-01-15 16:23:54 +01:00
										 |  |  |     if (_.isEmpty(ctx.request.body)) { | 
					
						
							|  |  |  |       return ctx.badRequest(null, [{ messages: [{ id: 'Cannot be empty' }] }]); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-09 12:09:03 +02:00
										 |  |  |     await strapi | 
					
						
							|  |  |  |       .store({ | 
					
						
							|  |  |  |         environment: '', | 
					
						
							|  |  |  |         type: 'plugin', | 
					
						
							|  |  |  |         name: 'users-permissions', | 
					
						
							|  |  |  |         key: 'advanced', | 
					
						
							|  |  |  |       }) | 
					
						
							|  |  |  |       .set({ value: ctx.request.body }); | 
					
						
							| 
									
										
										
										
											2018-01-15 16:23:54 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-18 16:23:31 +01:00
										 |  |  |     ctx.send({ ok: true }); | 
					
						
							| 
									
										
										
										
											2018-01-19 15:14:51 +01:00
										 |  |  |   }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |   async getProviders(ctx) { | 
					
						
							|  |  |  |     const providers = await strapi | 
					
						
							|  |  |  |       .store({ | 
					
						
							|  |  |  |         environment: '', | 
					
						
							|  |  |  |         type: 'plugin', | 
					
						
							|  |  |  |         name: 'users-permissions', | 
					
						
							|  |  |  |         key: 'grant', | 
					
						
							|  |  |  |       }) | 
					
						
							|  |  |  |       .get(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-22 15:30:17 +02:00
										 |  |  |     for (const provider in providers) { | 
					
						
							|  |  |  |       if (provider !== 'email') { | 
					
						
							|  |  |  |         providers[provider].redirectUri = strapi.plugins[ | 
					
						
							|  |  |  |           'users-permissions' | 
					
						
							|  |  |  |         ].services.providers.buildRedirectUri(provider); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |     ctx.send(providers); | 
					
						
							| 
									
										
										
										
											2018-01-22 10:23:04 +01:00
										 |  |  |   }, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |   async updateProviders(ctx) { | 
					
						
							| 
									
										
										
										
											2018-01-22 10:23:04 +01:00
										 |  |  |     if (_.isEmpty(ctx.request.body)) { | 
					
						
							|  |  |  |       return ctx.badRequest(null, [{ messages: [{ id: 'Cannot be empty' }] }]); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-09 12:09:03 +02:00
										 |  |  |     await strapi | 
					
						
							|  |  |  |       .store({ | 
					
						
							|  |  |  |         environment: '', | 
					
						
							|  |  |  |         type: 'plugin', | 
					
						
							|  |  |  |         name: 'users-permissions', | 
					
						
							|  |  |  |         key: 'grant', | 
					
						
							|  |  |  |       }) | 
					
						
							|  |  |  |       .set({ value: ctx.request.body.providers }); | 
					
						
							| 
									
										
										
										
											2018-01-22 10:23:04 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ctx.send({ ok: true }); | 
					
						
							| 
									
										
										
										
											2019-04-09 12:09:03 +02:00
										 |  |  |   }, | 
					
						
							| 
									
										
										
										
											2017-11-06 11:14:43 +01:00
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | const searchQueries = { | 
					
						
							|  |  |  |   bookshelf({ model }) { | 
					
						
							|  |  |  |     return ({ id }) => { | 
					
						
							|  |  |  |       return model | 
					
						
							|  |  |  |         .query(function(qb) { | 
					
						
							| 
									
										
										
										
											2020-03-02 15:18:08 +01:00
										 |  |  |           qb.where('username', 'LIKE', `%${id}%`).orWhere('email', 'LIKE', `%${id}%`); | 
					
						
							| 
									
										
										
										
											2019-07-15 23:16:50 +02:00
										 |  |  |         }) | 
					
						
							|  |  |  |         .fetchAll() | 
					
						
							|  |  |  |         .then(results => results.toJSON()); | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   mongoose({ model }) { | 
					
						
							|  |  |  |     return ({ id }) => { | 
					
						
							|  |  |  |       const re = new RegExp(id); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       return model.find({ | 
					
						
							|  |  |  |         $or: [{ username: re }, { email: re }], | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  | }; |