Try this in the controller:
async updatepfp(ctx){
let entity;
const id = ctx.state.user.id;
if (ctx.is('multipart')) {
const { data, files } = parseMultipartData(ctx);
entity = await strapi.services.user.updateUser(id, {}, {files});
} else {
entity = await strapi.services.user.updateUser(id, ctx.request.body);
}
return sanitizeEntity(entity, { model: strapi.models.user });
}
Then add a custom function in ./extensions/users-permissions/services/Users.js:
'use strict';
module.exports = {
updateUser: async (id, data) => {
return await strapi.query('user', 'users-permissions').update({id}, data)
},
};