mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-02-06 05:20:11 +01:00
Remove playlists for user when removing user
This commit is contained in:
parent
e307ded192
commit
eb2ea9950a
@ -11,7 +11,7 @@ class UserController {
|
|||||||
findAll(req, res) {
|
findAll(req, res) {
|
||||||
if (!req.user.isAdminOrUp) return res.sendStatus(403)
|
if (!req.user.isAdminOrUp) return res.sendStatus(403)
|
||||||
const hideRootToken = !req.user.isRoot
|
const hideRootToken = !req.user.isRoot
|
||||||
var users = this.db.users.map(u => this.userJsonWithItemProgressDetails(u, hideRootToken))
|
const users = this.db.users.map(u => this.userJsonWithItemProgressDetails(u, hideRootToken))
|
||||||
res.json(users)
|
res.json(users)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ class UserController {
|
|||||||
return res.sendStatus(403)
|
return res.sendStatus(403)
|
||||||
}
|
}
|
||||||
|
|
||||||
var user = this.db.users.find(u => u.id === req.params.id)
|
const user = this.db.users.find(u => u.id === req.params.id)
|
||||||
if (!user) {
|
if (!user) {
|
||||||
return res.sendStatus(404)
|
return res.sendStatus(404)
|
||||||
}
|
}
|
||||||
@ -46,7 +46,7 @@ class UserController {
|
|||||||
var newUser = new User(account)
|
var newUser = new User(account)
|
||||||
var success = await this.db.insertEntity('user', newUser)
|
var success = await this.db.insertEntity('user', newUser)
|
||||||
if (success) {
|
if (success) {
|
||||||
SocketAuthority.clientEmitter(req.user.id, 'user_added', newUser)
|
SocketAuthority.adminEmitter('user_added', newUser)
|
||||||
res.json({
|
res.json({
|
||||||
user: newUser.toJSONForBrowser()
|
user: newUser.toJSONForBrowser()
|
||||||
})
|
})
|
||||||
@ -105,13 +105,19 @@ class UserController {
|
|||||||
Logger.error(`[UserController] ${req.user.username} is attempting to delete themselves... why? WHY?`)
|
Logger.error(`[UserController] ${req.user.username} is attempting to delete themselves... why? WHY?`)
|
||||||
return res.sendStatus(500)
|
return res.sendStatus(500)
|
||||||
}
|
}
|
||||||
var user = req.reqUser
|
const user = req.reqUser
|
||||||
|
|
||||||
// Todo: check if user is logged in and cancel streams
|
// Todo: check if user is logged in and cancel streams
|
||||||
|
|
||||||
var userJson = user.toJSONForBrowser()
|
// Remove user playlists
|
||||||
|
const userPlaylists = this.db.playlists.filter(p => p.userId === user.id)
|
||||||
|
for (const playlist of userPlaylists) {
|
||||||
|
await this.db.removeEntity('playlist', playlist.id)
|
||||||
|
}
|
||||||
|
|
||||||
|
const userJson = user.toJSONForBrowser()
|
||||||
await this.db.removeEntity('user', user.id)
|
await this.db.removeEntity('user', user.id)
|
||||||
SocketAuthority.clientEmitter(req.user.id, 'user_removed', userJson)
|
SocketAuthority.adminEmitter('user_removed', userJson)
|
||||||
res.json({
|
res.json({
|
||||||
success: true
|
success: true
|
||||||
})
|
})
|
||||||
@ -172,7 +178,7 @@ class UserController {
|
|||||||
if (progressPurged) {
|
if (progressPurged) {
|
||||||
Logger.info(`[UserController] Purged ${progressPurged} media progress for user ${user.username}`)
|
Logger.info(`[UserController] Purged ${progressPurged} media progress for user ${user.username}`)
|
||||||
await this.db.updateEntity('user', user)
|
await this.db.updateEntity('user', user)
|
||||||
SocketAuthority.clientEmitter(req.user.id, 'user_updated', user.toJSONForBrowser())
|
SocketAuthority.adminEmitter('user_updated', user.toJSONForBrowser())
|
||||||
}
|
}
|
||||||
|
|
||||||
res.json(this.userJsonWithItemProgressDetails(user, !req.user.isRoot))
|
res.json(this.userJsonWithItemProgressDetails(user, !req.user.isRoot))
|
||||||
|
Loading…
Reference in New Issue
Block a user