extensions/users-permissions/controllers/User.js (view raw)
1const {removeUndefined, sanitizeEntity} = require('strapi-utils');
2
3module.exports = {
4 /**
5 * Update authenticated user.
6 *
7 * @return {Object}
8 */
9 updateMe: async ctx => {
10 const user = ctx.state.user;
11
12 if (!user) {
13 return ctx.badRequest(null, [
14 {messages: [{id: 'No authorization header was found'}]},
15 ]);
16 }
17
18 const {
19 username,
20 email,
21 password,
22 firstname,
23 lastname,
24 events,
25 } = ctx.request.body;
26
27 const data = await strapi.plugins['users-permissions'].services.user.edit(
28 {id: user.id},
29 removeUndefined({
30 username,
31 email,
32 password,
33 firstname,
34 lastname,
35 events,
36 })
37 );
38
39 ctx.send(data);
40 },
41
42 /**
43 * Retrieve authenticated user.
44 * @return {Object}
45 */
46 async me(ctx) {
47 const {id} = ctx.state.user;
48
49 const user = await strapi.plugins['users-permissions'].services.user.fetch({
50 id,
51 });
52
53 if (!user) {
54 return ctx.badRequest(null, [
55 {messages: [{id: 'No authorization header was found'}]},
56 ]);
57 }
58 const data = sanitizeEntity(user, {
59 model: strapi.query('user', 'users-permissions').model,
60 });
61 ctx.send(data);
62 },
63};