diff --git a/app/models/user.ts b/app/models/user.ts index 2af279e..7919e38 100644 --- a/app/models/user.ts +++ b/app/models/user.ts @@ -9,7 +9,7 @@ export default class User extends BaseModel { serialize() { const ctx = HttpContext.get() - if (!ctx || !ctx.request.url().startsWith('/users')) { + if (!ctx) { this.serializeExtras = false const serialized = super.serialize() delete serialized.pastStudentId @@ -17,11 +17,30 @@ export default class User extends BaseModel { return serialized } - this.serializeExtras = true - return { - ...super.serialize(), - preferences: this.preferences, + const requestUrl = ctx.request.url() + const isUsersRoute = requestUrl.startsWith('/users') + const isMeRoute = requestUrl === '/users/@me' + + this.serializeExtras = isUsersRoute + + const serialized = super.serialize() + if (!isUsersRoute) { + delete serialized.pastStudentId + delete serialized.extras } + + if (isMeRoute) { + serialized.firstName = this.firstName + serialized.lastName = this.lastName + } + + if (this.serializeExtras) { + serialized.preferences = this.preferences + } else { + delete serialized.preferences + } + + return serialized } static rememberMeTokens = DbRememberMeTokensProvider.forModel(User)