feat: exclude user preferences from payload

This commit is contained in:
Nathan Lamy 2026-02-24 23:52:28 +01:00
parent 23ce4e22e8
commit 25fb5588fa

View file

@ -1,8 +1,29 @@
import { DateTime } from 'luxon' import { DateTime } from 'luxon'
import { BaseModel, column, computed } from '@adonisjs/lucid/orm' import { BaseModel, column, computed } from '@adonisjs/lucid/orm'
import { DbRememberMeTokensProvider } from '@adonisjs/auth/session' import { DbRememberMeTokensProvider } from '@adonisjs/auth/session'
import { HttpContext } from '@adonisjs/core/http'
export default class User extends BaseModel { export default class User extends BaseModel {
serializeExtras = true
serialize() {
const ctx = HttpContext.get()
if (!ctx || !ctx.request.url().startsWith('/users')) {
this.serializeExtras = false
const serialized = super.serialize()
delete serialized.pastStudentId
delete serialized.extras
return serialized
}
this.serializeExtras = true
return {
...super.serialize(),
preferences: this.preferences,
}
}
static rememberMeTokens = DbRememberMeTokensProvider.forModel(User) static rememberMeTokens = DbRememberMeTokensProvider.forModel(User)
@column({ isPrimary: true }) @column({ isPrimary: true })
@ -33,6 +54,7 @@ export default class User extends BaseModel {
@computed() @computed()
get preferences(): { name: string; emoji: string; color: string }[] { get preferences(): { name: string; emoji: string; color: string }[] {
if (!this.serializeExtras) return []
return this.extras?.preferences || [] return this.extras?.preferences || []
} }