added display name to users

This commit is contained in:
zipben 2025-06-04 16:04:28 +00:00
parent cbb8950b46
commit c0294f4c39
16 changed files with 112 additions and 14 deletions

View file

@ -82,7 +82,7 @@ class LibraryItemController {
include: [{
model: Database.userModel,
as: 'user',
attributes: ['id', 'username']
attributes: ['id', 'username', 'displayName']
}],
order: [['createdAt', 'DESC']]
})
@ -1224,7 +1224,7 @@ class LibraryItemController {
include: [{
model: Database.userModel,
as: 'user',
attributes: ['id', 'username']
attributes: ['id', 'username', 'displayName']
}],
order: [['createdAt', 'DESC']]
})
@ -1267,7 +1267,7 @@ class LibraryItemController {
include: [{
model: Database.userModel,
as: 'user',
attributes: ['id', 'username']
attributes: ['id', 'username', 'displayName']
}]
})
@ -1291,7 +1291,7 @@ class LibraryItemController {
include: [{
model: Database.userModel,
as: 'user',
attributes: ['id', 'username']
attributes: ['id', 'username', 'displayName']
}]
})

View file

@ -23,7 +23,11 @@ class MeController {
* @param {Response} res
*/
getCurrentUser(req, res) {
res.json(req.user.toOldJSONForBrowser())
const userJson = req.user.toOldJSONForBrowser()
Logger.info('[MeController] getCurrentUser response:', {
user: userJson
})
res.json(userJson)
}
/**

View file

@ -172,6 +172,7 @@ class UserController {
type: userType,
username: req.body.username,
email: typeof req.body.email === 'string' ? req.body.email : null,
displayName: typeof req.body.displayName === 'string' ? req.body.displayName : null,
pash,
token,
isActive: !!req.body.isActive,
@ -203,6 +204,13 @@ class UserController {
* @param {Response} res
*/
async update(req, res) {
Logger.info('[UserController] Update request:', {
params: req.params,
body: req.body,
user: req.user?.username,
reqUser: req.reqUser?.username
})
const user = req.reqUser
if (user.isRoot && !req.user.isRoot) {
@ -228,6 +236,9 @@ class UserController {
if (updatePayload.username && typeof updatePayload.username !== 'string') {
return res.status(400).send('Invalid username')
}
if (updatePayload.displayName && typeof updatePayload.displayName !== 'string') {
return res.status(400).send('Invalid display name')
}
if (updatePayload.type && !Database.userModel.accountTypes.includes(updatePayload.type)) {
return res.status(400).send('Invalid account type')
}
@ -322,6 +333,10 @@ class UserController {
user.lastSeen = updatePayload.lastSeen
hasUpdates = true
}
if (updatePayload.displayName !== undefined) {
user.displayName = updatePayload.displayName
hasUpdates = true
}
if (hasUpdates) {
if (shouldUpdateToken) {
@ -474,6 +489,14 @@ class UserController {
* @param {NextFunction} next
*/
async middleware(req, res, next) {
Logger.info('[UserController] Middleware request:', {
method: req.method,
path: req.path,
params: req.params,
userId: req.user?.id,
username: req.user?.username
})
if (!req.user.isAdminOrUp && req.user.id !== req.params.id) {
return res.sendStatus(403)
} else if ((req.method == 'PATCH' || req.method == 'POST' || req.method == 'DELETE') && !req.user.isAdminOrUp) {
@ -505,7 +528,7 @@ class UserController {
include: [{
model: Database.userModel,
as: 'user',
attributes: ['id', 'username']
attributes: ['id', 'username', 'displayName']
}],
order: [['createdAt', 'DESC']]
})