0.12.1 : update user
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "harmony-back",
|
"name": "harmony-back",
|
||||||
"version": "0.12.0",
|
"version": "0.12.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "A Strapi application",
|
"description": "A Strapi application",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -25,6 +25,17 @@
|
|||||||
"videos",
|
"videos",
|
||||||
"audios"
|
"audios"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"activityType": {
|
||||||
|
"type": "enumeration",
|
||||||
|
"enum": [
|
||||||
|
"user",
|
||||||
|
"group",
|
||||||
|
"choral",
|
||||||
|
"message",
|
||||||
|
"post",
|
||||||
|
"contact"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
"name": "Apache 2.0",
|
"name": "Apache 2.0",
|
||||||
"url": "https://www.apache.org/licenses/LICENSE-2.0.html"
|
"url": "https://www.apache.org/licenses/LICENSE-2.0.html"
|
||||||
},
|
},
|
||||||
"x-generation-date": "2025-11-11T18:08:56.370Z"
|
"x-generation-date": "2025-11-12T14:43:35.118Z"
|
||||||
},
|
},
|
||||||
"x-strapi-config": {
|
"x-strapi-config": {
|
||||||
"plugins": [
|
"plugins": [
|
||||||
@@ -15079,18 +15079,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -18343,6 +18331,17 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"activityType": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"user",
|
||||||
|
"group",
|
||||||
|
"choral",
|
||||||
|
"message",
|
||||||
|
"post",
|
||||||
|
"contact"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -19414,18 +19413,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -23369,18 +23356,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -27393,18 +27368,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -31355,18 +31318,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -35058,18 +35009,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -39016,18 +38955,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -42968,18 +42895,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -46822,18 +46737,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -50663,18 +50566,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -54540,18 +54431,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -58417,18 +58296,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -62255,18 +62122,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -66274,18 +66129,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -70486,18 +70329,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -74219,18 +74050,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -78358,18 +78177,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -82192,18 +81999,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -86051,18 +85846,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -90014,18 +89797,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -93878,18 +93649,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -97951,18 +97710,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -101825,18 +101572,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -105732,18 +105467,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -109599,18 +109322,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
|||||||
@@ -73,22 +73,6 @@
|
|||||||
"images"
|
"images"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"nbFollowers": {
|
|
||||||
"type": "integer",
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"nbFollowing": {
|
|
||||||
"type": "integer",
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"nbPosts": {
|
|
||||||
"type": "integer",
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"nbSaved": {
|
|
||||||
"type": "integer",
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"choralOwner": {
|
"choralOwner": {
|
||||||
"type": "relation",
|
"type": "relation",
|
||||||
"relation": "oneToOne",
|
"relation": "oneToOne",
|
||||||
|
|||||||
@@ -33,12 +33,10 @@ module.exports = (plugin) => {
|
|||||||
throw new Error("No access_token.");
|
throw new Error("No access_token.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the profile.
|
|
||||||
const profile = await getProfile(provider, query);
|
const profile = await getProfile(provider, query);
|
||||||
|
|
||||||
const email = lod.toLower(profile.email);
|
const email = lod.toLower(profile.email);
|
||||||
|
|
||||||
// We need at least the mail.
|
|
||||||
if (!email) {
|
if (!email) {
|
||||||
throw new Error("Email was not available.");
|
throw new Error("Email was not available.");
|
||||||
}
|
}
|
||||||
@@ -70,15 +68,13 @@ module.exports = (plugin) => {
|
|||||||
throw new Error("Email is already taken.");
|
throw new Error("Email is already taken.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve default role.
|
|
||||||
const defaultRole = await strapi.db
|
const defaultRole = await strapi.db
|
||||||
.query("plugin::users-permissions.role")
|
.query("plugin::users-permissions.role")
|
||||||
.findOne({ where: { type: advancedSettings.default_role } });
|
.findOne({ where: { type: advancedSettings.default_role } });
|
||||||
|
|
||||||
// Create the new user.
|
|
||||||
const newUser = {
|
const newUser = {
|
||||||
...profile,
|
...profile,
|
||||||
email, // overwrite with lowercased email
|
email,
|
||||||
provider,
|
provider,
|
||||||
role: defaultRole.id,
|
role: defaultRole.id,
|
||||||
confirmed: true,
|
confirmed: true,
|
||||||
@@ -93,6 +89,73 @@ module.exports = (plugin) => {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const originalMe = plugin.controllers.user.me;
|
||||||
|
|
||||||
|
plugin.controllers.user.me = async (ctx) => {
|
||||||
|
const fullUser = await strapi.db
|
||||||
|
.query("plugin::users-permissions.user")
|
||||||
|
.findOne({
|
||||||
|
where: { id: ctx.state.user.id },
|
||||||
|
populate: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
const user = ctx.state.user;
|
||||||
|
|
||||||
|
const userId = user.id;
|
||||||
|
|
||||||
|
const [
|
||||||
|
contactsCount,
|
||||||
|
groupsCount,
|
||||||
|
postsCount,
|
||||||
|
eventsCount,
|
||||||
|
followersCount,
|
||||||
|
followingCount,
|
||||||
|
] = await Promise.all([
|
||||||
|
strapi.db.query("api::contact.contact").count({
|
||||||
|
where: {
|
||||||
|
$or: [{ owner: userId }, { user: userId }],
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
strapi.db.query("api::group-membership.group-membership").count({
|
||||||
|
where: {
|
||||||
|
user: userId,
|
||||||
|
role: { $in: ["owner", "member", "admin"] },
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
strapi.db
|
||||||
|
.query("api::post-ownership.post-ownership")
|
||||||
|
.count({ where: { author: userId } }),
|
||||||
|
strapi.db
|
||||||
|
.query("api::event-relationship.event-relationship")
|
||||||
|
.count({ where: { author: userId } }),
|
||||||
|
strapi.db.query("api::contact.contact").count({
|
||||||
|
where: {
|
||||||
|
user: userId,
|
||||||
|
state: "follow",
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
strapi.db.query("api::contact.contact").count({
|
||||||
|
where: {
|
||||||
|
owner: userId,
|
||||||
|
state: "follow",
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
]);
|
||||||
|
const result = {
|
||||||
|
...JSON.parse(JSON.stringify(fullUser)),
|
||||||
|
stats: {
|
||||||
|
contacts: contactsCount,
|
||||||
|
groups: groupsCount,
|
||||||
|
posts: postsCount,
|
||||||
|
events: eventsCount,
|
||||||
|
followers: followersCount,
|
||||||
|
following: followingCount,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|
||||||
const uploadImage = async (ctx, label: string, username: string) => {
|
const uploadImage = async (ctx, label: string, username: string) => {
|
||||||
const key = `${label}Image`;
|
const key = `${label}Image`;
|
||||||
if (ctx.request.files[key]) {
|
if (ctx.request.files[key]) {
|
||||||
@@ -122,7 +185,6 @@ module.exports = (plugin) => {
|
|||||||
plugin.controllers.user.updateMe = async (ctx) => {
|
plugin.controllers.user.updateMe = async (ctx) => {
|
||||||
const user = ctx.state.user;
|
const user = ctx.state.user;
|
||||||
|
|
||||||
// User has to be logged in to update themselves
|
|
||||||
if (!user) {
|
if (!user) {
|
||||||
return ctx.unauthorized();
|
return ctx.unauthorized();
|
||||||
}
|
}
|
||||||
@@ -139,9 +201,24 @@ module.exports = (plugin) => {
|
|||||||
"voice",
|
"voice",
|
||||||
"job",
|
"job",
|
||||||
"dob",
|
"dob",
|
||||||
|
"phone",
|
||||||
|
"bio",
|
||||||
|
"experience",
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Make sure there is no duplicate user with the same username
|
if (data.tags) {
|
||||||
|
newData.tags = data.tags.map((tag) => ({
|
||||||
|
text: tag.text,
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (data.languages) {
|
||||||
|
newData.languages = data.languages.map((lang) => ({
|
||||||
|
language: lang.language,
|
||||||
|
level: lang.level,
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
if (newData.username) {
|
if (newData.username) {
|
||||||
const userWithSameUsername = await strapi
|
const userWithSameUsername = await strapi
|
||||||
.query("plugin::users-permissions.user")
|
.query("plugin::users-permissions.user")
|
||||||
@@ -152,7 +229,6 @@ module.exports = (plugin) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure there is no duplicate user with the same email
|
|
||||||
if (newData.email) {
|
if (newData.email) {
|
||||||
const userWithSameEmail = await strapi
|
const userWithSameEmail = await strapi
|
||||||
.query("plugin::users-permissions.user")
|
.query("plugin::users-permissions.user")
|
||||||
@@ -169,9 +245,6 @@ module.exports = (plugin) => {
|
|||||||
|
|
||||||
const avatarId = await uploadImage(ctx, "avatar", newData.username);
|
const avatarId = await uploadImage(ctx, "avatar", newData.username);
|
||||||
if (avatarId != 0) ctx.request.body.avatar = avatarId;
|
if (avatarId != 0) ctx.request.body.avatar = avatarId;
|
||||||
const backgroundId = await uploadImage(ctx, "background", newData.username);
|
|
||||||
if (backgroundId != 0) ctx.request.body.background = backgroundId;
|
|
||||||
|
|
||||||
return plugin.controllers.user.update(ctx);
|
return plugin.controllers.user.update(ctx);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
3
types/generated/components.d.ts
vendored
3
types/generated/components.d.ts
vendored
@@ -31,6 +31,9 @@ export interface GroupActivity extends Struct.ComponentSchema {
|
|||||||
>;
|
>;
|
||||||
activityDate: Schema.Attribute.DateTime;
|
activityDate: Schema.Attribute.DateTime;
|
||||||
activityMessage: Schema.Attribute.String;
|
activityMessage: Schema.Attribute.String;
|
||||||
|
activityType: Schema.Attribute.Enumeration<
|
||||||
|
['user', 'group', 'choral', 'message', 'post', 'contact']
|
||||||
|
>;
|
||||||
activityUser: Schema.Attribute.String;
|
activityUser: Schema.Attribute.String;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
4
types/generated/contentTypes.d.ts
vendored
4
types/generated/contentTypes.d.ts
vendored
@@ -1889,10 +1889,6 @@ export interface PluginUsersPermissionsUser
|
|||||||
> &
|
> &
|
||||||
Schema.Attribute.Private;
|
Schema.Attribute.Private;
|
||||||
name: Schema.Attribute.String;
|
name: Schema.Attribute.String;
|
||||||
nbFollowers: Schema.Attribute.Integer & Schema.Attribute.DefaultTo<0>;
|
|
||||||
nbFollowing: Schema.Attribute.Integer & Schema.Attribute.DefaultTo<0>;
|
|
||||||
nbPosts: Schema.Attribute.Integer & Schema.Attribute.DefaultTo<0>;
|
|
||||||
nbSaved: Schema.Attribute.Integer & Schema.Attribute.DefaultTo<0>;
|
|
||||||
password: Schema.Attribute.Password &
|
password: Schema.Attribute.Password &
|
||||||
Schema.Attribute.Private &
|
Schema.Attribute.Private &
|
||||||
Schema.Attribute.SetMinMaxLength<{
|
Schema.Attribute.SetMinMaxLength<{
|
||||||
|
|||||||
Reference in New Issue
Block a user