This commit is contained in:
2026-04-12 21:55:31 +03:00
parent 0df683aa8a
commit 36bd33b1f9
15 changed files with 79 additions and 12 deletions
+2 -1
View File
@@ -112,7 +112,8 @@ class AccessManager {
lastName: dbUser.lastName,
displayName: dbUser.displayName,
profilePicture: dbUser.profilePicture,
status: dbUser.status
status: dbUser.status,
gameData: dbUser.gameData
}
}
+1 -1
View File
@@ -68,7 +68,7 @@ class GamesManager{
this.list = async function(query){
return await db.list(collection, {
query,
project: { name:1, description:1, id:1, thumb: 1, group: 1, order: 1}
project: { name:1, description:1, id:1, thumb: 1, group: 1, order: 1, activationTriggers: 1}
});
}
+15
View File
@@ -95,6 +95,21 @@ class UserManager {
await db.update(collection, { '_id': db.ObjectId(user._id) }, user);
}
this.addGameData = async function(ctx, data){
if (ctx.user?._id){
let user = await db.get(collection, { '_id': db.ObjectId(ctx.user._id) });
let gameData = (user.gameData || []).filter(gd=>gd.id != data.id);
gameData.push(data);
ctx.user.gameData = user.gameData = gameData;
await db.update(collection, { '_id': db.ObjectId(user._id) }, user);
//ctx.user.gameData = gameData;
}else{
let gameData = (ctx.session.gameData || []).filter(gd=>gd.id != data.id);
gameData.push(data);
ctx.session.gameData = gameData
}
}
this.assignSafeUserData = function (ctx, userObject, newData, isAdmin) {
['displayName', 'firstName', 'lastName', ...(isAdmin ? ['roles', 'groups', 'email', 'status'] : [])].forEach(e => {
userObject[e] = newData[e];
@@ -167,6 +167,15 @@ class UsersController {
}
})
router.get('/gameData', (req, res) => {
res.json(req.user?.gameData || req.session.gameData || []);
})
router.put('/gameData', async (req, res) => {
await user.addGameData(req, req.body);
res.json(req.user?.gameData || req.session.gameData || []);
})
app.webServer.xapp.use(this.route, router);
}
}