| 
									
										
										
										
											2018-11-26 18:32:35 +01:00
										 |  |  | const _ = require('lodash');
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-11 12:53:07 +02:00
										 |  |  | module.exports = {
 | 
					
						
							|  |  |  |   type: {
 | 
					
						
							|  |  |  |     UsersPermissionsPermission: false // Make this type NOT queriable.
 | 
					
						
							| 
									
										
										
										
											2018-10-14 21:14:02 -05:00
										 |  |  |   },
 | 
					
						
							|  |  |  |   definition: `
 | 
					
						
							|  |  |  |     type UsersPermissionsMe {
 | 
					
						
							| 
									
										
										
										
											2019-07-19 02:14:46 -07:00
										 |  |  |       id: ID!
 | 
					
						
							| 
									
										
										
										
											2018-10-14 21:14:02 -05:00
										 |  |  |       username: String!
 | 
					
						
							|  |  |  |       email: String!
 | 
					
						
							|  |  |  |       confirmed: Boolean
 | 
					
						
							|  |  |  |       blocked: Boolean
 | 
					
						
							| 
									
										
										
										
											2018-10-15 11:03:00 -05:00
										 |  |  |       role: UsersPermissionsMeRole
 | 
					
						
							| 
									
										
										
										
											2018-10-14 21:14:02 -05:00
										 |  |  |     }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     type UsersPermissionsMeRole {
 | 
					
						
							| 
									
										
										
										
											2019-07-19 02:14:46 -07:00
										 |  |  |       id: ID!
 | 
					
						
							| 
									
										
										
										
											2018-10-14 21:14:02 -05:00
										 |  |  |       name: String!
 | 
					
						
							|  |  |  |       description: String
 | 
					
						
							|  |  |  |       type: String
 | 
					
						
							|  |  |  |     }
 | 
					
						
							|  |  |  |   `,
 | 
					
						
							| 
									
										
										
										
											2018-10-09 20:06:52 -05:00
										 |  |  |   query: `
 | 
					
						
							| 
									
										
										
										
											2018-10-14 21:14:02 -05:00
										 |  |  |     me: UsersPermissionsMe
 | 
					
						
							| 
									
										
										
										
											2018-10-09 20:06:52 -05:00
										 |  |  |   `,
 | 
					
						
							| 
									
										
										
										
											2018-04-11 12:53:07 +02:00
										 |  |  |   resolver: {
 | 
					
						
							|  |  |  |     Query: {
 | 
					
						
							| 
									
										
										
										
											2018-10-09 20:06:52 -05:00
										 |  |  |       me: {
 | 
					
						
							|  |  |  |         resolverOf: 'User.me',
 | 
					
						
							|  |  |  |         resolver: {
 | 
					
						
							|  |  |  |           plugin: 'users-permissions',
 | 
					
						
							|  |  |  |           handler: 'User.me'
 | 
					
						
							|  |  |  |         }
 | 
					
						
							|  |  |  |       },
 | 
					
						
							| 
									
										
										
										
											2018-04-11 12:53:07 +02:00
										 |  |  |       role: {
 | 
					
						
							|  |  |  |         resolverOf: 'UsersPermissions.getRole',
 | 
					
						
							| 
									
										
										
										
											2019-03-13 19:27:18 +01:00
										 |  |  |         resolver: async (obj, options,  { context }) => {
 | 
					
						
							|  |  |  |           await strapi.plugins['users-permissions'].controllers.userspermissions.getRole(context);
 | 
					
						
							| 
									
										
										
										
											2018-04-11 12:53:07 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-13 19:27:18 +01:00
										 |  |  |           return context.body.role;
 | 
					
						
							| 
									
										
										
										
											2018-04-11 12:53:07 +02:00
										 |  |  |         }
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       roles: {
 | 
					
						
							| 
									
										
										
										
											2018-04-12 15:57:25 +02:00
										 |  |  |         description: `Retrieve all the existing roles. You can't apply filters on this query.`,
 | 
					
						
							| 
									
										
										
										
											2018-04-11 12:53:07 +02:00
										 |  |  |         resolverOf: 'UsersPermissions.getRoles', // Apply the `getRoles` permissions on the resolver.
 | 
					
						
							| 
									
										
										
										
											2019-03-13 19:27:18 +01:00
										 |  |  |         resolver: async (obj, options,  { context }) => {
 | 
					
						
							|  |  |  |           await strapi.plugins['users-permissions'].controllers.userspermissions.getRoles(context);
 | 
					
						
							| 
									
										
										
										
											2018-04-11 12:53:07 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-13 19:27:18 +01:00
										 |  |  |           return context.body.roles;
 | 
					
						
							| 
									
										
										
										
											2018-04-11 12:53:07 +02:00
										 |  |  |         }
 | 
					
						
							|  |  |  |       }
 | 
					
						
							| 
									
										
										
										
											2018-09-10 16:05:00 +08:00
										 |  |  |     },
 | 
					
						
							|  |  |  |     Mutation: {
 | 
					
						
							|  |  |  |       createRole: {
 | 
					
						
							|  |  |  |         description: 'Create a new role',
 | 
					
						
							|  |  |  |         resolverOf: 'UsersPermissions.createRole',
 | 
					
						
							| 
									
										
										
										
											2019-03-13 19:27:18 +01:00
										 |  |  |         resolver: async (obj, options,  { context }) => {
 | 
					
						
							|  |  |  |           await strapi.plugins['users-permissions'].controllers.userspermissions.createRole(context);
 | 
					
						
							| 
									
										
										
										
											2018-09-10 16:05:00 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |           return { ok: true };
 | 
					
						
							|  |  |  |         }
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       updateRole: {
 | 
					
						
							|  |  |  |         description: 'Update an existing role',
 | 
					
						
							|  |  |  |         resolverOf: 'UsersPermissions.updateRole',
 | 
					
						
							| 
									
										
										
										
											2019-03-13 19:27:18 +01:00
										 |  |  |         resolver: async (obj, options,  { context }) => {
 | 
					
						
							|  |  |  |           await strapi.plugins['users-permissions'].controllers.userspermissions.updateRole(context.params, context.body);
 | 
					
						
							| 
									
										
										
										
											2018-09-10 16:05:00 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |           return { ok: true };
 | 
					
						
							|  |  |  |         }
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       deleteRole: {
 | 
					
						
							|  |  |  |         description: 'Delete an existing role',
 | 
					
						
							|  |  |  |         resolverOf: 'UsersPermissions.deleteRole',
 | 
					
						
							| 
									
										
										
										
											2019-03-13 19:27:18 +01:00
										 |  |  |         resolver: async (obj, options,  { context }) => {
 | 
					
						
							|  |  |  |           await strapi.plugins['users-permissions'].controllers.userspermissions.deleteRole(context);
 | 
					
						
							| 
									
										
										
										
											2018-09-10 16:05:00 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |           return { ok: true };
 | 
					
						
							|  |  |  |         }
 | 
					
						
							| 
									
										
										
										
											2018-11-26 18:32:35 +01:00
										 |  |  |       },
 | 
					
						
							|  |  |  |       createUser: {
 | 
					
						
							|  |  |  |         description: 'Create a new user',
 | 
					
						
							|  |  |  |         resolverOf: 'User.create',
 | 
					
						
							|  |  |  |         resolver: async (obj, options, { context }) => {
 | 
					
						
							|  |  |  |           context.params =  _.toPlainObject(options.input.where);
 | 
					
						
							|  |  |  |           context.request.body = _.toPlainObject(options.input.data);
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           await strapi.plugins['users-permissions'].controllers.user.create(context);
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           return {
 | 
					
						
							| 
									
										
										
										
											2018-11-27 14:59:28 +01:00
										 |  |  |             user: context.body.toJSON ? context.body.toJSON() : context.body
 | 
					
						
							| 
									
										
										
										
											2018-11-26 18:32:35 +01:00
										 |  |  |           };
 | 
					
						
							|  |  |  |         }
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       updateUser: {
 | 
					
						
							|  |  |  |         description: 'Update an existing user',
 | 
					
						
							|  |  |  |         resolverOf: 'User.update',
 | 
					
						
							|  |  |  |         resolver: async (obj, options, { context }) => {
 | 
					
						
							|  |  |  |           context.params =  _.toPlainObject(options.input.where);
 | 
					
						
							|  |  |  |           context.request.body = _.toPlainObject(options.input.data);
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           await strapi.plugins['users-permissions'].controllers.user.update(context);
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           return { 
 | 
					
						
							| 
									
										
										
										
											2018-11-27 14:59:28 +01:00
										 |  |  |             user: context.body.toJSON ? context.body.toJSON() : context.body
 | 
					
						
							| 
									
										
										
										
											2018-11-26 18:32:35 +01:00
										 |  |  |           };
 | 
					
						
							|  |  |  |         }
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       deleteUser: {
 | 
					
						
							|  |  |  |         description: 'Delete an existing user',
 | 
					
						
							|  |  |  |         resolverOf: 'User.destroy',
 | 
					
						
							|  |  |  |         resolver: async (obj, options, { context }) => {
 | 
					
						
							| 
									
										
										
										
											2018-11-27 14:54:34 +01:00
										 |  |  |           // Set parameters to context.
 | 
					
						
							| 
									
										
										
										
											2018-11-26 18:32:35 +01:00
										 |  |  |           context.params =  _.toPlainObject(options.input.where);
 | 
					
						
							|  |  |  |           context.request.body = _.toPlainObject(options.input.data);
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-27 14:54:34 +01:00
										 |  |  |           // Retrieve user to be able to return it because 
 | 
					
						
							|  |  |  |           // Bookshelf doesn't return the row once deleted.
 | 
					
						
							|  |  |  |           await strapi.plugins['users-permissions'].controllers.user.findOne(context);
 | 
					
						
							|  |  |  |           // Assign result to user.
 | 
					
						
							| 
									
										
										
										
											2018-11-27 14:59:28 +01:00
										 |  |  |           const user = context.body.toJSON ? context.body.toJSON() : context.body;
 | 
					
						
							| 
									
										
										
										
											2018-11-27 14:54:34 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |           // Run destroy query.
 | 
					
						
							|  |  |  |           await strapi.plugins['users-permissions'].controllers.user.destroy(context);
 | 
					
						
							| 
									
										
										
										
											2018-11-26 18:32:35 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |           return {
 | 
					
						
							| 
									
										
										
										
											2018-11-27 14:54:34 +01:00
										 |  |  |             user
 | 
					
						
							| 
									
										
										
										
											2018-11-26 18:32:35 +01:00
										 |  |  |           };
 | 
					
						
							|  |  |  |         }
 | 
					
						
							| 
									
										
										
										
											2018-09-10 16:05:00 +08:00
										 |  |  |       }
 | 
					
						
							| 
									
										
										
										
											2018-04-11 12:53:07 +02:00
										 |  |  |     }
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | };
 |